본문 바로가기

AWS

[AWS] Application Load Balancer를 통한 이중화 네트워크 구성

[요약]

1. Tartget group 생성 : Load Balancer 트래픽을 받을 Target 설정

- Tartget Type

- Protocol

- Target registration 등

2. Application Load Balancer 구성

- Scheme

- Network

- Security group

- Listener/Rule 등

3. 웹 브라우저를 통한 Application Load Balancer 작동 테스트

Target groups 생성

ec2 > Load Balancer > Target Group > 대상 그룹 생성

Load Balancer는 트래픽을 받으면 리스너를 통해 타겟 그룹으로 전달한다.

따라서, 트래픽을 받을 대상인 타겟 대상인 그룹을 생성한다.

  • Target Type : Instance
  • 프로토콜 / 포트
    - 참고) 어플리케이션 로드 밸런스는 HTTP, HTTPS만 지원
  • 프로토콜 버전
    - alb ←→ ec2 사이의 통신에 대한 것
  • 상태검사 (health check)
    - alb는 health check를 통해 타겟 인스턴스가 정상적인지 수시로 접속해서 확인함
  • 로드밸런스를 통해 트래픽을 받는 대상 ec2
    - 대상 등록(Register targets)

타겟 그룹 대상 등록

결과 : 타겟 그룹 생성 완료

타겟 그룹 생성

Load Balancer 생성

타겟 그룹으로 트래픽을 분산 시켜줄 로드 밸런서 생성

로드 밸런싱 > 로드 밸런서 > 로드 밸런서 생성 > 어플리케이션 로드 밸런서 생성

  • 유형 : 어플리케이션 로드 밸런서
  • 기본 구성 
    • Schema : Internet-facing
      : 외부 인터넷에서 들어오는 트래픽 분산

기본 구성 설정

  • 네트워크 매핑
    • 로드 밸런서가 어느 가용영역(Availity zone, 서브넷)으로 트래픽을 보낼지 선택함
    • 현재 로드 밸런서의 scheme 이 internet-facing 이기 때문에, 이곳에서 설정한 네트워크(서브넷)의 라우트테이틀에 인터넷게이트와 통신가능 한 설정이 되있어야함

네트워크 매핑 설정

  • 보안 그룹 생성
    • alb는 타겟이 되는 인스턴스와 통신하기 위해서 보안 그룹을 설정함

alb 보안 그룹 생성(1)
alb 보안 그룹 생성(2)
alb 보안 그룹 생성(3)

  • 리스너가 로드 밸런서로 오는 트래픽을 받아 들임
  • 리스너의 룰을 기반으로 트래픽/리퀘스트가 어떤 alb 타겟 그룹으로 갈지 결정 함
    • target 그룹을 생성할 때 프로토콜과 포트는 어플리케이션 로드 벨런서와 타겟이 되는 ec2 인스턴스 사이에 프로토콜과 포트를 지정한 것이면,
      현 단계의 리스너 및 라우팅 설정은 외부/클라이언트와 어플리케이션 로드 벨런드(alb) 사이의 프로토콜과 포트를 지정하는 것, default action(기본 작업, 리스너 룰)은 리스너가 받은 트래픽의 기본 액션을 결정하는 것인데 설정한 tg 로 보냄

웹 브라우저를 통한 Application Load Balancer 작동 테스트

  • 로드 밸런서 생성 완료 후, 로드 밸런서의 “리스너” 탭에서 "lab-vpc-alb-public-tg" 이 연결되어 있고 이는 2개의 타겟 ec2 와 연결 됨을 확인함
  • 로드 밸런서의 “상세 정보” 탭에서 DNS 이름을 복사하여 url에 붙여 넣으면 10.1.2.6(탄력적주소 eip-public-ec2-c1) 또는 10.1.1.134(탄력적주소 eip-public-ec2-a1) 로 연결되는 것을 확인 할 수 있음

10.1.2.6 연결
10.1.1.134 연결

[참고 강의]

[인프런] 스스로 구축하는 AWS 클라우드 인프라 - 기본편