[reinvent 2024] 고가용성을 위한 ELB 트래픽 분배 최적화

Summary

AWS ELB는 고가용성과 확장성을 지원하는 핵심 서비스로 다양한 아키텍처와 상황에 적합하게 트래픽을 효과적으로 분산하는 역할을 합니다. 이번 세션에서는 ELB의 주요 기능, 트래픽 관리 원리, 그리고 최적화 방안에 대해 자세히 알아봅니다.


리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Optimizing ELB traffic distribution for high availability
  • Date: 2024년 12월 2일(월)
  • Venue: MGM Grand | Level 1 | Grand 119
  • Speaker:
  • Enrico Liguori(Networking SA, AWS)
  • Jon Zobrist(Head of ELB Customer Success, Amazon Web Services)
  • Industry: –

들어가며

이번 세션은 AWS Elastic Load Balancer(ELB) 서비스와 고가용성 트래픽 최적화에 대한 이해를 높이기 위해 신청하였습니다. 클라우드 기반 애플리케이션의 안정성과 보장성을 확보하기 위해 로드밸런서의 고급 기능 및 최신 업데이트에 대한 내용을 습득하고, 이를 실제 AWS 인프라 운영에 적용하고자하여 신청하게 되었습니다.

인터넷 애플리케이션 및 아키텍처

AWS는 인터넷 애플리케이션을 설계할 때 공용 인터넷 및 사설 네트워크를 기반으로하는 IP 네트워킹을 제공하며, IPv4와 IPv6를 모두 지원합니다. 트래픽은 TCP, UDP 또는 HTTP 등 다양한 프로토콜로 처리되며, 각 프로토콜의 특성에 맞춰 라우팅을 최적화합니다. 

AWS의 Elastic Load Balancer(ELB)는 Route53 기반의 헬스 체크 및 DNS 관리를 통합하여 트래픽을 Healthy한 엔드포인트로 라우팅합니다.

고가용성 어플리케이션 제공

John Zobrist가 소개한 이번 세션은 AWS 로드 밸런서를 통한 고가용성 애플리케이션 구현 방법에 중점을 두었습니다. 아래 사진과 같이, CloudFront와 Global Accelerator는 애플리케이션 고가용성을 지원하는 핵심 서비스로 소개되었습니다. 이 세가지 모두 유사한 가용성 옵션을 제공하지만 이번 세션에서는 AWS Global Accelerator의 역할과 기능이 주요 포인트로 다뤄졌습니다.

AWS Global Accelerator는 AWS 백본 네트워크를 활용하여 클라이언트를 가장 가까운 리전에 연결함으로써 대기 시간을 줄이고 가용성을 극대화합니다. 또한, Route53과 통합된 헬스 체크를 통해 비정상 IP를 감지하고 DNS에서 자동으로 제거하여 트래픽을 안정적으로 관리하는데 있어 큰 장점을 지니고 있습니다.

AWS는 애플리케이션 고가용성을 유지하기 위해 Application Recovery Controller(ARC)와 통합된 Zonal Shift 및 Auto Shift 기능을 도입하여, 특정 가용 영역에서 문제가 발생하였을 때 신속히 대체 영역으로 트래픽을 자동 재배치하여 서비스 중단 시간을 최소화하는데 중점을 두고있습니다.

  • Auto Shift는 사전에 정의된 임계치나 비정상 조건에 따라 자동으로 가용 영역 장애 처리를 트리거합니다. 
  • Zonal Shift는 사용자가 특정 가용 영역(AZ)을 비정상 상태로 선언하여 트래픽을 다른 정상적인 영역으로 재배치할 수 있도록 지원합니다. 이전에는 Cross-Zone 로드 밸런싱이 비활성화된 경우에만 작동하였지만, 최근 업데이트를 통해 활성화된 상태에서도 동작 가능하도록 개선되었습니다.

클라이언트를 Target에 라우팅

Elastic Load Balancer(ELB)는 트래픽 라우팅에 중요한 역할을 하며, 라우팅 알고리즘(ex. RR, WRR 등)과 클라이언트 요청에 따라 트래픽을 최적의 Target Group으로 분배합니다.

ALB는 HTTP 요청에 대해 세밀한 라우팅 규칙을 설정할 수 있어 다양한 백엔드 서비스를 단일 로드밸런서로 통합할 수 있는 유연성을 제공합니다. 이러한 기능은 TLS Offerload 및 가중치 기반 라우팅과 같은 고급 기능과 결합되어 B/G 배포 및 지속적 통합 과정에서도 유용하게 활용됩니다.

아래 사진은 라우팅 요청에 따른 Best Practice 예시입니다.

