Amazon Web Services 한국 블로그

Amazon ECS Anywhere 시작하기 – 정식 출시 (서울 리전 포함)

Amazon Elastic Container Service(Amazon ECS)가 2014년에 출시된 이후 AWS는 AWS 리전 외부에서 Amazon ECS 작업을 실행하기 위한 다른 옵션(예: 모바일 엣지 디바이스를 위한 오퍼링인 AWS Wavelength 또는 AWS가 소유하고 완전히 관리하는 하드웨어를 사용하여 고객 환경으로 확장되는 서비스인 AWS Outposts)을 출시했습니다.

그러나 일부 고객은 규정, 지연 시간 및 데이터 상주 요구 사항 또는 기존 인프라 투자 활용 요구 사항으로 인해 온프레미스로 실행해야 하는 애플리케이션을 보유하고 있습니다. 이러한 경우 고객은 별도의 컨테이너 오케스트레이션 소프트웨어를 설치, 운영 및 관리해야 하며 AWS 및 온프레미스 환경 전체에서 서로 다른 도구를 사용해야 합니다. 고객은 이러한 복잡성과 비용 없이 온프레미스 컨테이너를 관리할 수 있는 방법을 요청했습니다.

지난해 Jeff의 사전 발표 이후 Amazon ECS의 새로운 기능인 Amazon ECS Anywhere의 정식 출시를 발표하게 되어 기쁩니다. Amazon ECS Anywhere를 사용하면 컨테이너 기반 애플리케이션을 온프레미스로 쉽게 실행 및 관리할 수 있고 가상 머신(VM), 베어 메탈 서버(bare metal server) 및 기타 고객 관리형 인프라도 이용할 수 있습니다.

ECS Anywhere를 사용하면 현재 AWS에서 사용하는 것과 동일한 클라우드 기반, 완전관리형 및 확장성 높은 컨테이너 오케스트레이션 서비스를 사용하여 모든 고객 관리형 인프라에서 컨테이너를 실행하고 관리할 수 있습니다. 더 이상 온프레미스에서 자체 컨테이너 오케스트레이터를 준비, 실행, 업데이트 또는 유지 관리할 필요가 없으므로 간단한 에이전트를 설치하여 하이브리드 환경을 보다 쉽게 관리하고 인프라에 클라우드를 활용할 수 있습니다.

ECS Anywhere는 모든 컨테이너 기반 애플리케이션에 일관된 도구와 API를 제공하며, 클라우드와 고객 관리형 인프라 모두에서 클러스터 관리, 워크로드 스케줄링 및 모니터링에 대해 동일한 Amazon ECS 환경을 제공합니다. 이제 하드웨어의 엣지 로케이션에서 데이터 처리와 같은 컨테이너 워크로드를 실행하여 지연 시간을 줄이고 클라우드에서 일관된 단일 컨테이너 오케스트레이터를 사용하여 비용 절감과 복잡성 감소의 이점을 누릴 수 있습니다.

Amazon ECS Anywhere – 시작하기
ECS Anywhere를 시작하려면 ECS 클러스터에 온프레미스 서버 또는 VM(외부 인스턴스라고도 함)을 등록합니다. AWS Systems Manager 에이전트, Amazon ECS 컨테이너 에이전트 및 Docker를 이러한 외부 인스턴스에 설치해야 합니다. 외부 인스턴스에는 AWS API와 통신할 수 있도록 허용하는 IAM 역할이 필요합니다. 자세한 내용은 ECS 개발자 안내서의 필수 IAM 권한을 참조하세요.

ECS Anywhere 클러스터를 생성하려면 ECS 콘솔클러스터 생성 페이지에서 네트워킹 전용 템플릿을 선택합니다. 이 옵션은 AWS Fargate 또는 외부 인스턴스 용량에 사용할 수 있습니다. 등록하려는 온프레미스 서버와 지리적으로 가장 가까운 AWS 리전을 사용하는 것이 좋습니다.

이렇게 하면 외부 인스턴스를 등록할 빈 클러스터가 만들어집니다. ECS 인스턴스 탭에서 외부 인스턴스 등록을 선택하여 활성화 코드와 설치 스크립트를 가져옵니다.

1단계: 외부 인스턴스 활성화 세부 정보 페이지의 활성화 키 기간(일)에 활성화 키가 활성 상태로 유지되어야 하는 일 수를 입력합니다. 활성화 키는 최대 1,000개의 정품 인증에 사용할 수 있습니다. 인스턴스 수에서, 클러스터에 등록할 외부 인스턴스 수를 입력합니다. 인스턴스 역할에서, 외부 인스턴스와 연결할 IAM 역할을 입력합니다.

다음 단계를 선택하여 등록 명령을 가져옵니다.

2단계: 외부 인스턴스 등록 페이지에서 등록 명령을 복사합니다. 클러스터에 등록하려는 외부 인스턴스에서 이 명령을 실행합니다.

온프레미스 서버 또는 VM에 등록 명령을 붙여 넣습니다. 그러면 각 외부 인스턴스가 AWS Systems Manager 관리형 인스턴스로 등록되어 Amazon ECS 클러스터에 등록됩니다.

x86_64ARM64 CPU 아키텍처가 모두 지원됩니다. 지원되는 운영 체제 목록은 다음과 같습니다.

  • CentOS 7, CentOS 8
  • RHEL 7
  • Fedora 32, Fedora 33
  • openSUSE Tumbleweed
  • Ubuntu 18, Ubuntu 20
  • Debian 9, Debian 10
  • SUSE Enterprise Server 15

ECS 에이전트가 시작되어 등록을 완료하면 외부 인스턴스가 ECS 인스턴스 탭에 나타납니다.

