외부 인스턴스(Amazon ECS Anywhere) - Amazon Elastic Container Service

외부 인스턴스(Amazon ECS Anywhere)

Amazon ECS Anywhere는 외부 인스턴스(예: 온프레미스 서버 또는 가상 머신(VM))을 Amazon ECS 클러스터에 등록하도록 지원합니다. 외부 인스턴스는 아웃바운드 트래픽 또는 프로세스 데이터를 생성하는 애플리케이션 실행에 최적화되어 있습니다. 애플리케이션에 인바운드 트래픽이 필요한 경우 Elastic Load Balancing 지원이 없기 때문에 이러한 워크로드를 실행하는 데 효율성이 떨어집니다. Amazon ECS는 외부 인스턴스에서 서비스를 생성하거나 태스크를 실행하는 데 사용할 수 있는 새로운 EXTERNAL 시작 유형을 추가했습니다.

다음은 Amazon ECS Anywhere에 대한 상위 수준의 시스템 아키텍처 개요를 제공합니다.


            Amazon ECS Anywhere의 아키텍처를 보여주는 다이어그램.

Considerations

외부 인스턴스를 사용하기 전에 다음 사항을 고려해야 합니다.

  • 현재 중국(베이징) 및 중국(닝샤) 리전에서는 Amazon ECS Anywhere에 외부 인스턴스를 등록할 수 없습니다.

  • 한 번에 하나의 클러스터에 외부 인스턴스를 등록할 수 있습니다. 다른 클러스터에 외부 인스턴스를 등록하는 방법에 대한 지침은 외부 인스턴스 등록 취소 섹션을 참조하세요.

  • 외부 인스턴스에는 AWS API와 통신할 수 있도록 하는 IAM 역할이 필요합니다. 자세한 내용은 외부 인스턴스에 대한 필수 IAM 권한 섹션을 참조하세요.

  • 외부 인스턴스에는 사전 구성된 인스턴스 자격 증명 체인이 로컬로 정의되어 있지 않아야 합니다. 정의된 경우 등록 스크립트에 방해가 될 수 있습니다.

  • 컨테이너 로그를 CloudWatch Logs로 보내려면 태스크 정의에 태스크 실행 IAM 역할을 생성하고 지정해야 합니다. 자세한 내용은 조건부 IAM 권한 섹션을 참조하세요.

  • 외부 인스턴스가 클러스터에 등록되면 ecs.capability.external 속성은 인스턴스와 연결되어 있습니다. 이 속성은 인스턴스를 외부 인스턴스로 식별합니다.

  • 외부 인스턴스에 사용자 지정 속성을 추가하여 태스크 배치 제약 조건으로 사용할 수 있습니다. 자세한 내용은 사용자 지정 속성 섹션을 참조하세요.

  • 외부 인스턴스에 리소스 태그를 추가할 수 있습니다. 자세한 내용은 외부 컨테이너 인스턴스에 태그 추가 섹션을 참조하세요.

  • 외부 인스턴스와의 네트워킹과 관련된 추가 고려 사항은 다음과 같습니다. 자세한 내용은 ECS Anywhere를 통한 네트워킹 섹션을 참조하세요.

    • 서비스 로드 밸런싱은 지원되지 않습니다.

    • 서비스 검색은 지원되지 않습니다.

    • 외부 인스턴스에서 실행되는 태스크는 bridge, host 또는 none 네트워크 모드를 사용해야 합니다. awsvpc 네트워크 모드는 지원되지 않습니다.

    • 각 AWS 리전에 Amazon ECS 서비스 도메인이 있습니다. 외부 인스턴스로 트래픽을 보낼 수 있도록 이러한 서비스 도메인이 허용되어야 합니다.

    • 외부 인스턴스에 설치된 SSM 에이전트는 하드웨어 지문을 사용하여 30분마다 교체되는 IAM 자격 증명을 유지합니다. 외부 인스턴스와 AWS의 연결이 끊어지는 경우 SSM 에이전트는 연결이 다시 설정된 후 자격 증명을 자동으로 새로 고칩니다. 자세한 내용은 AWS Systems Manager 사용 설명서하드웨어 지문을 사용하여 온프레미스 서버 및 가상 머신 유효성 검사를 참조하세요.

  • UpdateContainerAgent API는 지원되지 않습니다. 외부 인스턴스에서 SSM 에이전트 또는 Amazon ECS 에이전트를 업데이트하는 방법에 대한 지침은 외부 인스턴스의 AWS Systems Manager 에이전트 및 Amazon ECS 컨테이너 에이전트 업데이트 섹션을 참조하세요.

  • Amazon ECS 용량 공급자는 지원되지 않습니다. 외부 인스턴스에서 서비스를 생성하거나 독립 실행형 태스크를 실행하려면 EXTERNAL 시작 유형을 사용합니다.

  • ECS Exec는 지원되지 않습니다.

  • SELinux는 지원되지 않습니다.

  • Amazon EFS 볼륨 사용이나 EFSVolumeConfiguration 지정은 지원되지 않습니다.

  • 태스크 정의에서 GPU 요구 사항을 지정하는 것은 지원되지 않습니다.

  • App Mesh와의 통합은 지원되지 않습니다.

