[AWS SAA] Application Load Balancer (ALB)

junghan·2023년 2월 17일
0

AWS SAA

목록 보기
14/51
post-thumbnail

Application Load Balancer란?

AWS에서는 총 4가지의 ELB를 제공하는데 ALB는 그 중 하나입니다.
기본적으로 Elastic Load Balancing은 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산합니다. 등록된 대상의 상태를 모니터링하면서 상태가 양호한 대상으로만 트래픽을 라우팅합니다. Elastic Load Balancing은 수신 트래픽이 시간이 지남에 따라 변경됨에 따라 로드 밸런서를 확장합니다. 대다수의 워크로드에 맞게 자동으로 조정할 수 있습니다.

여기서 Application Load Balancer는 레이어 7(HTTP)에서 작동합니다.
시스템(대상 그룹) 전체에서 여러 HTTP 애플리케이션에 대한 로드 밸런싱을 담당하는 역할을 합니다. 정확히는 동일한 시스템의 여러 애플리케이션(온프레미스의 IP, 인스턴스, 컨테이너 등)에 대한 로드 밸런싱을 담당합니다.



특징

  • 애플리케이션 계층을 담당합니다.

  • HTTP/2 및 WebSocket 지원

  • 리디렉션 지원(예: HTTP에서 HTTPS로)

  • 다른 대상 그룹에 대한 라우팅 테이블:
    • URL의 경로 기반 라우팅(example.com /users & example.com /posts)
    • URL의 호스트 이름 기반 라우팅( one.example.com & other.example.com )
    • 쿼리 문자열, 헤더 기반 라우팅(example.com/users ?id=123&order=false )

  • ALB는 마이크로 서비스 및 컨테이너 기반 애플리케이션에 매우 적합합니다(예: Docker 및 Amazon ECS).

  • ECS의 동적 포트로 리디렉션하는 포트 매핑 기능이 있습니다.




Target Groups

  • EC2 인스턴스(Auto Scaling Group에서 관리 가능) – HTTP

  • ECS 작업(ECS 자체에서 관리) - HTTP

  • Lambda 함수(서버리스) – HTTP 요청이 JSON 이벤트로 변환됩니다.

  • 온프레미스(IP 주소) – 꼭 사설 IP여야 합니다.

  • ALB는 여러 대상 그룹으로 라우팅할 수 있습니다.

  • 대상 그룹 수준에서 상태 확인




ALB 통신 시, 알아두면 좋은 점

  • 고정 호스트 이름(XXX.region.elb.amazonaws.com)

  • 애플리케이션 서버는 클라이언트의 IP를 직접 보지 않습니다.

  • 클라이언트의 실제 IP는 X-Forwarded-For 헤더에 삽입됩니다.

  • Port(X-Forwarded-Port) 및 proto(X-Forwarded-Proto)도 얻을 수 있습니다.




Application Load Balancer 실습

1. 인스턴스 2개 생성하기

인스턴스 스펙

AMI: Amazon Linux 2
type: t2.micro
보안그룹: HTTP 0.0.0.0 , SSH 0.0.0.0
스토리지: 8GB gp2
사용자 데이터:

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

2.EC2 로드밸런트 탭에서 생성 페이지로 접근한 뒤, ALB선택

3. 로드밸런서 환경 설정

  • 기본 구성:
    이름 :사용자정의
    체계 :인터넷 경계
    IP 주소 유형: IPV4
  • 리스너:
    Load balancer 프로토콜: HTTP
    Load balancer 포트: 80
  • 가용영역:
    모두 체크

4.로드 밸런서 보안 그룹 구성

  • HTTP, 80, 0.0.0.0을 가진 보안 그룹을 구성합니다.

5. 라우팅 구성

  • 대상 그룹을 생성합니다.

  • 기존에 생성한 인스턴스를 선택하고 등록된 항목에 추가합니다.

  • 필요한 경우 고급 상태 검사 설정에서 health check 설정을 변경할 수 있습니다.

6. 생성 후 활성 상태 확인 한 뒤, 접속을 통해 연결을 확인합니다.

새로고침을 할 때마다 번갈아 가며 인스턴스가 교체되는 것을 확인합니다.

7. 리스너를 수정하면 세부 라우팅을 설정할 수 있습니다

AWS Certified Solutions Architect Associate 시험합격!

profile
42seoul, blockchain, web 3.0

0개의 댓글