[AWS] 웹 애플리케이션 구축 - 4.로드 밸런서

김경훈·2024년 2월 25일
0

AWS

목록 보기
18/18
post-custom-banner

로드 밸런서

사용자가 늘어나면 웹서버 1대만으로는 요청을 처리하기 힘들어집니다. 이럴때는 웹 서버를 여러 대 준비해서 성능을 높이며 이런 방식을 스케일 아웃(scale-out)라고 합니다. 그러나 웹 서버를 늘린 것만으론 요청을 분산할 수 없습니다. 이럴 때 사용하는 것이 로드 밸런서(load balancer)입니다.

로드 밸런서의 역할

로드 밸런서의 주요 역할은
1. 요청 분산
2. SSL 처리
3. 부정 요청 대응
입니다.

  1. 요청 분산이란 만들어둔 웹서버에 인터넷으로부터 전송된 요청을 고르게 분산하는 것을 말합니다.
  2. SSL은 데이터를 암호화 하는 것 입니다. 인터넷과 연결 중 https를 통해 안전하게 정보를 보낼 때 SSL이 사용됩니다. 그런데 이런 데이터 암호화 복호화 처리를 웹서버가 하게 되면 부하가 걸릴 수 있습니다. 따라서 로드 밸런서에서 암호 관련 처리를 통해 웹 서버에서 암호를 처리하는 것 보다 빠른 속도로 처리합니다.
  3. 부정 요청 대응은 말 그대로 부정한 요청이 웹 서버에 직접 연결되는 것을 막아주는 것 입니다.

로드 밸런서 생성

로드 밸런서를 생성하면서 앞서 만든 VPC->퍼블릭 서브넷->웹서버를 통해 연결될 수 있도록 합니다.
만들 로드 밸런서의 스팩은 다음과 같습니다.
이름 : sample-elb
VPC : sample-vpc
가용 영역 : sample-subnet-public01 & sample-subnet-public02
보안 그룹 : defalt & sample-sg-elb
대상 그룹

  • 이름 : sample-tg
  • 프로토콜 : HTTP
  • 포트 : 3000
  • 등록 완료 타깃 : sample-ec2-web01 & sample-ec2-web02
  1. EC2 대시보드 -> load balancer -> create load balancer

  2. alb 선택

  3. load balancer 이름에 sample-elb를 입력합니다.

  4. VPC와 두개의 퍼블릭 서브넷을 각각 지정합니다.

  5. 보안 그룹을 지정합니다.

  6. 타깃 그룹 생성 및 타깃 등록 / Listeners and routing 항목에서 create target group을 클립합니다.

target type = instances
target group name = sample-tg
protocol = HTTP / Port = 3000
VPC = sample-vpc
Protocol version = HTTP1
으로 설정합니다.

  1. 타깃 등록(Register targets)에서 타겟 그룹에 등록할 EC2를 sample-ec2-web01 & sample-ec2-web02 이렇게 두개를 골라 줍니다.

그리고 create target group을 눌러 타겟 그룹을 완성합니다.
이제 Listeners and routing카테고리로 돌아와 좀 전에 만든 sample-tg를 선택하고 'create load balancer'를 눌러 로드 밸런서도 완성합니다.

아키텍쳐

이것으로 로드 밸런서 연결까지 끝냈고, 현재까지의 아키텍쳐는 다음과 같습니다.

profile
Cloud & DevOps
post-custom-banner

0개의 댓글