외부 인스턴스를 위한 Amazon ECS 클러스터

외부 인스턴스를 위한 Amazon ECS 클러스터

Amazon ECS Anywhere를 사용해 온프레미스 서버나 가상 머신(VM) 같은 외부 인스턴스를 Amazon ECS 클러스터에 등록하고, 지원 OS·아키텍처·제한 사항을 알아봐요.

출처: 문서

본문

Amazon ECS Anywhere는 온프레미스 서버나 가상 머신(VM) 같은 외부 인스턴스(external instance)를 Amazon ECS 클러스터에 등록하는 것을 지원해요. 외부 인스턴스는 아웃바운드 트래픽을 생성하거나 데이터를 처리하는 애플리케이션을 실행하는 데 최적화되어 있어요. 애플리케이션이 인바운드 트래픽을 요구하면 Elastic Load Balancing 지원이 없어 이러한 워크로드를 실행하는 것이 덜 효율적이에요. Amazon ECS는 외부 인스턴스에서 서비스를 만들거나 태스크를 실행하는 데 사용할 수 있는 새 EXTERNAL launch type을 추가했어요.

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

지원되는 운영 체제 목록은 다음과 같아요. x86_64와 ARM64 CPU 아키텍처가 지원돼요.

  • Amazon Linux 2023
  • Ubuntu 20, Ubuntu 22, Ubuntu 24
  • RHEL 9 — ECS Anywhere 설치 스크립트를 실행하기 전에 Docker를 설치해야 해요. 자세한 내용은 Docker 문서의 Install Docker Engine on RHEL 참고.

2026년 8월 7일부터 다음 운영 체제는 Amazon ECS Anywhere에서 더 이상 지원되지 않아요:

  • Amazon Linux 2
  • CentOS Stream 9
  • RHEL 7, RHEL 8
  • Fedora 32, Fedora 33, Fedora 40
  • openSUSE Tumbleweed
  • Ubuntu 18
  • Debian 9, Debian 10, Debian 11, Debian 12
  • SUSE Enterprise Server 15
  • Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 20H2

고려 사항 (Considerations)

외부 인스턴스 사용을 시작하기 전에 다음 고려 사항을 알아두세요.

  • 외부 인스턴스는 한 번에 한 클러스터에만 등록할 수 있어요. 외부 인스턴스를 다른 클러스터에 등록하는 방법은 Deregistering an Amazon ECS external instance 참고.
  • 외부 인스턴스는 AWS API와 통신할 수 있게 해주는 IAM 역할이 필요해요. 자세한 내용은 Amazon ECS Anywhere IAM role 참고.
  • 외부 인스턴스는 로컬에 사전 구성된 인스턴스 자격 증명 체인을 두면 안 돼요. 이는 등록 스크립트를 방해할 수 있어요.
  • 컨테이너 로그를 CloudWatch Logs로 보내려면 태스크 정의에서 태스크 실행 IAM 역할을 만들고 지정해야 해요.
  • 외부 인스턴스가 클러스터에 등록되면 ecs.capability.external 속성이 인스턴스와 연결돼요. 이 속성은 인스턴스를 외부 인스턴스로 식별해요. 태스크 배치 제약으로 사용하기 위해 외부 인스턴스에 사용자 지정 속성을 추가할 수 있어요. 자세한 내용은 Custom attributes 참고.
  • 외부 인스턴스에 리소스 태그를 추가할 수 있어요. 자세한 내용은 Adding tags to External container instances for Amazon ECS 참고.
  • ECS Exec은 외부 인스턴스에서 지원돼요. 자세한 내용은 Monitor Amazon ECS containers with ECS Exec 참고.

다음은 외부 인스턴스의 네트워킹과 관련된 추가 고려 사항이에요. 자세한 내용은 Networking 참고.

  • 서비스 로드 밸런싱은 지원되지 않아요.
  • 서비스 검색은 지원되지 않아요.
  • 외부 인스턴스에서 실행되는 태스크는 bridge, host, none 네트워크 모드를 사용해야 해요. awsvpc 네트워크 모드는 지원되지 않아요.
  • 각 AWS 리전에는 Amazon ECS 서비스 도메인이 있어요. 이 서비스 도메인은 외부 인스턴스에 트래픽을 보낼 수 있어야 해요.
  • 외부 인스턴스에 설치된 SSM Agent는 하드웨어 지문(hardware fingerprint)을 사용해 30분마다 회전하는 IAM 자격 증명을 유지해요. 외부 인스턴스가 AWS에 대한 연결을 잃으면 SSM Agent는 연결이 다시 설정된 후 자격 증명을 자동으로 새로고침해요. 자세한 내용은 AWS Systems Manager User Guide의 Validating on-premises servers and virtual machines using a hardware fingerprint 참고.
  • 인스턴스가 IPv6 전용 서브넷에 있으면 외부 인스턴스에서 IPv6 전용 구성으로 Linux 태스크를 실행할 수 있어요. 자세한 내용은 Using a VPC in IPv6-only mode 참고.
  • UpdateContainerAgent API는 지원되지 않아요. 외부 인스턴스에서 SSM Agent나 Amazon ECS agent를 업데이트하는 방법은 Updating the AWS Systems Manager agent and Amazon ECS container agent on an external instance 참고.
  • Amazon ECS capacity provider는 지원되지 않아요. 외부 인스턴스에서 서비스를 만들거나 독립 실행 태스크를 실행하려면 EXTERNAL launch type을 사용하세요.
  • SELinux는 지원되지 않아요.
  • Amazon EFS 볼륨 사용이나 EFSVolumeConfiguration 지정은 지원되지 않아요.
  • App Mesh와의 통합은 지원되지 않아요.
  • 콘솔로 외부 인스턴스 태스크 정의를 만들려면 콘솔 JSON 편집기로 태스크 정의를 만들어야 해요.
  • Amazon ECS 최적화 AMI가 아닌 AMI를 사용할 때는 태스크용 IAM 역할을 사용하도록 규칙을 구성하려면 외부 컨테이너 인스턴스에서 다음 명령을 실행해야 해요. 자세한 내용은 External instance additional configuration 참고.
$ sysctl -w net.ipv4.conf.all.route_localnet=1
$ iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679
$ iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679

네트워킹 (Networking)

Amazon ECS 외부 인스턴스는 아웃바운드 트래픽을 생성하거나 데이터를 처리하는 애플리케이션을 실행하는 데 최적화되어 있어요. 애플리케이션이 웹 서비스처럼 인바운드 트래픽을 요구하면, 이 워크로드를 로드 밸런서 뒤에 배치하는 것을 지원하지 않으므로 Elastic Load Balancing 지원이 없어 실행이 덜 효율적이에요.

외부 인스턴스 네트워킹과 관련된 추가 고려 사항:

  • 서비스 로드 밸런싱은 지원되지 않아요.
  • 서비스 검색은 지원되지 않아요.
  • 외부 인스턴스에서 실행되는 Linux 태스크는 bridge, host, none 네트워크 모드를 사용해야 해요. awsvpc 네트워크 모드는 지원되지 않아요.

더 알아보기 (Learn more)