지원되는 운영 체제 및 시스템 아키텍처

지원되는 운영 체제 및 시스템 아키텍처의 목록은 다음과 같습니다.

  • CentOS 7, CentOS 8

  • RHEL 7 — Docker 또는 RHEL의 오픈 패키지 리포지토리는 RHEL에 기본적으로 Docker를 설치하는 것을 지원하지 않습니다. 이 문서에서 설명하는 설치 스크립트를 실행하기 전에 Docker가 설치되어 있는지 확인해야 합니다.

  • Fedora 32, Fedora 33 — Fedora 32 및 Fedora 33은 기본적으로cgroups.v2를 사용하도록 설정되며, Amazon ECS에서 지원하지 않습니다. 따라서 서버의 기본 GRUB 구성을 변경하고 서버를 재부팅해야 합니다. 지침은 Docker 설명서의 cgroup 버전 변경을 참조하세요.

  • OpenSUSE Tumbleweed

  • Ubuntu 18, Ubuntu 20

  • Debian 9, Debian 10

  • SUSE Enterprise Server 15

  • x86_64ARM64 CPU 아키텍처가 지원됩니다.

ECS Anywhere를 통한 네트워킹

Amazon ECS 외부 인스턴스는 아웃바운드 트래픽 또는 프로세스 데이터를 생성하는 애플리케이션 실행에 최적화되어 있습니다. 애플리케이션에 웹 서비스와 같은 인바운드 트래픽이 필요한 경우 Elastic Load Balancing 지원이 부족하여 이러한 워크로드를 로드 밸런서 뒤에 배치할 수 없기 때문에 이러한 워크로드를 실행하는 데 효율성이 떨어집니다.

외부 인스턴스에서 실행하는 태스크는 bridge, host 또는 none 네트워크 모드를 사용해야 합니다. awsvpc 네트워크 모드는 지원되지 않습니다. 각 네트워크 모드에 대한 자세한 내용은 Amazon ECS 모범 사례 가이드네트워크 모드 선택을 참조하세요.

다음 도메인은 Amazon ECS 서비스와 외부 인스턴스에 설치된 Amazon ECS 에이전트 간의 통신에 사용됩니다. 트래픽이 허용되고 DNS 확인이 작동하는지 확인합니다. 각 엔드포인트의 리전은 미국 동부(오하이오) 리전의 us-east-2와 같이 Amazon ECS가 지원하는 AWS 리전의 리전 식별자를 나타냅니다. 사용하는 모든 리전의 엔드포인트가 허용되어야 합니다. ecs-aecs-t 엔드포인트의 경우 별표를 포함해야 합니다(예: ecs-a-*).

  • ecs-a-*.region.amazonaws.com — 이 엔드포인트는 태스크를 관리할 때 사용됩니다.

  • ecs-t-*.region.amazonaws.com — 이 엔드포인트는 태스크 및 컨테이너 지표를 관리하는 데 사용됩니다.

  • ecs.region.amazonaws.com — Amazon ECS의 서비스 엔드포인트입니다.

  • 태스크에 다른 AWS 서비스와의 통신이 필요한 경우 해당 서비스 엔드포인트가 허용되는지 확인합니다. 예제 애플리케이션으로는 Amazon ECR을 사용하여 컨테이너 이미지를 가져오거나 CloudWatch 로그에 대해 CloudWatch를 사용하는 것이 있습니다. 자세한 내용은 AWS 일반 참조서비스 엔드포인트를 참조하세요.