외부 인스턴스를 기존 클러스터에 추가할 수도 있습니다. 이 경우 Amazon EC2 인스턴스와 외부 인스턴스에 mi-* 접두사가 붙는 것을 볼 수 있습니다.

이제 외부 인스턴스가 클러스터에 등록되었으므로 작업 정의를 생성할 수 있습니다. Amazon ECS는 서비스를 생성하거나 독립형 작업을 실행할 때 작업 정의가 EXTERNAL 시작 유형과 호환되는지 검증하기 위해 requiresCompatibilities 파라미터를 제공합니다. 다음은 작업 정의의 예입니다.

{
	"requiresCompatibilities": [
		"EXTERNAL"
	],
	"containerDefinitions": [{
		"name": "nginx",
		"image": "public.ecr.aws/nginx/nginx:latest",
		"memory": 256,
		"cpu": 256,
		"essential": true,
		"portMappings": [{
			"containerPort": 80,
			"hostPort": 8080,
			"protocol": "tcp"
		}]
	}],
	"networkMode": "bridge",
	"family": "nginx"
}

ECS 콘솔에서 작업 정의를 생성할 수 있습니다. 작업 정의에서 새 작업 정의 생성을 선택합니다. 시작 유형에서, EXTERNAL을 선택한 다음 외부 인스턴스를 사용하도록 작업 및 컨테이너 정의를 구성합니다.

작업 탭에서 새 작업 실행을 선택합니다. 작업 실행 페이지에서 클러스터에 대해 작업 정의를 실행할 클러스터를 선택합니다. 작업 수에서, EXTERNAL 시작 유형으로 실행할 해당 작업의 복사본 수를 입력합니다.

또는 서비스 탭에서 생성을 선택합니다. 서비스 구성을 사용하면 클러스터에서 실행 및 유지 관리할 작업 정의의 복사본을 지정할 수 있습니다. 등록된 외부 인스턴스에서 작업을 실행하려면 시작 유형에 대해 EXTERNAL을 선택합니다. 이 시작 유형을 선택하면 로드 밸런서, 태그 전파 및 서비스 검색 통합이 지원되지 않습니다.

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

이제 작업을 실행하고 EXTERNAL, FARGATEEC2 용량 공급자 유형을 동일한 ECS 서비스에 연결하고 작업을 분할할 방법을 지정할 수 있습니다.

알아야 할 사항
몇 가지 참고할 사항을 알려드립니다.

연결: 온프레미스 서버에서 실행되는 ECS 에이전트와 AWS 리전의 ECS 제어 플레인 간의 네트워크 연결이 끊어지는 경우에도 기존 ECS 작업은 평소와 같이 계속 실행됩니다. 작업이 다른 AWS 서비스와 계속 연결되어 있는 경우 작업 역할 자격 증명이 활성 상태라면 해당 작업과 계속 통신합니다. 서비스의 일부로 시작된 작업이 중단되거나 자체적으로 종료되는 경우 ECS는 연결이 복원될 때까지 해당 작업을 교체할 수 없습니다.

모니터링: ECS Anywhere를 사용하면 클러스터 및 서비스에 대한 Amazon CloudWatch 지표를 가져오고, CloudWatch Logs 드라이버 (awslog) 를 사용하여 컨테이너의 로그를 가져오고, ECS CloudWatch 이벤트 스트림에 액세스하여 클러스터의 이벤트를 모니터링합니다.

네트워킹: ECS 외부 인스턴스는 아웃바운드 트래픽 또는 프로세스 데이터를 생성하는 실행 중인 애플리케이션에 최적화되어 있습니다. 애플리케이션에 웹 서비스와 같은 인바운드 트래픽이 필요한 경우 해당 기능이 기본적으로 지원될 때까지 이러한 워크로드를 로드 밸런서 뒤에 배치하는 해결 방법을 사용해야 합니다. 자세한 내용은 ECS Anywhere를 통한 네트워킹을 참조하세요.

데이터 보안: 고객이 데이터 보안을 유지할 수 있도록 ECS Anywhere는 작업 상태 또는 컨테이너의 상태 (실행 중인지 여부, 성능 카운터 등) 와 관련된 AWS 리전 메타데이터로만 다시 전송합니다. 이 통신은 전송 계층 보안(TLS)을 통해 전송 중에 인증되고 암호화됩니다.

ECS Anywhere 파트너
ECS Anywhere는 다양한 ECS Anywhere 파트너와 통합되어 고객이 ECS Anywhere를 활용하고 이 기능을 위한 추가 기능을 제공할 수 있도록 지원합니다. 다음은 파트너들이 경험과 제품을 공유하기 위해 작성한 블로그 게시물입니다. (게시된 링크로 이 문서를 업데이트하고 있습니다.)

정식 출시
Amazon ECS Anywhere는 이제 ECS가 지원되는 모든 상업 리전(AWS 중국 리전 제외)에서 사용할 수 있습니다. ECS Anywhere를 사용하면 최소 요금이나 선수금이 없습니다. 관리되는 각 ECS Anywhere 작업에 대해 인스턴스 시간당 요금을 지불합니다. 자세한 내용은 요금 페이지를 참조하세요.

자세한 내용은 Amazon ECS 개발자 안내서의 ECS Anywhere를 참조하세요. Amazon ECS의 AWS 포럼 또는 평소 이용하는 AWS Support 연락처를 통해 피드백을 보내주시기 바랍니다.

지금 바로 Amazon ECS Anywhere를 시작하세요.

Channy

업데이트. 재택근무 사무실에서 Raspberry Pi 클러스터를 운영하는 ECS Anywhere의 멋진 데모를 시청해 보고 심층적인 블로그 게시물을 읽어보세요.