ALB로 웹서버 2개 로드밸런싱

날아올라돼지야·2024년 10월 18일
0

클라우드 마스터

목록 보기
5/17

Hello World 웹서버 2개의 EC2 인스턴스를 로드밸런싱하는 Application Load Balancer(ALB) 구축 방법

이번 실습 시나리오에서는 두 개의 EC2 인스턴스에 각각 "Hello World" 메시지를 반환하는 간단한 웹 서버를 실행하고, 이를 Application Load Balancer(ALB)를 사용해 로드밸런싱하는 방법을 설명하겠습니다. 모든 단계를 AWS 관리 콘솔을 통해 수행합니다.

시나리오 목표

  1. 두 개의 EC2 인스턴스 생성 및 설정.
  2. EC2 인스턴스에 간단한 웹 서버 설치 및 "Hello World" 반환.
  3. Application Load Balancer(ALB) 생성 및 EC2 인스턴스와 연결.
  4. ALB를 통해 트래픽을 균등하게 분산하여 "Hello World" 페이지 제공.

1. 두 개의 EC2 인스턴스 생성

  1. AWS 콘솔에 로그인하고, EC2 대시보드로 이동합니다.
  2. 인스턴스 시작을 클릭하여 EC2 인스턴스를 생성합니다.
  3. AMI 선택: Amazon Linux 2 AMI(Free Tier)를 선택합니다.
  4. 인스턴스 유형 선택: t2.micro를 선택하고, 다음을 클릭합니다.
  5. 네트워크 구성:
    • 기본 VPC를 선택하고, 서브넷은 퍼블릭 서브넷으로 설정합니다.
    • Auto-assign Public IPEnable로 설정합니다.
  6. 스토리지 구성: 기본값을 그대로 사용합니다.
  7. 태그 추가: EC2 인스턴스를 구분하기 위해 태그를 추가합니다.
    • Key: Name, Value: WebServer1
  8. 보안 그룹 설정:
    • 새 보안 그룹을 생성합니다.
    • 인바운드 규칙HTTP(80)SSH(22)를 추가합니다.
    • HTTP모든 소스(0.0.0.0/0)에서 트래픽을 허용하도록 설정합니다.
  9. 키 페어: 기존 키 페어를 선택하거나, 새 키 페어를 생성하여 EC2에 접근할 수 있도록 합니다.
  10. 인스턴스 시작을 클릭합니다.

이제 두 번째 인스턴스도 동일한 과정을 통해 생성합니다. 태그 이름만 WebServer2로 설정하면 됩니다.


2. EC2 인스턴스에 간단한 웹 서버 설치

각 인스턴스에 접속하여 웹 서버를 설정합니다:

  1. SSH로 EC2 인스턴스 접속:

    • 로컬 터미널에서 아래 명령어로 EC2 인스턴스에 접속합니다. (공용 IP 사용)
      ssh -i "your-key.pem" ec2-user@<Public-IP-of-WebServer1>
  2. Apache 웹 서버 설치:

    • 접속 후, Apache 웹 서버를 설치하고 시작합니다.
      sudo yum update -y
      sudo yum install httpd -y
      sudo systemctl start httpd
      sudo systemctl enable httpd
  3. Hello World 페이지 작성:

    • 아래 명령어로 index.html 파일을 작성하여 Hello World 메시지를 출력합니다.
      echo "Hello World from WebServer1" | sudo tee /var/www/html/index.html
  4. 두 번째 EC2 인스턴스(WebServer2)에 대해서도 같은 절차를 진행합니다. index.html 파일은 아래와 같이 수정합니다:

    echo "Hello World from WebServer2" | sudo tee /var/www/html/index.html
  5. HTTP 포트 확인:

    • 브라우저에서 각 EC2 인스턴스의 공용 IP로 접속하여 Hello World 메시지가 잘 출력되는지 확인합니다.
      • http://<Public-IP-of-WebServer1>
      • http://<Public-IP-of-WebServer2>

3. Application Load Balancer(ALB) 생성

ALB 설정 과정:

  1. EC2 대시보드에서 로드밸런서를 클릭한 후, 로드 밸런서 생성을 선택합니다.
  2. 로드 밸런서 유형 선택:
    • Application Load Balancer(ALB)를 선택합니다.
  3. 기본 설정:
    • 로드 밸런서 이름: MyALB
    • 스킴: Internet-facing (퍼블릭 접근 가능하게 설정)
    • 리전: EC2 인스턴스가 있는 리전을 선택합니다.
  4. 네트워크 매핑:
    • VPC: 두 EC2 인스턴스가 위치한 VPC를 선택합니다.
    • 가용 영역(AZ): 각 AZ에 있는 퍼블릭 서브넷을 선택하고, 서브넷을 추가합니다.
  5. 보안 그룹 설정:
    • 새 보안 그룹을 생성하거나 기존 보안 그룹을 사용합니다.
    • 인바운드 규칙HTTP(80)를 추가하여 트래픽을 허용합니다.
  6. 리스너 및 라우팅:
    • HTTP 리스너(포트 80)가 기본적으로 추가됩니다.
    • 대상 그룹(Target Group)을 새로 생성합니다:
      • 대상 유형: 인스턴스
      • 대상 그룹 이름: MyTargetGroup
      • 프로토콜: HTTP
      • 포트: 80
      • 헬스 체크 경로: / (기본 설정 유지)
  7. 대상 등록:
    • EC2 인스턴스 선택 화면에서 WebServer1WebServer2 인스턴스를 선택한 후 등록을 클릭합니다.
  8. 로드 밸런서 생성: 설정이 완료되면 로드 밸런서 생성을 클릭합니다.

4. ALB를 통해 트래픽 로드밸런싱 테스트

  1. ALB DNS 이름 확인:
    • 로드 밸런서 목록에서 새로 생성한 ALB의 DNS 이름을 확인합니다.
    • 예시: MyALB-1234567890.us-east-1.elb.amazonaws.com
  2. 브라우저에서 ALB 접속 테스트:
    • 브라우저에서 ALB DNS 이름으로 접속하여 웹 페이지를 확인합니다.
    • http://MyALB-1234567890.us-east-1.elb.amazonaws.com
    • 두 개의 EC2 인스턴스에 연결된 웹 서버 중 하나가 Hello World 메시지를 반환합니다. 새로고침을 여러 번 해보면, ALB가 트래픽을 두 서버에 번갈아가며 분산하는 것을 확인할 수 있습니다.

정리

이 실습을 통해 다음을 배웠습니다:
1. EC2 인스턴스 생성 및 웹 서버 설치.
2. Application Load Balancer(ALB) 생성 및 EC2 인스턴스를 대상 그룹으로 추가.
3. ALB를 통해 두 서버에 트래픽을 분산시키고, 웹서버가 번갈아가며 "Hello World" 메시지를 반환하는 것을 확인.

이 구성은 로드밸런싱을 이용한 확장성고가용성을 위한 기본적인 웹 애플리케이션 배포 방식을 구현한 것입니다.

profile
무슨 생각하며 사니

0개의 댓글