AWS - Load Balancer

제훈·2024년 12월 17일

DevOps

목록 보기
15/16

Application Load Balancer(ALB)

웹 애플리케이션으로 들어오는 트래픽을 여러 서버에 분배하는 서비스이다.
L4(전송 계층) 또는 L7(애플리케이션 계층) 수준에서 작동하여 여러 대상 그룹으로 트래픽을 분산할 수 있다. 또한 SSL/TLS 종료 및 HTTPS 리다이렉션을 지원한다.

지금 이전 게시글로부터 만들어진 서브넷들을 보면 라우팅 테이블과 bastion server를 통해 내부에서는 접근은 할 수 있게 해놨지만 외부로부터 접근은 할 수가 없는 상태이다.

이것을 로드 밸런서를 통해 사용자들은 특정 public subnet으로 접근이 가능하게 할 수 있는데 그것을 알아볼 것이다.

여기서부터는 EC2가 있다는 가정으로 적어둔 것으로, 직접 EC2를 만들어서 해보거나 ELB 게시글에서 Elastic Beanstalk을 만드는 것을 보고 해본 뒤 아래 과정을 진행하는 것을 추천한다.

우선 로드밸런서용 대상 그룹을 만드는 과정을 알아보자.

ALB용 대상그룹 생성

  1. AWS EC2로 이동
  2. 왼쪽 탭의 대상 그룹 선택 -> 대상 그룹 생성 버튼 클릭
  3. 대상 유형은 인스턴스
  4. 대상 그룹 이름은 편한대로 작성하면 된다.
  5. 프로토콜 : 포트 - HTTP / 80 으로 그대로 진행
  6. VPC는 이전에 만들었던 VPC로 설정한 뒤
  7. 대상 등록 -> EC2 인스턴스를 체크

근데 지금은 EC2를 만들지 않았으므로 다음 게시글로 Elastic Beanstalk 으로 백엔드용 환경을 만들 것이니 그 때 설정하자.

나중에 백엔드용 환경 2개를 만들 것이니 대상 등록에서 그 해당 ELB의 EC2 2개를 설정해주면 된다.

  1. 체크한 뒤 아래에 보류 중인 것으로 포함 클릭
  2. 대상 그룹 생성
  3. 조금 기다리면 Health Check가 된다.

Health Check 관련해서도 백엔드에서 Health Check 용 api 를 만들거나 해야 한다.
이것 관련해서도 ELB 한 뒤 배포할 때 한 번에 추가 설명하겠다.
정상이 아니어도 배포는 됐던 경험이 있다.

ALB 생성

  1. AWS EC2 - 로드밸런서 - 로드밸런서 생성
  2. 로드밸런서 유형 : Application Load Balancer 선택

https 를 하기 위해 유형은 위와 같이 선택했다.

  1. 이름은 편하게 작성
  2. 체계 - 인터넷 경계 -> 외부 노출 여부를 나타내는 것이기 때문에
  3. 네트워크 매핑 - VPC : 기존에 만들었던 VPC로 진행

5단계를 하면 아래에 가용 영역으로 ap-northeast-2aap-northeast-2c가 보이는데 둘다 public subnet으로 설정해주면 된다.

  1. 보안 그룹 : default로 돼 있는 것에 + 만들었던 intbyte-sg-elb 형태의 로드밸런서용 대상그룹 설정

  2. 리스너 및 라우팅 : HTTP : 80 에 대상 그룹은 위에서 로드밸런서용 대상 그룹으로 설정

  3. 생성

아직은 Route 53 설정도 해두지 않아서 https도 설정이 돼 있지 않고, 로드밸런서 DNS 이름을 통해서만 작동하는지 확인할 수 있을 것이다.

물론 백엔드를 연결했을 때의 이야기지만 연결하는 것은 ELB를 만들면서 했던 과정을 포함해서 작성하겠다.

profile
백엔드 개발자 꿈나무

0개의 댓글