다양한 용도, 플랫폼, 기술에도 불구하고 대부분의 애플리케이션은 몇 가지 공통적인 요구 사항을 공유합니다. 이러한 데이터는 온라인 상태로 유지되어야 하며 하드웨어 장애로부터 보호되어야 하며, 수요에 맞게 확장되어야 하며, 손상 및 공격으로부터 방어되어야 합니다.
애플리케이션이 메인프레임 컴퓨터에서 개방형 시스템으로 이전된 이래로, 조직에서는 로드 밸런서를 사용하여 애플리케이션의 확장성과 가용성을 관리해 왔습니다. 복잡한 문제와 보다 정교한 보안 위협에 직면하게 되면 로드 밸런서는 추가적인 보안 및 최적화 기능을 갖춘 보다 풍부한 기능 세트를 개발했습니다.
시간이 지나면서 간단한 로드 밸런서는 강력한 애플리케이션 전송 컨트롤러(ADC)로 발전했습니다. 전 세계 수천 개의 기업이 ADC를 사용하여 우리 삶을 운영하는 애플리케이션을 안전하고 빠르며 가용성 있게 만들고 있습니다. 응급 의료 서비스부터 은행 업무, 게임, 데이트까지 ADC는 앱이 최상의 성능을 발휘할 수 있도록 돕는 기술을 제공합니다.
애플리케이션이 기존 온프레미스 모델에서 클라우드 서비스로 이동하더라도 확장성, 보안 및 가용성에 대한 요구는 줄어들지 않았습니다. 따라서 퍼블릭 및 프라이빗을 포함한 모든 클라우드 플랫폼이 핵심 인프라 즉 서비스(IaaS) 제품의 일부로 로드 밸런싱 서비스를 제공한다는 것은 놀라운 일이 아닙니다.
Amazon Web Services(AWS) Elastic Load Balancing(ELB) 서비스는 조직이 인터넷 최대 규모의 애플리케이션을 포함하여 수십만 개의 애플리케이션을 제공하는 데 도움을 줍니다. 온프레미스 로드 밸런서가 고객 요구 사항을 충족하기 위한 기능을 추가한 것처럼 AWS의 로드 밸런싱 서비스도 새로운 기능을 계속 통합하고 있습니다.
ELB는 많은 조직에 좋은 선택이 될 수 있지만, 일부 조직에서는 중요한 애플리케이션을 최상으로 지원하기 위해 추가 기능이 필요합니다. 또한 일부 기업은 온프레미스 애플리케이션을 확장하고 관리하기 위해 ADC와 로드 밸런서를 이미 구축했습니다. 이러한 조직의 경우 데이터 센터와 동일한 AWS 플랫폼을 도입하면 클라우드 마이그레이션에 드는 시간, 비용, 위험을 줄일 수 있습니다. 조직에 적합한 로드 밸런싱 서비스가 무엇인지 결정하기 전에 AWS에서 제공하는 다양한 로드 밸런싱 옵션을 살펴보겠습니다.
Amazon Web Services는 간단한 컴퓨팅과 블록 스토리지부터 고급 데이터베이스와 머신 러닝 환경에 이르기까지 광범위한 기능과 용도를 아우르는 모든 주요 IaaS 공급업체 중 가장 광범위한 서비스를 제공합니다. 많은 AWS 고객 아키텍처의 핵심 구성 요소 중 하나는 로드 밸런서입니다. AWS는 가상 사설 클라우드(VPC) 환경에서 사용할 수 있는 두 가지 서비스(둘 다 "Elastic Load Balancing"이라는 이름)를 제공합니다.
Amazon의 애플리케이션 로드 밸런서(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, 클라우드 형성 템플릿(CFT) 및 Ansible과 같은 많은 자동화 도구를 통해 배포할 수 있습니다.
AWS 탄력적 로드 밸런싱 제품군에 가장 최근에 추가된 기능은 네트워크 로드 밸런서(NLB)입니다. "클래식" 로드 밸런서와 마찬가지로 이 로드 밸런서는 4계층에서 작동하며 연결 기반 로드 밸런싱과 네트워크 및 애플리케이션 계층 상태 검사를 제공합니다. NLB는 트래픽 급증과 많은 양의 연결에 잘 대처하도록 설계되었습니다. 또한 NLB를 사용하면 EC2 인스턴스뿐 아니라 RFC 1918 개인 IP 주소도 대상으로 지정할 수 있습니다. 자동 확장, 셀프 확장 및 배포 옵션은 ALB와 비슷합니다.
AWS는 TCP 트래픽에 대한 기본 계층 4 로드 밸런싱을 지원하지만 계층 7 트래픽 밸런싱이나 스티어링은 지원하지 않는 "클래식" Elastic Load Balancer도 제공합니다. 자동 확장, 셀프 확장 및 배포 옵션은 ALB와 비슷합니다.
F5® BIG-IP® ADC 플랫폼은 경량 AWS 클래식 로드 밸런서와는 다른 로드 밸런싱 스펙트럼을 나타냅니다. 광범위한 보안, 애플리케이션 최적화 및 가용성 과제를 해결하는 기능 모음을 갖춘 BIG-IP는 간단한 솔루션에서는 해결할 수 없는 문제를 해결하고 애플리케이션 트래픽을 관리할 수 있습니다.
BIG-IP는 전체 트래픽 검사, 제어, 조작을 포함한 포괄적인 애플리케이션 트래픽 관리를 제공합니다. 이는 애플리케이션 계층 요청과 응답 모두에 적용되어 데이터 손실을 방지하고 서버 응답 콘텐츠 조작을 가능하게 합니다. 이 기능은 수천 개 기업에서 빠르고 안정적이며 귀중한 문제 해결 도구임이 입증되었습니다. 또한, 애플리케이션 트래픽에 대한 전체 프로그래밍적 검사 및 조작은 개발자에게 중요한 전략적 제어 지점에서 애플리케이션 동작을 향상시킬 수 있는 추가적인 아키텍처 계층을 제공합니다.
이 모든 프로그래밍 가능한 문제 해결 능력에는 인식해야 할 몇 가지 문제가 있습니다. 첫째, BIG-IP는 AWS 클래식 로드 밸런서 및 ALB와 다른 인프라 수준에서 작동합니다. BIG-IP는 VPC 내의 EC2 인스턴스로 배포되는데, 이 방법에는 장단점이 있습니다. VPC에 속하면 ADC가 가용성 영역 내의 모든 구성 요소 간 트래픽을 효과적으로 관리할 수 있으며, VPC 내 구성 요소 간 통신을 상당히 제어할 수 있습니다.
동시에 관리하고 유지할 추가 EC2 인스턴스가 생성됩니다. 구성하기 쉬운 동시에 임무 수행에 필수적인 구성요소의 고가용성은 이제 귀하의 책임이 됩니다. 소프트웨어 업데이트와 전반적인 관리 측면에서 기본 플랫폼을 관리하는 일은 AWS가 아닌 고객이 담당하며, 새로운 기능은 본질적으로 원활한 서비스 업그레이드가 아닌 AWS Marketplace에 출시된 버전을 통해 제공됩니다.
마지막으로, BIG-IP는 수요에 따라 확장이 가능하며 애플리케이션 서버 인스턴스를 자동으로 확장할 수도 있지만, 핵심 AWS 서비스를 사용하는 것에 비해 구성 작업의 대부분을 고객이 담당하게 됩니다.
귀하의 조직에 적합한 솔루션을 선택하는 것은 본질적으로 귀하의 애플리케이션과 플랫폼 요구 사항에 따라 달라집니다. 일부 애플리케이션과 사용 사례는 AWS ELB에 적합하지만, 일부 애플리케이션과 사용 사례에는 BIG-IP의 고급 기능이 필요합니다.
ALB는 몇 가지 기본 URI-대상 매핑 규칙을 사용하여 간단한 부하 분산이 필요한 애플리케이션을 위해 설계되었습니다. ALB는 많은 AWS 네이티브 애플리케이션에 대한 기본 트래픽 분산 및 확장 서비스를 충족합니다. 개발자나 애플리케이션 공급업체가 보안이나 기능 문제를 적시에 해결할 수 있거나 전반적인 보안 침해 위험이 낮다면 ALB가 확실한 선택입니다.
다른 TCP 프로토콜을 사용하고 견고하면서도 간단한 부하 분산 서비스가 필요한 유사한 애플리케이션의 경우, 기존 부하 분산 장치로 충분한 경우가 많습니다.
조직이 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에 애플리케이션을 배포하는 조직에 매력적인 가치를 제공합니다. 언제 어디에서 더 많은 제어력, 보안 또는 프로그래밍 기능이 필요한지 아는 것은 클라우드에서 애플리케이션과 비즈니스를 지원하는 올바른 솔루션을 선택하는 데 도움이 될 수 있습니다.