인터넷에서 인바운드 연결 수신 - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인터넷에서 인바운드 연결 수신

공용 서비스를 실행하는 경우 인터넷으로부터의 인바운드 트래픽을 수락해야 합니다. 예를 들어 공용 웹 사이트는 브라우저의 인바운드 HTTP 요청을 수락해야 합니다. 이 경우 인터넷상의 다른 호스트도 애플리케이션 호스트에 대한 인바운드 연결을 시작해야 합니다.

이 문제에 대한 한 가지 방법은 퍼블릭 IP 주소를 사용하여 퍼블릭 서브넷에있는 호스트에서 컨테이너를 시작하는 것입니다. 그러나 대규모 응용 프로그램에서는 이 옵션을 권장하지 않습니다. 이를 위해 인터넷과 응용 프로그램 사이에 확장 가능한 입력 계층을 사용하는 것이 더 좋습니다. 이 방법을 사용하려면AWS이 섹션에 나열된 서비스를 입력으로 사용할 수 있습니다.

Application Load Balancer

Application Load Balancer 애플리케이션 계층에서 작동합니다. 이는 개방형 시스템 간 상호 연결 (OSI) 모델의 일곱 번째 계층입니다. 따라서 Application Load Balancer 공용 HTTP 서비스에 적합합니다. 웹 사이트 또는 HTTP REST API가 있는 경우 Application Load Balancer 이 워크로드에 적합한 로드 밸런서입니다. 자세한 내용은 단원을 참조하십시오.Application Load Balancer 란 무엇입니까?Application Load Balancer 사용 설명서.


                    Application Load Balancer 를 사용하는 네트워크 아키텍처를 보여 주는 다이어그램입니다.

이 아키텍처를 사용하면 퍼블릭 서브넷에 Application Load Balancer 서를 생성하여 퍼블릭 IP 주소를 가지며 인터넷에서 인바운드 연결을 수신할 수 있습니다. Application Load Balancer 인바운드 연결 또는 특히 HTTP 요청을 수신하면 프라이빗 IP 주소를 사용하여 애플리케이션에 대한 연결을 엽니다. 그런 다음 내부 연결을 통해 요청을 전달합니다.

Application Load Balancer 의 장점은 다음과 같습니다.

  • SSL/TLS 종료 — Application Load Balancer 클라이언트와의 통신을 위해 보안 HTTPS 통신 및 인증서를 유지할 수 있습니다. 필요에 따라 로드 밸런서 수준에서 SSL 연결을 종료할 수 있으므로 응용 프로그램에서 인증서를 처리할 필요가 없습니다.

  • 고급 라우팅 — Application Load Balancer 여러 DNS 호스트 이름을 가질 수 있습니다. 또한 호스트 이름이나 요청 경로와 같은 메트릭을 기반으로 들어오는 HTTP 요청을 다른 대상으로 전송하는 고급 라우팅 기능이 있습니다. 즉, 단일 Application Load Balancer 여러 내부 서비스에 대한 입력으로 사용하거나 REST API의 다른 경로에 있는 마이크로서비스를 사용할 수 있습니다.

  • gRPC 지원 및 웹 소켓 — Application Load Balancer 단순한 HTTP 이상의 기능을 처리할 수 있습니다. 또한 HTTP/2 지원을 통해 GRPC 및 websocket 기반 서비스를로드 밸런싱할 수 있습니다.

  • 보안 — Application Load Balancer 사용하면 악성 트래픽으로부터 애플리케이션을 보호할 수 있습니다. 여기에는 HTTP 동기화 완화 기능과 같은 기능이 포함되어 있으며 AWS 웹 애플리케이션 방화벽 (AWS WAF).AWS WAF는 SQL 삽입 또는 교차 사이트 스크립팅과 같은 공격 패턴을 포함할 수 있는 악성 트래픽을 추가로 필터링할 수 있습니다.

Network Load Balancer

