AWS의 로드 밸런싱: 어떤 옵션이 있는지 알아보기

소개

용도, 플랫폼, 기술은 매우 다양하지만, 대부분의 애플리케이션에는 몇 가지 공통적인 요구 사항이 있습니다. 애플리케이션은 온라인 상태를 유지하고 하드웨어 장애의 영향을 받지 않아야 하며, 수요에 맞게 확장할 수 있어야 하고, 침해와 공격으로부터 보호되어야 합니다.

애플리케이션이 메인프레임 컴퓨터에서 개방형 시스템으로 이전되기 시작한 이래, 조직들은 애플리케이션의 확장성과 가용성을 관리하기 위해 로드 밸런서를 사용해 왔습니다. 복잡한 문제와 더욱 정교한 보안 위협에 직면하면서 로드 밸런서는 보안 및 최적화 기능이 추가된 더욱 풍부한 기능 세트를 갖추게 되었습니다.

시간이 흐르면서 단순한 로드 밸런서는 강력한 애플리케이션 전송 컨트롤러(ADC)로 발전했습니다. 전 세계 수천 개의 조직이 우리 삶을 뒷받침하는 애플리케이션을 안전하고 빠르며 언제든 사용할 수 있도록 ADC에 의존하고 있습니다. 응급 의료 서비스와 은행 업무부터 게임과 데이팅에 이르기까지, ADC는 앱이 최상의 성능을 발휘하도록 지원하는 기술을 제공합니다.

애플리케이션이 기존 온프레미스 모델에서 클라우드 서비스로 전환되더라도 확장성, 보안 및 가용성에 대한 요구는 줄어들지 않습니다. 따라서 퍼블릭 및 프라이빗 클라우드를 포함한 모든 클라우드 플랫폼이 핵심 서비스형 인프라(IaaS) 제품의 일부로 로드 밸런싱 서비스를 제공하는 것은 당연한 일입니다.

Amazon Web Services(AWS)의 Elastic Load Balancing(ELB) 서비스는 조직이 인터넷 최대 규모의 애플리케이션을 비롯한 수십만 개의 애플리케이션을 제공할 수 있도록 지원합니다. 또한 온프레미스 로드 밸런서가 고객의 요구 사항을 충족하기 위해 기능을 추가해 온 것처럼, AWS의 로드 밸런싱 서비스도 새로운 특징과 기능을 지속적으로 도입하고 있습니다.

ELB는 많은 조직에 매우 적합한 선택일 수 있지만, 핵심 애플리케이션을 최적으로 지원하기 위해 추가 기능이 필요한 조직도 있습니다. 또한 일부 기업은 온프레미스 애플리케이션을 확장하고 관리하기 위해 이미 ADC와 로드 밸런서를 배포했습니다. 이러한 조직은 데이터 센터에서 사용하는 것과 동일한 플랫폼을 AWS에 도입함으로써 클라우드 마이그레이션에 소요되는 시간과 비용, 위험을 줄일 수 있습니다. 조직에 적합한 로드 밸런싱 서비스를 결정하기에 앞서 AWS에서 사용할 수 있는 다양한 로드 밸런싱 옵션을 살펴보겠습니다.

AWS에서의 부하 분산

Amazon Web Services는 주요 IaaS 제공업체 중 가장 광범위한 서비스를 제공하며, 단순한 컴퓨팅 및 블록 스토리지부터 고급 데이터베이스와 머신 러닝 환경에 이르기까지 매우 다양한 기능과 용도를 지원합니다. 많은 AWS 고객 아키텍처의 핵심 구성 요소는 로드 밸런서이며, AWS는 가상 프라이빗 클라우드(VPC) 환경에서 사용할 수 있도록 ‘Elastic Load Balancing’이라는 이름으로 두 가지 서로 다른 서비스를 제공합니다.

애플리케이션 로드 밸런서

Amazon의 Application Load Balancer(ALB)는 AWS 클라우드에서 부하 분산, 상태 모니터링 및 URL 기반 요청 라우팅을 제공합니다. ALB는 AWS 인증서 관리 서비스 중 하나에서 불러온 고객 SSL 인증서를 사용하여 HTTP 및 HTTPS 프로토콜의 부하를 분산하며, WebSocket 트래픽의 부하 분산도 지원합니다. 또한 ALB를 사용하면 백엔드 Elastic Compute Cloud(EC2) 서버 리소스를 자동으로 확장하거나 축소할 수 있습니다. 트래픽 수요가 증가하면 ALB가 추가 서버 배포를 트리거하고, 수요가 감소하면 해당 서버를 제거할 수 있습니다.

ALB 서비스는 추가 부하에 대응할 수 있도록 확장되기도 합니다. 애플리케이션 네트워크 트래픽이 증가하면 추가 ALB 인스턴스가 생성되어 DNS에 등록되고, 이후 DNS 라운드 로빈을 사용해 트래픽이 ALB 인스턴스에 분산됩니다. 갑작스러운 워크로드에서도 최상의 성능을 유지하려면 ALB 인스턴스를 미리 준비하는 것이 좋습니다. 새 인스턴스를 가동하는 데 1분에서 7분 정도 걸릴 수 있기 때문입니다.

