ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] #5 VPC 구축 실습 4(ELB)
    Software engineer/Infra 2023. 5. 19. 20:53

    이번엔 이전에 진행했던 Auto Scaling Group을 이용해 ELB 실습을 해보겠습니다.

     

     

     

    이번에도 스압 주의!!!

     

     

     

    실습 순서

    • 시작 템플릿 수정
    • 인스턴스 접속 테스트
    • Target Group 생성
    • LB 생성
    • LB 접속 테스트
    • ELB Health check  추가 및 테스트

     

     

     

    시작 템플릿 수정

    이번 시간에는 ELB를 통한 EC2접속 테스트를 위해 기존에 만들었던 시작 템플릿을 수정하고 진행합니다.

     

    템플릿 새로운 버전에 대한 설명을 추가하고, Auto Scaling 지침을 체크하겠습니다.

     

    고급 세부 정보에서 위에 그림처럼 스크립트를 추가합니다.

    #!/bin/bash
    INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
    yum install httpd -y
    echo ""$INSTANCE_ID"" >> /var/www/html/index.html
    service httpd start

    해당 스크립트는 인스턴스 시작과 동시에 Apache 웹 서버를 인스톨 후 실행하는 스크립트에 추가적으로 각자 자신의 INSTANCE_ID를 웹 페이지에 띄워주는 스크립트가 추가되어 있습니다.

    참고: https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html

     

    이후 템플릿 수정을 완료합니다.

     

     

     

    인스턴스 접속 테스트

    이제 새로운 버전의 시작 템플릿을 적용하겠습니다. 시작 템플릿 편집으로 들어갑니다.

     

    버전탭에서 새로운 버전 Latest를 선택합니다. 저는 2번째로 수정한 템플릿이기에 2번입니다. 혹시 더 많은 템플릿 수정을 하셨다면 가장 높은 버전을 선택해 주세요.

     

    이번엔 그룹 세부정보에서 그룹 크기를 0에서 2로 수정해서 인스턴스를 2개 띄우도록 하겠습니다.

     

    Auto Scaling에 의해 새로운 템플릿 버전의 인스턴스 2개가 실행됩니다.

     

    각각 생성된 인스턴스의 퍼블릭 주소로 접속하면 위의 그림처럼 각각의 인스턴스 ID가 보입니다. 

     

     

     

     

    Target Group 생성

     

    이제 ELB가 바라보게 될 Target Group을 생성하겠습니다.

     

    인스턴스를 선택합니다.

     

    VPC를 선택합니다. Health check는 root로 그대로 두고 진행합니다.

     

    대상 추가 탭에서 현재 실행 중인 인스턴스 2개를 선택하여 포함시키고 Target Group 생성을 완료합니다.

     

     

     

    LB 생성

    이번엔 ELB를 생성하겠습니다.

     

    우리는 Application Load Balancer를 만들도록 합니다.

     

    Load balancer의 이름을 지정합니다.

     

    VPC 선택을 해줍니다. 서브넷도 모두 선택을 하고 넘어갑니다.

     

    SSH, HTTP 접속 가능한 보안그룹을 선택합니다. 또는 새로 생성해도 무관합니다.

     

    어느 대상에 라우팅 할지 선택을 하고 ELB 생성을 완료합니다.

     

    완료 이후에는 Provisioning 상태로 해당 ELB가 생성완료될 때까지 대기합니다.

     

    Auto Scaling Group에서 새로 생성된 Load balancer를 추가하도록 합니다.

     

    대상 그룹을 선택해 주고 업데이트하도록 합니다.

     

     

     

    LB 접속 테스트

    이번엔 새로 생성된 ELB를 통해 Auto Scaling Group의 인스턴스들에 접속이 가능한지 테스트하겠습니다.

    활성화된 ELB의 설명에 보면 DNS name이 있습니다. 해당 도메인으로 접속해 보도록 합니다.

     

    위의 그림처럼 둘 다 같은 ELB 도메인으로 접속했지만 인스턴스 ID는 각각 다르게 보입니다. 이처럼 나온다면 테스트 성공!

    ALB를 통해 대상 그룹인 EC2 2개에 골고루 분배되어 트래픽이 들어가는 걸 확인할 수 있습니다.

     

     

    이번엔 Auto Scaling Group의 인스턴스 개수를 3개로 늘려보겠습니다.

     

    자동으로 인스턴스가 생성됩니다.

     

    이후 새로 생성된 인스턴스도 ELB 도메인으로 접속이 가능한 걸 확인!!

    Auto Scaling Group에서 새롭게 생성되는 인스턴스들도 자동으로 ELB 대상 그룹으로 포함됨을 확인할 수 있습니다.

     

     

     

    ELB Health check  추가 및 테스트

    이번엔 Auto Scaling Group에 ELB Health check를 추가해 보도록 하겠습니다.

    Auto Scaling Group에서 상태 확인 편집을 진행합니다.

     

    위의 그림처럼 Elastic Load Balancer 상태 확인 켜기를 선택하고 업데이트하도록 합니다.

     

    이제부터는 ELB에서 직접 트래픽을 발생 시켜 대상 그룹에 속해있는 인스턴스에 Health check 요청을 보내게 됩니다. 인스턴스는 살아 있지만 Apache 웹 서버가 문제가 있는 상태라면 ELB의 Health check를 통과하지 못하고 Auto Scaling Group에서는 해당 인스턴스에 문제가 있다 판단하여 새로운 인스턴스를 생성하게 됩니다.

     

     

    대상 그룹에 속해있는 인스턴스에 직접 접속하여 Apache 웹 서버를 종료했습니다.

     

    ELB에서 Health check를 하기 전에 도메인을 통해 Apache 웹 서버가 종료된 인스턴스에 접속하면 위의 그림처럼 502 에러가 발생합니다. Apache 웹 서버가 정상적으로 내려갔고 곧 ELB에서 이를 확인하고 인스턴스가 Auto Scaling 될 것입니다.

     

    Auto Scaling Group에서 문제를 확인했습니다!

     

    이렇게 문제가 있는 인스턴스를 종료하고 새로운 인스턴스를 생성하는 것까지 확인 완료 했습니다!

     

     

     

     

     

     

    위 실습은 유튜브 'AWS강의실'의 AWS 기초 강좌 13을 보고 진행했습니다.

    참고: https://www.youtube.com/watch?v=mqtUMduyKjk&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=14&ab_channel=AWS%EA%B0%95%EC%9D%98%EC%8B%A4

     

Designed by Tistory.