사용자가 늘어나면 웹서버 1대만으로는 요청을 처리하기 힘들어집니다. 이럴때는 웹 서버를 여러 대 준비해서 성능을 높이며 이런 방식을 스케일 아웃(scale-out)라고 합니다. 그러나 웹 서버를 늘린 것만으론 요청을 분산할 수 없습니다. 이럴 때 사용하는 것이 로드 밸런서(load balancer)입니다.
로드 밸런서의 주요 역할은
1. 요청 분산
2. SSL 처리
3. 부정 요청 대응
입니다.
로드 밸런서를 생성하면서 앞서 만든 VPC->퍼블릭 서브넷->웹서버를 통해 연결될 수 있도록 합니다.
만들 로드 밸런서의 스팩은 다음과 같습니다.
이름 : sample-elb
VPC : sample-vpc
가용 영역 : sample-subnet-public01 & sample-subnet-public02
보안 그룹 : defalt & sample-sg-elb
대상 그룹
EC2 대시보드 -> load balancer -> create load balancer
alb 선택
load balancer 이름에 sample-elb를 입력합니다.
VPC와 두개의 퍼블릭 서브넷을 각각 지정합니다.
보안 그룹을 지정합니다.
타깃 그룹 생성 및 타깃 등록 / Listeners and routing 항목에서 create target group을 클립합니다.
target type = instances
target group name = sample-tg
protocol = HTTP / Port = 3000
VPC = sample-vpc
Protocol version = HTTP1
으로 설정합니다.
그리고 create target group을 눌러 타겟 그룹을 완성합니다.
이제 Listeners and routing카테고리로 돌아와 좀 전에 만든 sample-tg를 선택하고 'create load balancer'를 눌러 로드 밸런서도 완성합니다.
이것으로 로드 밸런서 연결까지 끝냈고, 현재까지의 아키텍쳐는 다음과 같습니다.