ALB는 웹 콘솔, CLI, API, CloudFormation 템플릿(CFT), Ansible과 같은 다양한 자동화 도구를 통해 배포할 수 있습니다.

네트워크 로드 밸런서

AWS Elastic Load Balancing 제품군에 가장 최근 추가된 서비스는 Network Load Balancer(NLB)입니다. “Classic” Load Balancer와 마찬가지로 계층 4에서 작동하며, 연결 기반 로드 밸런싱과 네트워크 및 애플리케이션 계층 상태 확인 기능을 제공합니다. NLB는 트래픽 급증과 대량의 연결을 원활하게 처리하도록 설계되었습니다. 또한 NLB에서는 EC2 인스턴스뿐 아니라 RFC 1918 사설 IP 주소도 대상으로 지정할 수 있습니다. 자동 확장, 자체 확장 및 배포 옵션은 ALB와 유사합니다.

클래식 로드 밸런서

AWS는 여전히 “클래식” Elastic Load Balancer도 제공합니다. 이 서비스는 TCP 트래픽에 대한 기본적인 레이어 4 로드 밸런싱을 지원하지만, 레이어 7 트래픽의 로드 밸런싱이나 라우팅은 지원하지 않습니다. 자동 확장, 자체 확장 및 배포 옵션은 ALB와 유사합니다.

F5 BIG-IP 가상 ADC

F5® BIG-IP® ADC 플랫폼은 경량 AWS 클래식 로드 밸런서와는 정반대편에 있는 로드 밸런싱 솔루션입니다. 보안, 애플리케이션 최적화 및 가용성과 관련된 광범위한 과제를 해결하는 다양한 기능을 갖춘 BIG-IP는 단순한 솔루션으로는 해결할 수 없는 문제를 해결하고 애플리케이션 트래픽을 관리할 수 있습니다.

BIG-IP는 전체 트래픽 검사, 제어 및 조작을 포함하는 포괄적인 애플리케이션 트래픽 관리 기능을 제공합니다. 이 기능은 애플리케이션 계층의 요청과 응답 모두에 적용되므로 데이터 유출을 방지하고 서버 응답 콘텐츠를 조작할 수 있습니다. 이 기능은 수천 개 조직에서 빠르고 안정적이며 매우 유용한 문제 해결 도구로 입증되었습니다. 또한 애플리케이션 트래픽을 프로그래밍 방식으로 완벽하게 검사하고 조작할 수 있어, 개발자는 전략적으로 중요한 제어 지점에서 애플리케이션 동작을 개선할 수 있는 추가 아키텍처 계층을 확보할 수 있습니다.

BIG-IP와 ELB: 관리 방식의 차이

이처럼 프로그래밍을 통해 문제를 해결할 수 있는 다양한 기능에는 고려해야 할 부담도 따릅니다. 우선 BIG-IP은 AWS 클래식 로드 밸런서 및 ALB와는 다른 인프라 계층에서 작동합니다. BIG-IP은 VPC 내에 EC2 인스턴스로 배포되며, 여기에는 장단점이 모두 있습니다. ADC는 VPC의 일부이므로 가용 영역 내 모든 구성 요소 간의 트래픽을 효과적으로 관리할 수 있으며, VPC 내 구성 요소 간 통신을 세밀하게 제어할 수 있습니다.

동시에 관리하고 유지해야 할 EC2 인스턴스가 추가로 생성됩니다. 구성 자체는 쉽지만, 미션 크리티컬한 구성 요소가 될 시스템의 고가용성을 확보하는 일은 이제 고객의 책임입니다. 소프트웨어 업데이트와 일반 관리 등 기반 플랫폼의 관리는 AWS가 아닌 고객이 담당해야 하며, 새로운 기능은 사실상 중단 없이 이루어지는 서비스 업그레이드 방식이 아니라 AWS Marketplace에 출시되는 새 버전을 통해 제공됩니다.

마지막으로, BIG-IP는 필요에 따라 확장할 수 있고 애플리케이션 서버 인스턴스를 자동으로 확장할 수도 있지만, 핵심 AWS 서비스를 사용할 때와 비교하면 거의 필연적으로 고객이 더 많은 구성 작업을 담당해야 합니다.

어떤 로드 밸런서가 저에게 적합할까요?

조직에 적합한 솔루션을 선택하려면 기본적으로 애플리케이션 및 플랫폼 요구 사항을 고려해야 합니다. 일부 애플리케이션과 사용 사례에는 AWS ELB가 적합하지만, 그 외에는 BIG-IP의 고급 기능이 필요합니다.

AWS Elastic Load Balancing

