AWS

AWS ALB(Application Load Balancer) 완벽 가이드 – 로드 밸런싱 및 최적화 방법

make-min 2025. 2. 22. 14:43
반응형

  • 7계층, HTTP 전용 로드 밸런서

머신 간 다수 HTTP 애플리케이션의 라우팅에 사용됩니다. 이러한 머신들은 **대상 그룹(Target Group)**이라는 그룹으로 묶이며, 동일 EC2 인스턴스 상의 여러 애플리케이션에 부하를 분산합니다. 컨테이너와 ECS를 사용하게 되며, HTTP/2와 WebSocket을 지원합니다.

💡 ALB의 주요 기능

  • HTTP → HTTPS 자동 리다이렉트 지원
  • 경로 라우팅(Path-based Routing) 지원
  • 호스트 기반 라우팅(Host-based Routing) 지원
  • 쿼리 문자열(Query String)과 헤더 기반 라우팅 지원

🌍🌍🌍

ALB를 활용한 마이크로서비스 아키텍처

ALB는 마이크로서비스나 컨테이너 기반 애플리케이션에 가장 적합한 로드 밸런서입니다. Amazon ECS와의 통합을 통해 포트 매핑 기능을 제공하여, ECS 인스턴스의 동적 포트로 리다이렉션이 가능합니다.

📌 ALB vs CLB (클래식 로드 밸런서) 비교

  • CLB는 하나의 애플리케이션에 대해 여러 개의 로드 밸런서가 필요함.
  • ALB는 하나의 로드 밸런서로 다수의 애플리케이션 처리 가능.
  • ALB는 URL 및 호스트 기반 라우팅을 통해 트래픽을 지능적으로 분배.

🔁🔁🔁

대상 그룹(Target Group)이란?

대상 그룹은 ALB가 트래픽을 전달하는 리소스를 정의하는 그룹입니다.

  • EC2 인스턴스 (오토 스케일링 그룹과 연계 가능)
  • ECS 작업(Task)
  • AWS Lambda 함수 (무서버(Serverless) 애플리케이션과 통합 가능)
  • 온프레미스 서버 (사설 IP 지원)

💡 대상 그룹 활용 예시

  • 모바일 트래픽 → EC2 기반의 첫 번째 대상 그룹
  • 데스크톱 트래픽 → 온프레미스 서버 기반의 두 번째 대상 그룹

🛡️🛡️🛡️

ALB와 보안

  • ALB의 X-Forwarded-For 헤더: 클라이언트의 실제 IP를 전달.
  • ALB의 X-Forwarded-Port, Proto: 요청의 포트와 프로토콜 정보 제공.
  • EC2 보안 그룹 설정 필요: ALB에서만 트래픽을 받도록 구성.

⚙️⚙️⚙️

실습: EC2 인스턴스 실행 및 ALB 설정

  1. EC2 인스턴스 2개 실행 (Amazon Linux 2, t2.micro)
  2. 보안 그룹 설정 (HTTP 트래픽 허용)
  3. 대상 그룹 생성 (EC2 인스턴스를 등록)
  4. ALB 생성 및 대상 그룹 연결
  5. DNS 이름을 통해 ALB 접속 확인 (Hello World 메시지 출력)
  6. 한 인스턴스를 중지하여 로드 밸런싱 동작 확인

🔍🔍🔍

리스너 규칙과 트래픽 분배

ALB는 리스너 규칙을 통해 특정 조건을 만족하는 요청을 다른 대상 그룹으로 전달할 수 있습니다.

📌 예제: /error 경로 리디렉트 규칙 설정

  1. 경로 기반 라우팅: /error 요청이 들어오면 404 응답 반환
  2. 호스트 기반 라우팅: myapp.example.com → 특정 대상 그룹으로 연결
  3. 쿼리 문자열 기반 라우팅: ?platform=mobile → 모바일 대상 그룹으로 연결

🎯🎯🎯

결론: ALB를 사용해야 하는 이유

  • 마이크로서비스와 컨테이너 환경에서 최적화
  • HTTP/2 및 WebSocket 지원
  • 동적인 포트 매핑 지원 (ECS 활용)
  • X-Forwarded-For 헤더로 보안 강화
  • 자동 확장(Auto Scaling) 및 고가용성 보장

최신 애플리케이션 로드 밸런서를 활용하여 효율적인 웹 서비스 아키텍처를 구축하는 것이 중요합니다.

반응형