Network Load Balancer는 오픈 시스템 상호 연결(OSI) 모델의 네 번째 계층에서 작동합니다. 비 HTTP 프로토콜 또는 종단 간 암호화가 필요하지만 Application Load Balancer 동일한 HTTP 관련 기능을 갖지 않는 시나리오에 적합합니다. 따라서 Network Load Balancer HTTP를 사용하지 않는 응용 프로그램에 가장 적합합니다. 자세한 내용은 단원을 참조하십시오.Network Load Balancer 란 무엇입니까?Network Load Balancer 사용 설명서.


                    네트워크 Network Load Balancer 서를 사용하는 네트워크 아키텍처를 보여 주는 다이어그램입니다.

Network Load Balancer 가 입력으로 사용되는 경우 Application Load Balancer 와 유사하게 작동합니다. 이는 퍼블릭 서브넷에서 생성되고 인터넷에서 액세스할 수 있는 퍼블릭 IP 주소를 갖고 있기 때문입니다. 그런 다음 Network Load Balancer 는 컨테이너를 실행하는 호스트의 프라이빗 IP 주소에 대한 연결을 열고 공개 측에서 개인 측으로 패킷을 보냅니다.

Network Load Balancer 낮은 수준의 네트워킹 스택에서 작동하므로 Application Load Balancer 동일한 기능 집합이 없습니다. 그러나 다음과 같은 중요한 기능이 있습니다.

  • 종단 간 암호화 — Network Load Balancer OSI 모델의 네 번째 계층에서 작동하므로 패킷의 내용을 읽지 않습니다. 따라서 종단 간 암호화가 필요한 로드 밸런싱 통신에 적합합니다.

  • TLS 암호화 — 종단 간 암호화 외에도 Network Load Balancer TLS 연결을 종료할 수도 있습니다. 이렇게 하면 백엔드 응용 프로그램에서 자체 TLS를 구현할 필요가 없습니다.

  • UDP 지원 - Network Load Balancer OSI 모델의 네 번째 계층에서 작동하므로 TCP 이외의 비 HTTP 워크로드 및 프로토콜에 적합합니다.

Amazon API Gateway HTTP API

Amazon API Gateway HTTP API는 요청 볼륨이 급격히 증가하거나 요청 볼륨이 적은 HTTP 애플리케이션에 적합한 수신이 적은 서버입니다. 자세한 내용은 단원을 참조하십시오.Amazon API Gateway란 무엇입니까?API Gateway 개발자 안내서.


                    API Gateway 사용하여 네트워크의 아키텍처를 보여주는 다이어그램입니다.

애플리케이션 로드 밸런서와 네트워크 로드 밸런서의 가격 책정 모델에는 로드 밸런서를 항상 수신 연결을 수락할 수 있도록 하기 위한 시간당 가격이 포함되어 있습니다. 반대로 API Gateway 각 요청에 대해 별도로 요금을 부과합니다. 이로 인해 요청이 들어오지 않으면 요금이 부과되지 않습니다. 트래픽 로드가 많은 경우 Application Load Balancer 또는 Network Load Balancer API Gateway 보다 저렴한 요청당 가격으로 더 많은 양의 요청을 처리할 수 있습니다. 그러나 전체 요청 수가 적거나 트래픽이 짧은 기간인 경우 API Gateway 를 사용하는 누적 가격은 사용률이 낮은 로드 밸런서를 유지하기 위해 시간당 요금을 지불하는 것보다 비용 효율적이어야 합니다.

API Gateway VPC 링크를 사용하여AWS관리형 서비스를 사용하여 프라이빗 IP 주소를 사용하여 VPC 프라이빗 서브넷 내의 호스트에 연결할 수 있습니다. 이를 통해 이러한 개인 IP 주소를 감지할 수 있습니다.AWS Cloud MapAmazon ECS 서비스 검색으로 관리되는 서비스 검색 레코드입니다.

API Gateway 가 지원하는 기능은 다음과 같습니다.

  • SSL/TLS 종료

  • 다른 백엔드 마이크로 서비스로 서로 다른 HTTP 경로 라우팅

앞의 기능 외에도 API Gateway 는 무단 사용으로부터 API를 보호하는 데 사용할 수 있는 사용자 지정 Lambda 권한 부여자를 사용할 수도 있습니다. 자세한 내용은 단원을 참조하십시오.필드 참고: Amazon ECS와 아마존 API 게이트웨이를 사용하는 서버를 사용하지 않는 컨테이너 기반 API.