Elastic Load Balancing
1. 개요
1. 개요
Elastic Load Balancing(ELB)은 Amazon Web Services가 제공하는 관리형 로드 밸런서 서비스이다. 이 서비스는 애플리케이션으로 들어오는 인터넷 트래픽을 여러 대상에 자동으로 분산시켜 주는 역할을 한다. 주요 대상으로는 Amazon EC2 인스턴스, 컨테이너, IP 주소 등이 있으며, 이를 통해 단일 장애 지점을 제거하고 애플리케이션의 가용성과 내결함성을 높인다.
이 서비스는 2009년에 처음 등장하여 클라우드 컴퓨팅 환경에서 네트워크 트래픽 관리의 핵심 요소로 자리 잡았다. 사용자는 서버를 직접 프로비저닝하거나 로드 밸런싱 소프트웨어를 관리할 필요 없이, AWS 관리 콘솔을 통해 몇 분 내에 로드 밸런서를 생성하고 구성할 수 있다. 이는 DevOps 관행과 클라우드 네이티브 애플리케이션 구축에 필수적인 인프라 구성 요소이다.
Elastic Load Balancing은 애플리케이션의 요구 사항에 따라 다양한 유형의 로드 밸런서를 제공한다. Application Load Balancer는 HTTP와 HTTPS 트래픽을 라우팅하는 데 최적화되어 있으며, Network Load Balancer는 초고성능과 초저지연률이 필요한 TCP, UDP, TLS 트래픽을 처리한다. 또한 Gateway Load Balancer는 방화벽이나 침입 탐지 시스템 같은 타사 가상 어플라이언스를 쉽게 배포하고 확장할 수 있도록 설계되었다.
이 서비스는 트래픽 증가에 따라 자동으로 확장되며, 내장된 상태 확인 기능을 통해 정상적인 대상으로만 트래픽을 라우팅한다. 또한 SSL/TLS 종료 기능을 제공하여 백엔드 서버의 암호화 부담을 줄여주고, AWS Certificate Manager와의 통합을 통해 인증서 관리도 간소화한다.
2. ELB의 유형
2. ELB의 유형
2.1. Application Load Balancer (ALB)
2.1. Application Load Balancer (ALB)
Application Load Balancer는 Amazon Web Services가 제공하는 로드 밸런서 유형으로, OSI 모델의 7계층인 애플리케이션 계층에서 동작한다. 이는 HTTP와 HTTPS 트래픽을 라우팅하는 데 최적화되어 있으며, 마이크로서비스 및 컨테이너 기반의 현대적 애플리케이션 아키텍처를 지원하기 위해 설계되었다. ALB는 요청의 내용, 예를 들어 호스트 헤더나 경로 패턴을 기반으로 세밀한 라우팅 결정을 내릴 수 있어, 단일 로드 밸런서 뒤에 여러 애플리케이션을 호스팅하는 것이 가능하다.
ALB의 핵심 구성 요소는 리스너와 대상 그룹이다. 리스너는 구성된 프로토콜과 포트로 들어오는 연결 요청을 확인하며, 사전에 정의된 라우팅 규칙에 따라 트래픽을 적절한 대상 그룹으로 전달한다. 대상 그룹은 Amazon EC2 인스턴스, IP 주소, 람다 함수 등 다양한 유형의 백엔드 리소스로 구성될 수 있다. 또한 ALB는 SSL/TLS 암호화 해독(종료)을 자체에서 처리하여 백엔드 서버의 부하를 줄여주는 기능을 기본적으로 제공한다.
주요 기능으로는 웹소켓 및 HTTP/2 프로토콜에 대한 네이티브 지원, 컨테이너 오케스트레이션 서비스인 Amazon ECS와의 긴밀한 통합, 그리고 AWS WAF와 연동하여 애플리케이션 계층의 공격을 방어할 수 있는 능력이 포함된다. 이러한 특징 덕분에 ALB는 가변적인 트래픽을 처리해야 하는 웹 애플리케이션 및 API 게이트웨이의 프론트엔드 구성 요소로 널리 채택되고 있다.
2.2. Network Load Balancer (NLB)
2.2. Network Load Balancer (NLB)
Network Load Balancer(NLB)는 Amazon Web Services의 Elastic Load Balancing 서비스에서 제공하는 로드 밸런서 유형 중 하나이다. 이 서비스는 주로 초고성능과 초저지연 시간이 요구되는 TCP, UDP, TLS 트래픽을 처리하도록 설계되었다. OSI 모델의 4계층(전송 계층)에서 동작하며, 패킷의 IP 주소와 포트 번호를 기반으로 트래픽을 라우팅한다.
NLB는 초당 수백만 건의 요청을 처리할 수 있는 확장성을 가지며, 네트워크 성능에 미치는 영향을 최소화한다. 각 가용 영역에 대해 단일 정적 IP 주소를 제공하며, AWS 프라이빗 링크를 통해 VPC 엔드포인트 서비스로도 활용될 수 있다. 이는 클라이언트와 서버 간의 직접적인 연결을 유지하면서 트래픽을 분산시킨다.
주요 사용 사례로는 게임 서버, 금융 거래 시스템, 실시간 스트리밍 애플리케이션과 같이 극도의 성능과 짧은 지연 시간이 중요한 워크로드가 있다. 또한, 마이크로서비스 아키텍처에서 컨테이너 기반 애플리케이션의 트래픽을 분산하거나, 하이브리드 클라우드 환경에서 온프레미스 서버로의 트래픽을 라우팅하는 데에도 적합하다.
NLB는 Application Load Balancer(ALB)와 달리 애플리케이션 계층(7계층)의 콘텐츠 기반 라우팅이나 SSL/TLS 종료와 같은 고급 기능을 제공하지는 않는다. 대신, 예측 가능한 성능, 초고속 처리량, 그리고 탄력적 IP 주소를 통한 고정 IP 지원에 중점을 둔다.
2.3. Gateway Load Balancer (GWLB)
2.3. Gateway Load Balancer (GWLB)
Gateway Load Balancer는 Amazon Web Services가 제공하는 네 번째 로드 밸런서 유형으로, 네트워크 보안 및 방화벽과 같은 서드파티 가상 어플라이언스의 배포, 확장 및 관리를 단순화하도록 설계되었다. 이 서비스는 트래픽 분산과 트래픽 검사를 결합한 게이트웨이 역할을 하며, 보안 장비를 통한 모든 인바운드 및 아웃바운드 트래픽의 투명한 통과를 가능하게 한다. 사용자는 Amazon EC2 인스턴스나 컨테이너 형태의 가상 어플라이언스를 대상 그룹에 등록하기만 하면, Gateway Load Balancer가 자동으로 트래픽을 분산시킨다.
이 서비스의 핵심은 GENEVE 프로토콜을 사용하는 Gateway Load Balancer 엔드포인트이다. 이 엔드포인트는 VPC 내에 생성되며, 검사가 필요한 트래픽은 이 엔드포인트로 향한다. Gateway Load Balancer는 이 트래픽을 캡슐화하여 등록된 가상 어플라이언스들로 전달하고, 검사가 완료된 트래픽은 다시 원래 목적지로 전송한다. 이 아키텍처는 네트워크 토폴로지를 변경하지 않고도 보안 장비를 쉽게 통합할 수 있게 해준다.
주요 사용 사례로는 차세대 방화벽, 침입 탐지 및 방지 시스템, 딥 패킷 인스펙션 솔루션 등의 배포가 있다. 특히 하이브리드 클라우드 환경에서 온프레미스 데이터 센터와 AWS 클라우드 간의 트래픽을 검사하거나, 여러 가용 영역에 걸쳐 보안 어플라이언스의 고가용성을 구성하는 데 유용하다. Application Load Balancer나 Network Load Balancer가 애플리케이션 트래픽의 로드 밸런싱에 중점을 둔다면, Gateway Load Balancer는 네트워크 계층의 트래픽 검사와 확장성에 특화되어 있다.
2.4. Classic Load Balancer (CLB)
2.4. Classic Load Balancer (CLB)
Elastic Load Balancing의 초기 서비스 형태로, 2009년에 처음 출시되었다. Amazon Web Services의 클라우드 컴퓨팅 인프라에서 애플리케이션의 가용성과 확장성을 제공하기 위한 기본적인 로드 밸런서 서비스이다. TCP, SSL, HTTP, HTTPS 프로토콜을 지원하며, 주로 Amazon EC2 인스턴스와 같은 가상 머신을 대상으로 트래픽을 분산하는 데 사용되었다.
Classic Load Balancer는 OSI 모델의 4계층(전송 계층)과 7계층(응용 계층)에서 모두 작동할 수 있는 기능을 제공한다. 이를 통해 단순한 TCP 연결 기반의 로드 밸런싱부터, HTTP 헤더를 기반으로 한 콘텐츠 기반 라우팅까지 다양한 수준의 트래픽 처리가 가능했다. 그러나 이후 출시된 Application Load Balancer나 Network Load Balancer에 비해 기능이 제한적이며, 마이크로서비스나 컨테이너 기반의 현대적 아키텍처를 지원하는 데는 한계가 있다.
주요 구성 요소로는 클라이언트 요청을 수신하는 리스너와 트래픽을 전달할 실제 컴퓨팅 자원인 대상 그룹이 있다. 상태 확인 기능을 통해 비정상적인 대상으로의 트래픽 전송을 방지하고, SSL/TLS 종료를 지원하여 백엔드 인스턴스의 암호화 부담을 줄일 수 있다.
현재 AWS는 새로운 워크로드에 대해 Classic Load Balancer보다는 보다 진화된 유형의 로드 밸런서 사용을 권장하고 있다. 하지만 기존에 구축된 레거시 시스템이나 특정 프로토콜을 사용하는 애플리케이션에서는 여전히 CLB가 사용될 수 있다.
3. 주요 기능 및 특징
3. 주요 기능 및 특징
3.1. 고가용성 및 내결함성
3.1. 고가용성 및 내결함성
Elastic Load Balancing의 핵심 설계 목표는 제공하는 애플리케이션의 고가용성과 내결함성을 보장하는 것이다. 이를 위해 서비스는 기본적으로 다중 가용 영역에 걸쳐 배포된다. 사용자는 로드 밸런서를 생성할 때 하나 이상의 가용 영역을 활성화하며, Elastic Load Balancing은 각 가용 영역에 로드 밸런서 노드를 자동으로 프로비저닝한다. 이 구조는 단일 데이터 센터나 가용 영역에 장애가 발생하더라도, 다른 가용 영역의 로드 밸런서 노드가 트래픽을 계속 처리할 수 있게 하여 서비스 중단을 방지한다.
내결함성은 정기적인 상태 확인을 통해 뒷받침된다. 로드 밸런서는 등록된 대상(예: Amazon EC2 인스턴스)에 대해 주기적으로 헬스 체크를 수행한다. 만약 특정 대상이 정해진 임계값 이상으로 헬스 체크에 실패하면, 로드 밸런서는 해당 대상으로의 트래픽 라우팅을 즉시 중단한다. 이로 인해 최종 사용자는 비정상적인 인스턴스로 연결되지 않으며, 트래픽은 정상적으로 동작하는 다른 인스턴스들로만 분산된다. 장애가 복구되어 헬스 체크에 다시 성공하면, 로드 밸런서는 자동으로 해당 대상을 트래픽 분산 풀에 다시 포함시킨다.
이러한 고가용성 설계는 단순히 로드 밸런서 자체의 복원력뿐만 아니라, 전체 애플리케이션 아키텍처의 안정성을 높인다. 개발자나 시스템 관리자는 애플리케이션의 구성 요소를 여러 가용 영역에 분산 배치하고, Elastic Load Balancing을 앞단에 배치함으로써, 하드웨어 장애, 네트워크 문제, 또는 소프트웨어 오류와 같은 단일 지점 장애의 영향을 최소화할 수 있다. 결과적으로 이 서비스는 클라우드 컴퓨팅 환경에서 SLA를 준수하고 비즈니스 연속성을 유지하는 데 필수적인 기반이 된다.
3.2. 자동 확장
3.2. 자동 확장
Elastic Load Balancing의 자동 확장 기능은 변화하는 트래픽 부하에 맞춰 로드 밸런서의 처리 용량을 동적으로 조정한다. 이는 사용자가 직접 용량을 프로비저닝하거나 관리할 필요 없이, 애플리케이션의 트래픽 패턴에 따라 로드 밸런서가 자동으로 확장 또는 축소될 수 있음을 의미한다. 이 기능은 특히 예측하기 어려운 트래픽을 처리하는 웹 애플리케이션에 유용하며, Amazon Web Services의 관리형 서비스 특성상 백엔드 인프라 운영 부담을 줄여준다.
자동 확장은 로드 밸런서가 모니터링하는 지표, 예를 들어 처리된 요청 수나 활성 연결 수와 같은 CloudWatch 지표를 기반으로 트리거된다. 트래픽이 증가하면 시스템은 더 많은 로드 밸런싱 용량을 투명하게 추가하여 성능 저하 없이 요청을 처리할 수 있도록 보장한다. 반대로 트래픽이 감소하면 불필요한 리소스를 자동으로 제거하여 비용을 최적화한다. 이 과정은 AWS Auto Scaling과 같은 서비스와 결합되어 백엔드 Amazon EC2 인스턴스의 규모를 함께 조정할 때 특히 강력한 시너지를 발휘한다.
이러한 탄력적인 확장성은 DevOps 관행과 잘 부합하며, 지속적인 통합 및 배포 파이프라인에서 안정적인 성능을 유지하는 데 기여한다. 개발팀은 애플리케이션 로직에 집중하면서도, 급증하는 트래픽에 대응하는 인프라의 확장성과 내결함성을 Elastic Load Balancing에 의존할 수 있다. 결과적으로 자동 확장 기능은 클라우드 네이티브 애플리케이션의 핵심 요구사항인 가용성, 성능, 비용 효율성을 동시에 충족시키는 데 중요한 역할을 한다.
3.3. 상태 확인
3.3. 상태 확인
상태 확인은 Elastic Load Balancing이 등록된 대상 그룹 내 각 대상(예: Amazon EC2 인스턴스, IP 주소, 람다 함수)의 정상 작동 여부를 지속적으로 모니터링하는 핵심 기능이다. 이 기능은 고가용성을 유지하고 사용자 요청이 정상적인 대상으로만 라우팅되도록 보장한다. 로드 밸런서는 구성된 프로토콜과 포트를 사용해 정기적으로 각 대상에 대한 상태 확인 요청을 보낸다.
상태 확인의 주요 매개변수에는 프로토콜(HTTP, HTTPS, TCP), 포트, 확인 경로(HTTP 기반의 경우), 응답 시간 제한, 확인 간격, 정상 임계값, 비정상 임계값 등이 있다. 예를 들어, 웹 서버 대상 그룹의 경우 로드 밸런서는 지정된 간격으로 특정 경로(예: "/health")에 HTTP GET 요청을 보내고, 정의된 성공 코드(예: 200)를 반환하는지 확인한다. 연속적인 확인 실패 횟수가 비정상 임계값을 초과하면 해당 대상은 비정상으로 표시되어 트래픽 수신에서 제외된다.
이러한 동적 상태 관리 덕분에 시스템은 장애가 발생한 인스턴스로 트래픽이 전달되는 것을 방지할 수 있다. 또한, 일시적으로 제외된 대상이 이후 상태 확인에 성공하여 정상 임계값을 충족하면, 로드 밸런서는 자동으로 해당 대상을 다시 정상 풀에 포함시켜 트래픽 분배를 재개한다. 이는 내결함성을 높이고 애플리케이션의 전반적인 안정성과 신뢰성을 크게 향상시킨다.
3.4. SSL/TLS 종료
3.4. SSL/TLS 종료
Elastic Load Balancing의 SSL/TLS 종료 기능은 로드 밸런서 자체에서 암호화된 HTTPS 연결을 수신하고, 이를 복호화하여 백엔드 대상으로 전달하는 역할을 한다. 이는 애플리케이션 서버의 부하를 크게 줄여주는 핵심 기능이다. 서버들은 복잡한 SSL/TLS 암호화 해제 작업을 수행할 필요 없이 평문 HTTP 요청만 처리하면 되므로, 컴퓨팅 리소스를 비즈니스 로직 실행에 집중할 수 있다.
이 기능을 사용하려면 사용자는 AWS Certificate Manager를 통해 관리형 인증서를 로드 밸런서에 쉽게 배포하거나, 직접 획득한 SSL 인증서를 업로드하여 구성할 수 있다. 로드 밸런서는 지정된 도메인에 대한 인증서를 바인딩하고, 443 포트의 리스너를 통해 암호화된 트래픽을 수신한다. 이후 로드 밸런서는 트래픽을 복호화하고, 구성된 라우팅 규칙에 따라 적절한 대상 그룹으로 평문 요청을 전달한다.
SSL/TLS 종료는 보안 관리의 중앙화를 가능하게 한다. 모든 인증서의 갱신 및 관리 작업을 로드 밸런서 수준에서 일괄 처리할 수 있어, 여러 대의 백엔드 서버에 개별적으로 인증서를 설치하고 관리하는 번거로움과 잠재적 오류를 방지한다. 또한 AWS WAF와 같은 웹 애플리케이션 방화벽과 쉽게 연동되어, 복호화된 트래픽에 대한 심층적인 보안 검사를 수행하는 데 유리하다.
Elastic Load Balancing은 최신 보안 프로토콜을 지원하며, 보안 정책을 통해 사용할 SSL/TLS 버전과 암호화 제품군을 제어할 수 있다. 이를 통해 오래되고 안전하지 않은 프로토콜의 사용을 차단하고, 강력한 암호화만을 허용하는 등 규정 준수 요구사항을 충족시키는 데 기여한다.
3.5. 리스너 및 대상 그룹
3.5. 리스너 및 대상 그룹
Elastic Load Balancing의 구성 요소 중 핵심은 리스너와 대상 그룹이다. 리스너는 클라이언트의 연결 요청을 확인하는 구성 요소로, 특정 프로토콜과 포트를 사용하여 연결을 수신한다. 예를 들어, HTTP 트래픽을 위한 80번 포트나 HTTPS 트래픽을 위한 443번 포트에 리스너를 구성할 수 있다. 리스너는 정의된 규칙에 따라 수신된 트래픽을 적절한 대상 그룹으로 전달하는 역할을 한다.
대상 그룹은 로드 밸런서가 트래픽을 라우팅할 하나 이상의 등록된 대상으로 구성된다. 대상에는 Amazon EC2 인스턴스, IP 주소, 람다 함수, 컨테이너 등이 포함될 수 있으며, 유형에 따라 지원하는 대상이 다르다. 로드 밸런서는 대상 그룹에 속한 대상들의 상태를 주기적으로 확인하며, 정상으로 판단된 대상에게만 트래픽을 분산시킨다.
리스너 규칙은 트래픽을 라우팅하는 방식을 세부적으로 제어한다. 규칙은 호스트 기반 경로, URL 경로, HTTP 헤더 값 등 다양한 조건을 기준으로 설정할 수 있어, 단일 로드 밸런서 뒤에 있는 여러 애플리케이션으로 트래픽을 유연하게 분기하는 것이 가능하다. 이는 특히 마이크로서비스 아키텍처에서 각 서비스를 별도의 대상 그룹으로 관리할 때 유용하다.
리스너와 대상 그룹의 조합은 로드 밸런서의 유형에 따라 기능이 상이하다. Application Load Balancer는 가장 복잡한 규칙 기반 라우팅을 지원하는 반면, Network Load Balancer는 단순한 포트 기반 라우팅에 최적화되어 있다. 사용자는 애플리케이션의 요구사항에 맞춰 적절한 로드 밸런서 유형을 선택하고, 리스너와 대상 그룹을 구성하여 효율적인 트래픽 분산을 구현한다.
4. 작동 원리
4. 작동 원리
4.1. 트래픽 분산 알고리즘
4.1. 트래픽 분산 알고리즘
Elastic Load Balancing은 다양한 트래픽 분산 알고리즘을 제공하여 애플리케이션의 요구사항과 대상의 상태에 맞게 요청을 라우팅한다. 기본적으로는 라운드 로빈 알고리즘을 사용하지만, 대상 그룹의 유형과 구성에 따라 다른 알고리즘을 선택할 수 있다.
Application Load Balancer와 Network Load Balancer는 주로 라운드 로빈 및 최소 미해결 요청 알고리즘을 지원한다. 라운드 로빈은 대상 목록을 순차적으로 순회하며 연결을 분배하는 방식이다. 최소 미해결 요청 알고리즘은 현재 처리 중인 요청(미해결 요청) 수가 가장 적은 대상으로 새로운 연결을 라우팅하여 부하를 더욱 균등하게 분산시킨다. Gateway Load Balancer는 3계층에서 동작하며, GENEVE 프로토콜을 사용한 트래픽 분산에 특화되어 있다.
트래픽 분산의 결정은 상태 확인 결과와 밀접하게 연동된다. Elastic Load Balancing은 정기적으로 각 대상에 대한 상태 확인을 수행하며, 상태 확인에 실패한 대상으로는 새로운 트래픽을 라우팅하지 않는다. 이를 통해 사용자 요청은 항상 정상적인 대상으로만 전달되어 애플리케이션의 전반적인 가용성과 내결함성을 높인다. 이러한 알고리즘과 상태 관리 메커니즘은 AWS Auto Scaling과 같은 서비스와 결합되어 탄력적인 인프라 구축의 핵심이 된다.
4.2. 요청 라우팅 과정
4.2. 요청 라우팅 과정
Elastic Load Balancing의 요청 라우팅 과정은 사용자가 보낸 요청이 최종적으로 애플리케이션을 실행하는 백엔드 서버에 도달하기까지의 경로를 설명한다. 이 과정은 크게 인터넷에서 로드 밸런서로의 진입, 로드 밸런서 내부의 결정, 그리고 로드 밸런서에서 대상 그룹으로의 전달이라는 세 단계로 나눌 수 있다.
먼저, 사용자의 요청은 DNS를 통해 Elastic Load Balancing에 할당된 도메인 이름(CNAME 레코드)으로 라우팅된다. 이 DNS 이름은 로드 밸런서의 정적 IP 주소나, Network Load Balancer의 경우 탄력적 IP 주소로 확인된다. 사용자의 요청은 이 공개적인 엔드포인트인 로드 밸런서에 도착하게 되며, 이때 로드 밸런서는 사전에 구성된 리스너를 확인한다. 리스너는 특정 포트와 프로토콜(예: HTTP, HTTPS, TCP)로 들어오는 연결을 감시하는 구성 요소이다.
리스너가 요청을 수신하면, 미리 정의된 라우팅 규칙을 평가한다. 특히 Application Load Balancer는 HTTP 헤더, 경로, 호스트 이름, 쿼리 문자열 등을 기반으로 세밀한 라우팅 결정을 내릴 수 있다. 예를 들어, '/api' 경로로 들어오는 요청은 하나의 대상 그룹으로, '/img' 경로의 요청은 다른 대상 그룹으로 보낼 수 있다. Network Load Balancer나 Classic Load Balancer는 주로 TCP/IP 레벨의 정보를 기반으로 라우팅한다.
마지막으로, 라우팅 규칙에 따라 요청이 특정 대상 그룹으로 지정되면, 로드 밸런서는 해당 그룹 내에서 상태 확인을 통과한 건강한 대상(예: Amazon EC2 인스턴스, IP 주소, 람다 함수) 하나를 선택한다. 선택은 구성된 트래픽 분산 알고리즘(예: 라운드 로빈, 최소 미처리 요청)에 따라 이루어진다. 선택된 대상의 프라이빗 IP 주소로 요청이 전달되며, 이 과정에서 SSL/TLS 종료가 필요하다면 로드 밸런서 단에서 암호화를 해제한 후 평문으로 전송할 수도 있다. 이를 통해 백엔드 서버의 부하를 줄이고 효율성을 높인다.
5. 사용 사례
5. 사용 사례
5.1. 웹 애플리케이션 서비스
5.1. 웹 애플리케이션 서비스
Elastic Load Balancing은 웹 애플리케이션 서비스를 구축하고 운영하는 데 필수적인 인프라 구성 요소이다. 이 서비스는 사용자 요청을 여러 백엔드 서버에 분산시켜 단일 서버에 과부하가 걸리는 것을 방지하고, 애플리케이션의 응답 속도와 처리량을 향상시킨다. 특히 EC2 인스턴스, 컨테이너, 람다 함수 등 다양한 컴퓨팅 리소스를 대상으로 트래픽을 라우팅할 수 있어, 전통적인 모놀리식 아키텍처부터 현대적인 애플리케이션까지 폭넓게 지원한다.
주요 사용 사례로는 인터넷을 통해 접근하는 전자상거래 사이트, 콘텐츠 관리 시스템, 미디어 스트리밍 플랫폼 등이 있다. Application Load Balancer는 HTTP와 HTTPS 트래픽을 이해하여, 요청의 경로나 호스트 헤더를 기반으로 특정 마이크로서비스나 서버 그룹으로 라우팅하는 고급 라우팅 기능을 제공한다. 이를 통해 하나의 로드 밸런서로 여러 애플리케이션을 효율적으로 운영할 수 있다.
서비스의 안정성을 위해 Elastic Load Balancing은 지속적으로 대상의 상태를 확인한다. 상태 확인에 실패한 비정상 대상으로는 트래픽을 보내지 않아, 사용자는 정상적으로 동작하는 서버로만 연결되도록 보장받는다. 또한, SSL/TLS 종료 기능을 로드 밸런서 단에서 처리함으로써 백엔드 서버의 암호화 복호화 부하를 줄이고, AWS Certificate Manager를 통한 인증서 관리도 간소화할 수 있다.
이러한 특성 덕분에 개발팀은 애플리케이션 로직 개발에 집중하면서도, Elastic Load Balancing이 제공하는 고가용성, 확장성, 보안 기반을 통해 안정적인 웹 서비스를 제공할 수 있다. 이는 클라우드 네이티브 애플리케이션 설계의 핵심 원칙 중 하나이다.
5.2. 마이크로서비스 아키텍처
5.2. 마이크로서비스 아키텍처
Elastic Load Balancing은 마이크로서비스 아키텍처를 구성하는 핵심 인프라 요소로 널리 사용된다. 마이크로서비스 환경에서는 하나의 애플리케이션이 독립적으로 배포되고 확장 가능한 다수의 작은 서비스로 분해된다. 이때 각 서비스 인스턴스는 동적으로 생성되고 소멸하며, 그 위치(IP 주소와 포트)가 끊임없이 변한다. Elastic Load Balancing, 특히 Application Load Balancer는 이러한 동적 환경에 적합하게 설계되어, 서비스 디스커버리를 용이하게 하고 클라이언트 요청을 적절한 백엔드 서비스 인스턴스로 지능적으로 라우팅한다.
마이크로서비스 간의 통신을 관리하기 위해 ALB는 리스너 규칙과 대상 그룹을 활용한다. 개발자는 URL 경로(예: /api/users, /api/orders)나 호스트 이름 기반의 고급 라우팅 규칙을 설정하여, 단일 로드 밸런서 진입점으로 유입되는 트래픽을 서로 다른 마이크로서비스 백엔드로 분기시킬 수 있다. 이는 API 게이트웨이 패턴을 구현하는 데 효과적이며, 클라이언트는 복잡한 서비스 위치 정보를 알 필요 없이 통합된 엔드포인트를 통해 모든 서비스를 이용할 수 있다.
또한, Elastic Load Balancing의 상태 확인 기능은 비정상적인 서비스 인스턴스를 자동으로 회로에서 제거하여 시스템 전체의 내결함성을 높인다. AWS Auto Scaling과의 긴밀한 통합을 통해 서비스 부하에 따라 인스턴스 수를 탄력적으로 조정할 때, 로드 밸런서는 새로 생성된 인스턴스를 대상 그룹에 자동으로 등록한다. 이로 인해 마이크로서비스 기반 애플리케이션은 높은 가용성과 탄력적인 확장성을 유지하면서도 운영 복잡성을 크게 줄일 수 있다.
5.3. 하이브리드 및 다중 클라우드 환경
5.3. 하이브리드 및 다중 클라우드 환경
Elastic Load Balancing은 온프레미스 데이터 센터와 AWS 클라우드, 또는 여러 퍼블릭 클라우드 환경을 아우르는 하이브리드 클라우드 및 다중 클라우드 아키텍처에서 중요한 역할을 한다. 이러한 환경에서는 애플리케이션의 구성 요소가 서로 다른 인프라에 분산되어 배포되는 경우가 많다. ELB는 이러한 이질적인 환경에서도 일관된 방식으로 트래픽을 라우팅하고 부하를 분산시켜 애플리케이션의 통합된 엔드포인트를 제공할 수 있다.
구체적으로 Network Load Balancer는 온프레미스 서버나 다른 클라우드 공급자의 가상 머신과 같은 비-AWS 리소스를 대상으로 트래픽을 분산할 수 있다. 이는 NLB가 IP 주소를 기반으로 트래픽을 라우팅하기 때문이다. 사용자는 대상 그룹에 Amazon EC2 인스턴스와 함께 온프레미스 서버의 IP 주소를 등록함으로써, 단일 로드 밸런서 뒤에서 클라우드와 온프레미스 워크로드를 통합할 수 있다. 이는 점진적인 클라우드 마이그레이션이나 재해 복구 전략을 구현할 때 유용하다.
또한, Gateway Load Balancer는 가상 어플라이언스를 통한 트래픽 검사 및 보안 강화에 특화되어 있어 하이브리드 환경의 보안 아키텍처 구성에 적합하다. GWLB를 사용하면 방화벽, 침입 탐지 및 방지 시스템 같은 서드파티 보안 솔루션을 클라우드와 온프레미스 간에 흐르는 트래픽에 쉽게 적용할 수 있다. 이를 통해 기업은 중앙화된 보안 정책을 유지하면서도 인프라의 유연성을 확보할 수 있다.
이러한 기능들은 현대 기업이 직면한 복잡한 인프라 요구사항을 해결한다. 데이터 주권 문제로 인해 일부 워크로드는 온프레미스에 유지해야 할 수 있으며, 비용 최적화를 위해 여러 클라우드를 활용할 수도 있다. Elastic Load Balancing은 이러한 다중 환경을 하나의 논리적 애플리케이션으로 연결하는 글로벌 트래픽 관리의 핵심 구성 요소로서, 애플리케이션의 가용성과 확장성을 보장한다.
6. 보안 고려사항
6. 보안 고려사항
6.1. 보안 그룹 구성
6.1. 보안 그룹 구성
Elastic Load Balancing의 보안 구성에서 보안 그룹은 가장 기본적이면서도 핵심적인 방화벽 역할을 한다. 각 로드 밸런서와 그 뒤에 있는 대상 그룹의 인스턴스들은 별도의 보안 그룹으로 관리되어, 허용된 트래픽만 통과하도록 세밀하게 제어된다.
로드 밸런서의 보안 그룹은 클라이언트로부터의 인바운드 트래픽 규칙을 정의한다. 예를 들어, Application Load Balancer를 사용하는 웹 애플리케이션의 경우, 일반적으로 HTTP(80번)와 HTTPS(443번) 포트만 공개적으로 열어두고, 다른 모든 포트는 차단한다. 반면, 백엔드 Amazon EC2 인스턴스들이 속한 대상 그룹의 보안 그룹은 로드 밸런서의 보안 그룹으로부터의 트래픽만 허용하도록 구성한다. 이는 인스턴스가 인터넷에 직접 노출되는 것을 방지하는 중요한 보안 계층을 만든다.
이러한 구성은 네트워크 보안의 최소 권한 원칙을 구현한 것이다. 로드 밸런서는 공개 인터넷과의 접점이 되어 필터링을 수행하고, 백엔드 인스턴스는 내부 네트워크처럼 격리된 상태를 유지할 수 있다. 또한, AWS WAF를 Application Load Balancer와 연동하면 SQL 인젝션이나 크로스 사이트 스크립팅 같은 일반적인 웹 공격으로부터 애플리케이션을 추가로 보호할 수 있다.
보안 그룹은 상태 저장(stateful) 방식으로 동작하기 때문에, 허용된 인바운드 연결에 대한 응답 트래픽은 자동으로 허용된다. 이는 관리 편의성을 높인다. 올바른 보안 그룹 구성은 Elastic Load Balancing을 통한 애플리케이션 배포 시 필수 단계이며, 클라우드 보안 모범 사례의 기초를 이룬다.
6.2. 인증서 관리
6.2. 인증서 관리
Elastic Load Balancing의 인증서 관리는 SSL/TLS 암호화 통신을 안전하게 처리하기 위한 핵심 기능이다. 이는 주로 Application Load Balancer와 Network Load Balancer에서 SSL/TLS 종료를 수행할 때 사용되며, 클라이언트와 로드 밸런서 간의 통신을 암호화하는 데 필요한 디지털 인증서를 등록, 배포, 갱신 및 순환하는 과정을 포함한다.
사용자는 AWS Certificate Manager를 통해 퍼블릭 인증서를 무료로 발급받아 ELB에 쉽게 연결할 수 있다. ACM을 사용하면 인증서의 갱신 주기를 자동으로 관리할 수 있어, 만료로 인한 서비스 중단 위험을 줄인다. 또한 프라이빗 인증서가 필요한 내부 애플리케이션의 경우, AWS Private Certificate Authority를 통해 발급한 인증서를 ELB에 적용하여 하이브리드 클라우드 환경이나 VPC 내부의 보안 통신을 구축할 수 있다.
인증서 관리를 효과적으로 수행하기 위해 ELB는 리스너 설정에서 여러 인증서를 연결하는 기능을 제공한다. 이를 통해 하나의 로드 밸런서가 여러 도메인 이름을 지원하는 Server Name Indication 확장을 처리할 수 있어, 여러 웹사이트를 단일 인프라로 운영하는 데 유용하다. 또한 보안 정책을 구성하여 지원할 TLS 프로토콜 버전과 암호화 제품군을 제어할 수 있다.
관리 항목 | 설명 | 관련 AWS 서비스 |
|---|---|---|
인증서 프로비저닝 | 퍼블릭 또는 프라이빗 SSL/TLS 인증서를 발급 및 가져오기 | |
인증서 배포 | 발급된 인증서를 ELB 리스너에 연결 | Elastic Load Balancing 콘솔 또는 AWS CLI |
자동 갱신 | 퍼블릭 인증서의 만료 시 자동 갱신 설정 | |
보안 정책 관리 | 지원할 TLS 버전 및 암호 제품군 설정 | Elastic Load Balancing 보안 정책 |
이러한 인증서 관리 기능은 암호화 통신의 보안성을 유지하면서도 운영의 복잡성을 줄여, 개발자와 DevOps 팀이 애플리케이션 보안에 집중할 수 있도록 지원한다.
6.3. WAF 연동
6.3. WAF 연동
Elastic Load Balancing은 AWS WAF와의 연동을 통해 애플리케이션 계층의 보안을 강화할 수 있다. Application Load Balancer는 AWS WAF와 통합되어, ALB가 수신하는 HTTP 및 HTTPS 요청을 WAF에서 먼저 검사하도록 구성할 수 있다. 이를 통해 일반적인 웹 공격으로부터 백엔드 애플리케이션을 보호하는 추가적인 보안 계층을 제공한다.
AWS WAF 연동은 ALB의 리스너 설정에서 활성화할 수 있으며, 사용자는 WAF 웹 ACL을 생성하여 허용하거나 차단할 트래픽에 대한 사용자 정의 규칙을 관리한다. 이 규칙들은 SQL 삽입, 크로스 사이트 스크립팅, 지리적 위치 기반 차단 등 다양한 보안 요구 사항을 처리할 수 있다. WAF는 CloudWatch와 통합되어 실시간 모니터링과 경고 설정이 가능하다.
이러한 연동 구조는 보안 정책의 중앙 집중화와 운영 효율성을 높인다. 애플리케이션 코드나 백엔드 서버를 수정하지 않고도, 로드 밸런서 단계에서 들어오는 악성 트래픽을 선제적으로 차단할 수 있다. 결과적으로 EC2 인스턴스나 컨테이너와 같은 컴퓨팅 리소스는 정상적인 트래픽만 처리하게 되어 부하를 줄이고 보안 위협에 대한 노출을 최소화한다.
7. 모니터링 및 로깅
7. 모니터링 및 로깅
7.1. CloudWatch 지표
7.1. CloudWatch 지표
Elastic Load Balancing(ELB)는 Amazon CloudWatch와 긴밀하게 통합되어 로드 밸런서의 성능과 상태를 실시간으로 모니터링할 수 있는 다양한 지표를 제공한다. 이러한 지표는 로드 밸런서의 동작을 가시화하고, 성능 문제를 진단하며, 자동 확장 정책을 트리거하는 데 활용된다. 사용자는 AWS Management Console, AWS CLI 또는 CloudWatch API를 통해 지표를 확인하고 분석할 수 있다.
주요 지표로는 처리량을 나타내는 RequestCount와 ProcessedBytes, 지연 시간을 측정하는 Latency, 대상의 상태를 반영하는 HealthyHostCount와 UnHealthyHostCount 등이 있다. 또한, HTTP 상태 코드별 요청 수(HTTPCode_ELB_4XX_Count, HTTPCode_ELB_5XX_Count)와 대상에서 발생한 오류(HTTPCode_Target_4XX_Count, HTTPCode_Target_5XX_Count)를 구분하여 제공함으로써, 문제가 ELB 자체에 있는지 아니면 백엔드 Amazon EC2 인스턴스나 컨테이너와 같은 대상에 있는지 식별하는 데 도움을 준다.
이러한 지표들은 사용자가 정의한 임계값에 기반한 CloudWatch 알람을 설정하는 데 사용될 수 있다. 예를 들어, 평균 지연 시간이 일정 수준을 초과하거나 정상 대상 호스트 수가 최소치 이하로 떨어지면 알람이 발생하도록 구성하여 운영 팀에 자동으로 통보하거나, AWS Auto Scaling 그룹의 인스턴스 수를 조정하는 작업을 트리거할 수 있다. 이를 통해 애플리케이션의 가용성과 성능을 사전에 보장하는 프로액티브 모니터링이 가능해진다.
7.2. 액세스 로그
7.2. 액세스 로그
Elastic Load Balancing의 액세스 로그 기능은 로드 밸런서로 전달되는 모든 요청에 대한 상세한 기록을 제공한다. 이 로그는 Amazon S3 버킷에 저장되며, 각 로그 항목에는 요청을 받은 시간, 클라이언트의 IP 주소, 요청 처리에 소요된 지연 시간, 요청 및 응답 바이트와 같은 정보가 포함된다. 이를 통해 애플리케이션의 트래픽 패턴을 분석하고, 문제를 해결하며, 보안 감사를 수행하는 데 활용할 수 있다.
액세스 로그는 Application Load Balancer와 Network Load Balancer에서 활성화할 수 있으며, 로깅을 활성화한 시점부터 5분 간격으로 로그 파일이 생성되어 지정된 S3 버킷에 전송된다. 로그 형식은 일반적인 웹 서버 액세스 로그와 유사하지만, AWS의 로드 밸런서 특유의 필드들을 포함하고 있다. 관리자는 이를 통해 특정 클라이언트로부터의 비정상적인 요청 빈도나 실패한 요청의 패턴을 식별할 수 있다.
이 로그 데이터는 Amazon Athena를 사용해 직접 쿼리하거나, Amazon CloudWatch Logs Insights로 전송하여 분석할 수 있다. 또한, 보안 및 규정 준수 요구사항에 따라 로그를 장기간 보관하거나, AWS Glue 및 Amazon QuickSight와 같은 서비스를 연동하여 트래픽에 대한 시각화된 대시보드를 구축하는 데도 사용된다. 액세스 로그의 관리는 IAM 정책을 통해 세부적인 권한 제어가 가능하다.
8. 관련 AWS 서비스
8. 관련 AWS 서비스
8.1. Amazon EC2
8.1. Amazon EC2
Amazon EC2(Amazon Elastic Compute Cloud)는 AWS의 핵심 클라우드 컴퓨팅 서비스로, 사용자가 가상 서버인 인스턴스를 프로비저닝하고 운영할 수 있게 해준다. Elastic Load Balancing과 가장 밀접하게 연동되는 서비스 중 하나로, ELB가 분산하는 트래픽의 주요 대상이 된다. 사용자는 다양한 사양의 인스턴스 유형을 선택하여 운영 체제와 애플리케이션을 설치하고, ELB는 이렇게 생성된 다수의 EC2 인스턴스 앞단에 배치되어 들어오는 트래픽을 고르게 분배한다.
ELB의 대상 그룹에 EC2 인스턴스를 등록하면, 로드 밸런서는 정기적인 상태 확인을 통해 각 인스턴스의 건강 상태를 모니터링한다. 정상으로 판단된 인스턴스로만 트래픽을 라우팅하여 애플리케이션의 전체 가용성을 높인다. 또한 AWS Auto Scaling과 결합하면, 트래픽 부하에 따라 EC2 인스턴스 수를 자동으로 늘리거나 줄일 수 있어 탄력적인 인프라 구축이 가능하다.
이러한 조합은 웹 애플리케이션 서비스나 마이크로서비스 아키텍처를 구성할 때 표준 아키텍처로 자리 잡았다. ELB는 단일 접점 역할을 하며, 뒤따르는 EC2 인스턴스 풀에 작업을 분산시킴으로써 단일 장애점을 제거하고 애플리케이션의 확장성과 내결함성을 동시에 확보한다.
8.2. AWS Auto Scaling
8.2. AWS Auto Scaling
AWS Auto Scaling은 Amazon Web Services 환경에서 애플리케이션의 성능을 최적화하고 비용을 절감하기 위해 컴퓨팅 리소스를 자동으로 조정하는 관리형 서비스이다. 이 서비스는 사전에 정의한 조건에 따라 애플리케이션을 실행하는 Amazon EC2 인스턴스의 수를 자동으로 늘리거나 줄여, 수요 변동에 탄력적으로 대응할 수 있도록 한다. 이를 통해 트래픽이 급증할 때는 성능을 유지하고, 트래픽이 적을 때는 불필요한 리소스 비용을 줄일 수 있다.
AWS Auto Scaling은 Elastic Load Balancing과 긴밀하게 통합되어 작동한다. Auto Scaling 그룹에 새로운 EC2 인스턴스가 추가되면, Elastic Load Balancer는 자동으로 이 인스턴스를 로드 밸런싱 대상으로 등록하여 트래픽 분산을 시작한다. 반대로 부하가 줄어들어 인스턴스가 종료되면 로드 밸런서는 해당 인스턴스를 대상 그룹에서 제거한다. 이러한 연동은 웹 애플리케이션이나 마이크로서비스 아키텍처와 같은 확장 가능한 시스템의 핵심 인프라를 구성한다.
서비스의 주요 설정 요소로는 시작 템플릿, Auto Scaling 그룹, 확장 정책이 있다. 사용자는 CloudWatch 지표(예: CPU 사용률, 네트워크 입출력)를 기반으로 한 목표 추적 확장 정책을 구성하거나, 예측 확장을 통해 미래의 트래픽 패턴을 예측하여 리소스를 사전에 조정할 수 있다. 또한 Amazon DynamoDB 테이블이나 Amazon Aurora 데이터베이스와 같은 다른 AWS 서비스의 용량도 함께 관리할 수 있어, 애플리케이션 스택 전반의 확장성을 통합적으로 관리하는 데 유용하다.
8.3. Amazon Route 53
8.3. Amazon Route 53
Amazon Route 53은 Amazon Web Services가 제공하는 확장 가능한 도메인 네임 시스템 서비스이다. 이 서비스는 도메인 이름을 IP 주소로 변환하는 DNS 쿼리에 응답하는 핵심 기능을 수행하며, 인터넷 사용자가 웹사이트나 애플리케이션에 접속할 수 있도록 돕는다. Elastic Load Balancing과의 연동 측면에서 Route 53은 중요한 역할을 담당하는데, 사용자의 도메인에 대한 트래픽을 특정 가용 영역이나 리전에 위치한 로드 밸런서의 엔드포인트로 지능적으로 라우팅할 수 있다.
Route 53의 주요 기능 중 하나는 다양한 라우팅 정책을 제공한다는 점이다. 이는 단순한 라운드 로빈 방식의 부하 분산을 넘어서, 지리적 위치, 대상의 상태, 가중치에 기반한 트래픽 라우팅을 가능하게 한다. 예를 들어, 지리 근접 라우팅 정책을 사용하면 사용자의 위치에 가장 가까운 데이터 센터의 ELB로 트래픽을 보낼 수 있어 지연 시간을 최소화할 수 있다. 또한, 상태 확인 기반 라우팅을 구성하면 특정 엔드포인트의 상태가 비정상으로 판단될 때 자동으로 트래픽을 정상적인 다른 엔드포인트로 전환하여 애플리케이션의 가용성을 높인다.
이 서비스는 고가용성과 내결함성을 위해 설계되었다. AWS의 전 세계에 분산된 DNS 서버 네트워크를 활용하여 쿼리에 빠르고 안정적으로 응답하며, 서비스 수준 계약을 통해 높은 안정성을 보장한다. Route 53을 통해 관리자는 도메인 등록, DNS 레코드 관리, 트래픽 라우팅 정책 구성까지 하나의 서비스 내에서 통합적으로 처리할 수 있어, 클라우드 네이티브 애플리케이션의 글로벌 서비스 구축과 운영을 효율적으로 지원한다.
8.4. AWS Certificate Manager
8.4. AWS Certificate Manager
AWS Certificate Manager는 Amazon Web Services가 제공하는 서비스로, 공개 키 인증서의 프로비저닝, 관리 및 배포를 간소화한다. 특히 Elastic Load Balancing과 같은 AWS 서비스와 통합되어 SSL/TLS 암호화를 사용하는 웹 사이트 및 애플리케이션을 보호하는 데 널리 사용된다. 이 서비스를 통해 사용자는 인증 기관으로부터 SSL/TLS 인증서를 쉽게 요청하고, 자동으로 갱신되도록 관리하며, Amazon CloudFront, Elastic Load Balancing, Amazon API Gateway 등의 AWS 리소스에 배포할 수 있다.
주요 기능으로는 공개 인증서의 무료 제공, 자동 갱신, 그리고 중앙 집중식 관리가 있다. 사용자는 AWS 관리 콘솔, AWS CLI 또는 AWS SDK를 통해 인증서를 생성하고, 도메인 이름의 유효성을 검증한 후, 지원되는 AWS 서비스에 연결하기만 하면 된다. 인증서의 만료를 걱정할 필요 없이 ACM이 자동으로 갱신 프로세스를 처리한다. 또한 프라이빗 인증서의 수명 주기 관리를 위한 기능도 제공한다.
ACM은 Elastic Load Balancing과의 긴밀한 연동을 통해 SSL/TLS 종료를 효율적으로 구현하는 데 핵심 역할을 한다. 사용자는 ACM에서 관리하는 인증서를 Application Load Balancer나 Network Load Balancer의 리스너에 쉽게 연결할 수 있다. 이를 통해 로드 밸런서가 클라이언트의 암호화된 연결을 수신하고 복호화한 후, 백엔드 Amazon EC2 인스턴스나 대상 그룹으로 평문 트래픽을 전달하는 구성이 가능해진다. 이는 백엔드 서버의 처리 부담을 줄이고 인증서 관리의 복잡성을 제거한다.
이 서비스는 높은 수준의 보안과 규정 준수를 유지하며, 생성된 인증서는 AWS의 안전한 인프라 내에 저장된다. AWS Identity and Access Management를 통한 세밀한 접근 제어가 가능하며, AWS CloudTrail을 통한 모든 API 호출에 대한 로깅도 지원된다. 따라서 DevOps 및 클라우드 아키텍트는 ACM을 활용하여 인증서 관련 운영 오버헤드를 크게 줄이고, 안전한 하이퍼텍스트 전송 보안 프로토콜 통신을 보다 쉽게 구현할 수 있다.
9. 여담
9. 여담
Elastic Load Balancing은 Amazon Web Services가 2009년에 처음 출시한 이후, 클라우드 컴퓨팅의 핵심 인프라 서비스로 자리 잡았다. 초기에는 Classic Load Balancer만 제공되었으나, 애플리케이션 아키텍처의 발전과 더 복잡한 네트워킹 요구사항에 따라 Application Load Balancer, Network Load Balancer, Gateway Load Balancer 등 다양한 유형의 로드 밸런서가 추가되었다. 이는 마이크로서비스와 컨테이너 기반의 현대적 애플리케이션 배포 패턴을 효과적으로 지원하기 위한 진화의 결과이다.
이 서비스는 단순한 트래픽 분배를 넘어, 고가용성과 내결함성을 보장하는 AWS 글로벌 인프라의 일부로 통합되어 운영된다. 사용자는 서버를 직접 프로비저닝하거나 관리할 필요 없이, 몇 번의 클릭만으로 전 세계에 분산된 다중 가용 영역에 걸친 로드 밸런싱 구성을 손쉽게 설정할 수 있다. 이러한 완전 관리형 서비스의 특성은 DevOps 문화의 확산과 함께 인프라 관리의 복잡성을 크게 줄이는 데 기여했다.
Elastic Load Balancing의 등장과 발전은 퍼블릭 클라우드가 기업의 IT 운영 방식을 근본적으로 변화시킨 대표적인 사례 중 하나로 꼽힌다. 과거에는 전용 하드웨어 장비나 복잡한 소프트웨어 설정이 필요했던 로드 밸런싱 기능이, 이제는 필요에 따라 탄력적으로 확장되고 종량제로 이용 가능한 유틸리티 서비스가 되었다. 이는 하이브리드 클라우드 및 다중 클라우드 환경에서의 애플리케이션 배포 전략에도 중요한 기반을 제공하고 있다.
