각각의 서브넷A와 서브넷C에 인스턴스를 생성해 둔 상태이니 로드 밸런서를 사용하여 트래픽을 분산시켜보자. 
AWS의 ELB(Elastic Load Balancing)은 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP주소, Lambda 함수와 같은 여러 대상에 자동으로 분산시켜준다. 이 덕분에 여러 가용 영역에서 애플리케이션의 부하를 처리할 수 있다. ELB가 제공하는 로드 밸런서는 Application Load Balancer, Network Load Balancer, Gateway Load Balancer, Classic Load Balancer 네 가지로 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동 조정, 보안성을 갖추고 있다. 각각의 로드밸런서에 대한 설명은 아래 블로그를 참고하면 좋을 듯 하다.

https://blog.naver.com/pwhaha1004/223057639467

 

AWS Load Balancer 및 ELB 종류에 대한 개념 정리_CLB, ALB, NLB, GWLB

ELB Amazon Web Service가 제공하는 Load Balancer를 ELB(Elastic Load Balancing)라고 합니...

blog.naver.com


로드 밸런서 생성

Load balancer 생성 섹션 중 application load balancer 생성 카드를 눌러 생성을 진행하였다. 로드 밸런서에서 트래픽을 라우팅할 vpc와 서브넷을 모두 지정해주면 된다. 보안 그룹은 내 ip에서 http로만 접근 가능한 인바운드 규칙을 가지게끔 하나 생성해준 뒤 연결해주었다.

 

다음으로는 라우팅 대상 그룹을 지정할 차례이다.  생성한 인스턴스 2개를 다음과 같은 과정을 거쳐 대상 그룹으로 생성한 뒤, 다시 로드 밸런서 설정 화면으로 돌아가서 리스너 및 라우팅 대상 그룹으로 연결해주면 된다.

 

이제 로드 밸런서의 생성이 끝났으니 웹 서버에 연결된 보안 그룹을 수정하여 웹서버가 로드 밸런서의 트래픽만 받게끔 설정해주면 된다. 기존 내 ip 주소로 설정되어있던 소스를 생성한 alb로 변경해주었다.

이후 Load balance 페이지로 돌아가 생성한 alb를 클릭하면 하단에 DNS 주소가 뜬다. 주소 클릭 시, 웹 화면이 보이면 성공적으로 구축을 완료한 것이다. ALB에서 기본으로 제공하는 라운드 로빈 알고리즘에 따라 할당된 서버 주소가 다르게 뜨는 것을 확인할 수 있다.

 

이로써 아래와 같은 아키텍처 구성을 완료하였다.