ELB를 단일로 통합하여, 여러 로드 밸런서를 사용하지 않고 단일 ELB에서 도메인 별로 트래픽을 라우팅하여 관리 오버헤드를 줄일 수 있습니다. 또한, 각 도메인에 적합한 Target Group으로 트래픽을 분배하여 규칙 우선순위를 통해 처리 속도를 최적화할수 있을 뿐더러, SNI 및 TLS 인증서를 통해 HTTPS 트래픽을 손쉽게 오프로드 할 수 있습니다.

클라이언트 요청에 포함된 호스트 이름 정보를 기반으로 적절한 TLS 인증서를 선택하고 이를 통해 단일 ELB가 여러 도메인을 효율적으로 처리할 수 있습니다. 또한, 클라이언트의 요청에 따라 각 도메인별 Target Group으로 트래픽을 라우팅(호스트헤더 기반 라우팅)하여 아키텍처를 간소화할 수 있습니다.

로드 밸런서 용량 단위(LCU) 예약 기능

로드밸런서 용량 단위(LCU) 예약 기능은 최소 용량을 예약함으로써 에기치 못한 트래픽 급증에도 안정성을 유지하는 중요한 기능입니다.

위 사진은 ELB 자동 확장 기능에 대한 설명으로, CPU 임계값(35%) 초과 시 Scale up, 12시간 쿨다운 후 CPU 15% 이하로 유지될 경우 Scale down이 진행됩니다. 이러한 메커니즘은 LCU 예약 기능과 결합될 때 더욱 효과적이며, 장기적인 안정성과 확장성을 제공합니다.

LCU 예약 기능의 핵심 특징에 대한 설명입니다.

  • 최소 용량 증가 : ALB 및 NLB 모두에 작동하며, 예기치 못한 트래픽 급증에도 안정적인 서비스 제공을 지원합니다.
  • 즉각적인 프로비저닝 : 몇 분 이내에 용량이 프로비저닝되며, API를 통하여 확인 및 조정이 가능합니다.
  • 추가 확장 제한 없음 : 기본 설정 이상의 추가 확장을 지원하여 유연성을 제공합니다.

트래픽 마이그레이션 시 LCU 예약의 중요성을 나타내는 그래프입니다. 트래픽이 한 로드밸런서에서 다른 로드밸런서로 전환될 때, 예약된 LCU 용량은 트래픽 급증을 감당하고 서비스 중단을 방지합니다. 특히, 대규모 이벤트 전에 예약을 설정하면 안정적인 확장을 보장할 수 있습니다.

해당 이미지는 스케일 다운 후 트래픽 급증(스파이크)이 발생하는 상황을 나타냅니다. 이러한 급증은 기본적인 축소 메커니즘이 트래픽 변화의 패턴을 예측하지 못하기 때문에 발생하는데요, 이 경우 LCU 예약 기능을 활용하면 급증 트래픽이 발생하기 전에 최소 용량을 사전 프로비저닝하여 안정적으로 대응할 수 있습니다. 스케일 다운 이후에도 유기적 확장과 빠른 스케일링을 통하여 고가용성을 유지합니다. 

이와 같이 LCU 예약 기능을 잘 활용한다면, 특히 대규모 이벤트나 주기적인 트래픽 변동을 처리하는데 있어 굉장히 유용할 것이며, 트래픽 감소 후에는 점진적인 스케일 다운을 통하여 비용 효율성을 제공합니다. 이를 통해 AWS는 트래픽 처리 성능과 가용성을 더욱 강화하는 것을 알 수 있습니다.

결론

이번 세션은 AWS ELB의 최신 기능과 이를 활용한 고가용성 애플리케이션 아키텍처 설계 방안을 체계적으로 학습할 수 있었습니다. 특히, LCU 예약 기능과 Zonal Shift 기능은 장애 복구 및 확장성을 높이는데 큰 영향을 미치는 것을 깨달았습니다. 기존 프로젝트 운영 과정에서 예기치 못한 트래픽 급증으로 인해 이슈가 발생했던 경험이 떠올랐고, 이러한 기능을 사전에 알았다면 더 원활히 대처할 수 있었을 것이라는 생각이 들었습니다.
또한, 이 세션에서 강조된 트래픽 분배 및 라우팅 전략은 실제로 프로젝트를 진행하며 여러 문제를 해결했던 경험과 공통되는 부분이 많았습니다. 특히 ELB의 라우팅 알고리즘과 가중치 기반 트래픽 분배 기능은 앞으로 서비스 운영 과정에서도 효율적으로 활용할 수 있을 것이라 느꼈습니다.

이번 세션을 통해 새로운 기능과 기술에 대하여 학습하면서 AWS 인프라를 더욱 효율적으로 관리할 수 있을 것이라는 자신감을 얻었으며, 이를 현업에 적용하여 더욱 안정적이고 효율적인 클라우드 아키텍처를 설계하고 운영할 수 있을 것으로 기대합니다.
글 │메가존클라우드, Enterprise Managed Service Center (EMS),  Cloud Engineer 6 Team, 원민지
게시물 주소가 복사되었습니다.