ALB는 몇 가지 기본적인 URI-대상 매핑 규칙과 간단한 로드 밸런싱이 필요한 애플리케이션을 위해 설계되었습니다. ALB는 많은 AWS 네이티브 애플리케이션에 필요한 기본적인 트래픽 분산 및 확장 서비스를 제공합니다. 개발자나 애플리케이션 공급업체가 보안 또는 기능 문제를 적시에 해결할 수 있거나 전반적인 보안 침해 위험이 낮은 경우, ALB는 당연한 선택입니다.

다른 TCP 프로토콜을 사용하는 유사한 애플리케이션에서 강력하면서도 간단한 로드 밸런싱 서비스가 필요한 경우에는 클래식 로드 밸런서만으로도 충분한 경우가 많습니다.

BIG-IP 부하 분산

조직에서 AWS의 완전한 기능을 갖춘 ADC의 강력한 성능을 활용하고자 하는 다른 사용 사례도 있습니다. AWS에서 BIG-IP을 사용할 때 얻을 수 있는 몇 가지 이점은 다음과 같습니다.

  • 보안 강화
  • 트래픽 제어 강화
  • 트래픽 최적화
  • 진정한 애플리케이션 계층 프로그래밍 기능

BIG-IP의 플랫폼 아키텍처를 통해 애플리케이션 트래픽을 완벽하게 파악하고 제어할 수 있습니다. 광범위한 기능을 갖춘 AWS 환경의 BIG-IP 인스턴스는 애플리케이션 성능, 보안 또는 가용성 문제를 해결할 수 있는 강력한 도구 세트를 제공합니다. BIG-IP는 개별 애플리케이션 계층 요청을 로컬 EC2 인스턴스, 다른 클라우드의 서버 인스턴스, API 기반 서비스 또는 온프레미스 디바이스 등 라우팅 가능한 모든 리소스로 전달할 수 있습니다.

예를 들어 ALB는 요청된 URL을 기준으로 트래픽을 백엔드 리소스로 전달할 수 있지만, 디바이스 유형, 연결 속도 또는 클라이언트 위치와 같은 더 복잡한 특성을 기준으로 트래픽을 전달해야 하는 경우에는 BIG-IP가 이 작업에 더 적합합니다.

이러한 고급 문제 해결 기능은 엔터프라이즈 애플리케이션을 클라우드로 마이그레이션하는 경우나 애플리케이션의 취약점 또는 동작 문제를 완화할 개발자를 즉시 투입하기 어려운 경우에 특히 유용합니다. 애플리케이션을 긴급히 보호해야 하거나, 새로운 클라이언트 유형(또는 클라이언트 운영 체제 변경)에서 오작동하거나, 특정 요청으로 인해 충돌하는 경우 BIG-IP은 빠르고 간단하며 안정적인 해결책을 제공하는 경우가 많습니다.

또 다른 중요한 요소는 데이터 센터와 클라우드 간의 일관성을 확보해야 한다는 점입니다. 수천 개의 조직이 데이터 센터에서 핵심 애플리케이션을 제공하기 위해 BIG-IP 디바이스를 사용하고 있습니다. AWS BIG-IP Virtual Edition은 데이터 센터의 물리적 BIG-IP와 동일한 애플리케이션 계층 서비스를 AWS에서 제공합니다. BIG-IP VE를 사용하면 조직은 애플리케이션을 더 빠르고 저렴하게, 더욱 확신을 갖고 마이그레이션할 수 있으며, 직원들은 다른 분야의 역량 재교육에 집중하는 동시에 BIG-IP에 대한 조직의 지식과 투자를 유지할 수 있습니다.

배포 옵션

네이티브 서비스인 AWS ELB는 확인란을 선택하는 것만큼 간단하게 배포할 수 있습니다. AWS에서 BIG-IP VE를 실행하려면 사용량 기반 과금 또는 BYOL(Bring Your Own License) 모델을 사용하여 Amazon Marketplace에서 인스턴스를 배포해야 합니다. BIG-IP 이미지는 수동으로 배포하거나 AWS CFT와 같은 자동화 옵션을 사용하여 배포할 수 있으며, F5는 완벽하게 지원되는 여러 템플릿과 일부 “실험용” 템플릿을 제공합니다. 이러한 템플릿은 F5 Github 리포지토리에서 제공되며, 이 리포지토리에는 Python SDK와 기타 도구도 포함되어 있습니다. 커뮤니티에서 지원하는 추가 배포 도구, 플레이북 및 문서는 F5 DevCentral 리포지토리에서 확인할 수 있습니다.

결론

AWS ELB와 F5 BIG-IP는 모두 AWS에 애플리케이션을 배포하는 조직에 매력적인 가치를 제공합니다. 더 세밀한 제어, 보안 또는 프로그래밍 기능이 필요한 시점과 영역을 파악하면 클라우드에서 애플리케이션과 비즈니스를 지원하는 데 적합한 솔루션을 선택할 수 있습니다.

2017년 11월 3일 게시