구름

ALB 만들고 EC2와 연결하여 확인하기 [Auto Scaling 자동 동기화-1] 본문

Cloud/Auto Scaling Instance 자동 동기화

ALB 만들고 EC2와 연결하여 확인하기 [Auto Scaling 자동 동기화-1]

Cloudest 2020. 12. 31. 14:29
 

Cloudest - 블로그 이사했습니다

노션으로 블로그를 옮겼습니다.

흥미로운 포스팅이 올라옵니다!

cloudest.oopy.io

 

🛠
준비물 : 2개의 EC2 인스턴스(amazon linux 2) , SSH 원격접속 프로그램(MobaXterm)

시작 전

  • 여기를 눌러 CentOS, Ubuntu와 같은 타 배포판에서 AWS CLI 환경을 구성할 수 있다.
    • Amazon Linux 2 AMI는 프리티어이면서 AWS CLI환경이 구성된 이미지다.
  • 목적 : Application Load Balancer를 만들고 EC2 Instance와 연결하여 로드밸런싱 환경을 구축한다.
  • 기능 확인을 위한 최소한의 환경만 구성하였다.
  • 프리티어로 진행되었다.

Application Load Balancer

  • 대상그룹 생성
    • ALB를 만들기 위한 템플릿이라고 생각하면 된다.
    • EC2 → 로드 밸런싱 → 대상 그룹 → 대상그룹 생성
      • 상태 검사 설정의 index.html을 입력하지 않으면 상태 검사를 실패할 수 있다. 그렇게 되면 서버가 죽은것으로 판단해 로드밸런싱 되지 않으므로 주의
    • 기존에 존재하는 Linux EC2 Instance 2개를 대상그룹에 등록한다.
    • 대상이 모두 Healthy라면 대상 그룹 구성 완료
  • Load Balancer 생성
    1. 맨 처음 ALB, NLB, CLB를 선택하는 창이 나온다 → HTTP(웹서버) 접속을 분산시키기 위해 ALB선택
      • ALB는 7계층을 전문적으로 로드밸런싱하고 NLB는 4계층을 전문적으로 로드밸런싱한다.
      • CLB는 ALB,NLB가 나오기 이전 초기 LoadBalancer인데 요즘엔 거의 사용하지 않으며, 기존 CLB에 최적화되어 이미 구성된 환경이 있거나 하는 특수한 경우에 사용된다고 한다.
    1. 인터넷 경계에 인스턴스가 존재하는 AZ를 선택한다.
      • 내부에 ALB를 생성하는것은 쉽게 생각하면 웹서버가 여러대로 구축된 WAS에 접근할 때 작동하는 ALB라고 생각하면 될 것 같다.
    1. HTTP를 위한 앱서버이니 HTTP포트만 허용하는 보안그룹 설정
    1. 이전에 생성한 대상그룹을 지정하고 다음
    1. 대상으로 등록한 Instance 2개가 정상적으로 등록되는지 확인하고 ALB 생성
    2. Application Load Balancer 구성 완료
  • 테스트
    • 웹서버 간단 구성
      • 두 인스턴스 모두 httpd 패키지 설치 및 데몬 실행
      • yum -y install httpd systemctl start httpd systemctl enable httpd
      • 초기페이지 index.html 생성
        • 1번째 인스턴스
          [ec2-user@ip-172-31-5-0 ~]$ vi /var/www/html/index.php 
          	
              WEB 11111
        • 2번째 인스턴스
          [ec2-user@ip-172-31-36-229 ~]$ vi /var/www/html/index.php 
          
          	WEB 22222
    • ALB로 접속하여 확인
      • 우선 ALB가 정상적으로 active되는지 확인한다. (provisioning → active)
      • Load Balancer의 DNS를 통해 인터넷에서 접속 가능
      • 새로고침을 할 때 마다 동일한 DNS에서 번갈아가면서 웹서버에 접속시켜준다.
      • ALB 테스트 완료

결론

  • ALB를 생성하여 HTTP로 접근하는 웹서버에 대한 로드밸런싱 환경을 만들었다.
  • 로드밸런서를 생성하고 웹서버와 연결하여 여러개의 서버를 하나의 DNS 주소로 제공할 수 있다.
Comments