VPC 내에서 Amazon ECS를 AWS 서비스에 연결하는 모범 사례 - Amazon Elastic Container Service

VPC 내에서 Amazon ECS를 AWS 서비스에 연결하는 모범 사례

Amazon ECS가 올바르게 동작하려면 각 호스트에서 실행되는 Amazon ECS 컨테이너 에이전트가 Amazon ECS 컨트롤 플레인과 통신해야 합니다. Amazon ECR에 컨테이너 이미지를 저장하는 경우 Amazon EC2 호스트는 Amazon ECR 서비스 엔드포인트 및 이미지 레이어가 저장된 Amazon S3와 통신해야 합니다. DynamoDB에 저장된 데이터를 유지하는 등 컨테이너화된 애플리케이션에 다른 AWS 서비스를 사용하는 경우 이러한 서비스에도 필요한 네트워킹 지원이 있는지 다시 한 번 확인하세요.

NAT 게이트웨이

Amazon ECS 태스크가 다른 AWS 서비스에 액세스할 수 있도록 보장하는 가장 쉬운 방법은 NAT 게이트웨이를 사용하는 것입니다. 이 방법에 대한 자세한 내용은 프라이빗 서브넷 및 NAT 게이트웨이 섹션을 참조하세요.

NAT 게이트웨이를 사용하는 네트워크의 아키텍처를 보여주는 다이어그램.

이 접근 방식을 사용하면 다음과 같은 단점이 있습니다.

  • NAT 게이트웨이가 통신할 수 있는 대상을 제한할 수 없습니다. 또한 백엔드 계층이 VPC의 모든 아웃바운드 통신을 중단하지 않으면서 통신할 수 있는 대상을 제한할 수 없습니다.

  • NAT 게이트웨이는 통과하는 데이터 GB당 요금을 부과합니다. 다음 작업에 NAT 게이트웨이를 사용하는 경우 대역폭 GB당 요금이 부과됩니다.

    • Amazon S3에서 대용량 파일 다운로드

    • DynamoDB에서 대량의 데이터베이스 쿼리 수행

    • Amazon ECR에서 이미지 가져오기

    또한 NAT 게이트웨이는 5Gbps의 대역폭을 지원하며 최대 45Gbps까지 자동 확장합니다. 단일 NAT 게이트웨이를 통해 라우팅하는 경우 매우 높은 대역폭 연결이 필요한 애플리케이션에 네트워킹 제약 조건이 발생할 수 있습니다. 해결 방법은 워크로드를 여러 서브넷으로 나누고 각 서브넷에 고유한 NAT 게이트웨이를 제공하는 것입니다.

AWS PrivateLink는 트래픽을 퍼블릭 인터넷에 노출시키지 않고 VPC, AWS 서비스, 온프레미스 네트워크 간에서 프라이빗 연결을 제공합니다.

VPC 엔드포인트에서는 VPC와 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스 간에 프라이빗 연결을 사용할 수 있습니다. VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다. VPC 엔드포인트에는 인터넷 게이트웨이, 가상 프라이빗 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결이 필요하지 않습니다. VPC의 Amazon EC2 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다.

다음 다이어그램에서는 인터넷 게이트웨이 대신 VPC 엔드포인트를 사용할 때 AWS 서비스와의 통신이 작동하는 방식을 보여줍니다. AWS PrivateLink는 서브넷 내부에 탄력적 네트워크 인터페이스(ENI)를 프로비저닝하고, VPC 라우팅 규칙을 사용하여 ENI를 통해 서비스 호스트 이름에 대한 모든 통신을 대상 AWS 서비스로 직접 전송합니다. 이 트래픽은 더 이상 NAT 게이트웨이 또는 인터넷 게이트웨이를 사용할 필요가 없습니다.

AWS PrivateLink를 사용하는 네트워크의 아키텍처를 보여주는 다이어그램

다음은 Amazon ECS 서비스와 함께 사용되는 몇 가지 일반적인 VPC 엔드포인트의 예입니다.

다른 많은 AWS 서비스가 VPC 엔드포인트를 지원합니다. 사용량이 매우 많은 AWS 서비스가 있는 경우 해당 서비스와 관련된 설명서와 해당 트래픽에 대한 VPC 엔드포인트를 생성하는 방법을 살펴봐야 합니다.