Amazon Elastic Container Service

시작하기

Amazon Web Services에 가입하면 AWS 프리 티어에 12개월 동안 액세스할 수 있습니다. 연중무휴 24시간 고객 서비스, 지원 포럼 등을 비롯한 AWS Basic Support 기능을 사용해 보십시오.


Q: Amazon Elastic Container Service란 무엇입니까?
Amazon Elastic Container Service(ECS)는 Docker 컨테이너를 지원하는 확장성과 성능이 뛰어난 컨테이너 관리 서비스로서, 이 서비스를 사용하여 Amazon EC2 인스턴스의 관리형 클러스터에서 애플리케이션을 손쉽게 실행할 수 있습니다. Amazon ECS를 사용하면 자체적인 클러스터 관리 인프라를 설치, 운영 및 확장할 필요가 없습니다. 간단한 API 호출로 컨테이너가 활성화된 애플리케이션을 실행 및 중지하고, 클러스터의 전체 상태를 쿼리하며, 보안 그룹, Elastic Load Balancing, EBS 볼륨, IAM 역할과 같이 여러 친숙한 기능에 액세스할 수 있습니다. 리소스 필요와 가용성 요구 사항에 따라 클러스터 전체에 컨테이너를 배치할 일정을 수립하는 데에도 Amazon ECS를 사용할 수 있습니다. 또는 비즈니스나 애플리케이션의 특정 요구 사항에 맞도록 자체 스케줄러나 타사 스케줄러를 통합할 수 있습니다.

Q: Amazon ECS를 사용해야 하는 이유는 무엇입니까?
Amazon ECS를 사용하면 자체 클러스터 관리 인프라를 설치, 운영, 조정할 필요 없이, 간편하게 컨테이너를 애플리케이션의 빌딩 블록으로 사용할 수 있습니다. Amazon ECS는 Docker 컨테이너를 사용하여 장기 실행 애플리케이션, 서비스 및 배치 프로세스를 예약할 수 있게 해줍니다. Amazon ECS을 사용하면 애플리케이션 가용성을 유지 관리하고 애플리케이션 용량 요구 사항에 따라 컨테이너 규모를 확장하거나 축소할 수 있습니다. Amazon ECS는 Elastic Load Balancing, EBS 볼륨, VPC, IAM과 같은 친숙한 기능과 통합되어 있습니다. 간단한 API로 자체 스케줄러와 통합하여 사용하거나 Amazon ECS를 기존의 소프트웨어 전송 프로세스에 연결할 수 있습니다.

Q: Amazon ECS의 요금은 어떻게 됩니까?
Amazon ECS 사용에 따르는 추가 요금은 없습니다. 애플리케이션을 저장하고 실행하기 위해 생성한 AWS 리소스(예: EC2 인스턴스 또는 EBS 볼륨)에 대해 지불하시면 됩니다. 종량제로 요금이 청구되며 최소 요금 및 선수금은 없습니다.

Q: Amazon ECS는 AWS Elastic Beanstalk와 어떻게 다릅니까?
AWS Elastic Beanstalk는 애플리케이션 관리 플랫폼으로 고객이 쉽게 웹 애플리케이션과 서비스를 배포하고 조정할 수 있도록 해줍니다. 빌딩 블록 프로비저닝(예: EC2, RDS, Elastic Load Balancing, Auto Scaling, CloudWatch), 애플리케이션 배포, 상태 모니터링 등에 신경 쓸 필요가 없어 사용자가 코드 작성에만 집중할 수 있습니다. 배포할 컨테이너 이미지, CPU와 메모리 요구 사항, 포트 매핑, 컨테이너 링크만 지정하면 됩니다. Elastic Beanstalk이 Amazon ECS 클러스터, 로드 밸런싱, Auto-scaling, 모니터링, 클러스터 전체에 컨테이너 배치와 같은 모든 세부 사항을 자동으로 처리합니다.

컨테이너의 장점을 활용하고 싶지만 컨테이너 이미지 업로드를 통해 개발에서 운영까지 애플리케이션 배포만 간단히 하고 싶다면 Elastic Beanstalk이 최적의 선택입니다. 사용자 정의 애플리케이션 아키텍처를 좀더 미세하게 조정하고 싶다면 Amazon ECS에서 직접 작업하면 됩니다.

Q: Amazon ECS는 AWS Lambda와 어떻게 다릅니까?
Amazon Elastic Container Service는 확장성이 뛰어난 Docker 컨테이너 관리 서비스로서 이 서비스를 사용하여 Docker 컨테이너에서 실행되는 분산 애플리케이션을 실행하고 관리할 수 있습니다. AWS Lambda는 이벤트 중심의 작업 컴퓨팅 서비스로서 데이터 변경, 웹 사이트 클릭, 다른 AWS 서비스에서 온 메시지 등의 '이벤트'에 대한 응답으로 코드를 실행하므로, 사용자가 컴퓨팅 인프라를 관리할 필요가 없습니다.

 

 

 

Q: Amazon ECS는 어떻게 시작합니까?
시작하는 방법을 자세히 알아보려면 시작하기 페이지를 참조하십시오.

Q: Elastic Container Service에서는 다른 컨테이너 유형도 지원합니까?
아니요. Docker는 현재 Elastic Container Service에서 지원하는 유일한 컨테이너 플랫폼입니다.

Q: 컨테이너를 시작하려고 하는데, 작업을 시작해야 하는 이유는 무엇입니까?
Docker에서는 애플리케이션을 개별 구성 요소로 분리하도록 권장하는데 Elastic Container Service는 이러한 패턴에 최적화되어 있습니다. 작업에서는 함께 배치하려는 컨테이너 집합(또는 동일한 배치 결정의 일부), 해당 속성 및 연결되는 방식을 정의할 수 있습니다. 작업에는 Elastic Container Service가 배치를 결정하는 데 필요한 모든 정보가 포함되어 있습니다. 단일 컨테이너를 시작하려면 작업 정의에 단 한 개의 컨테이너 정의만 포함해야 합니다.

Q: Amazon ECS는 애플리케이션과 서비스를 지원합니까?
예. Amazon ECS 서비스 스케줄러에서 장기 실행 애플리케이션과 서비스를 관리할 수 있습니다. 서비스 스케줄러를 사용하면 애플리케이션 가용성 유지 관리가 가능하여 애플리케이션 용량 요구 사항에 따라 컨테이너 규모를 확장하거나 축소할 수 있습니다. 서비스 스케줄러는 Elastic Load Balancing을 사용하여 트래픽을 컨테이너 전체에 배포할 수 있게 해줍니다. Amazon ECS가 연결된 로드 밸런서에서 컨테이너를 자동으로 등록하거나 등록 해제합니다. 서비스 스케줄러는 또한 비정상이 된 컨테이너(ELB 상태 검사에 불합격)를 자동으로 복구하거나 실행을 중단시켜 애플리케이션을 지원하는 정상 컨테이너를 원하는 수만큼 유지할 수 있습니다. 서비스에서 실행시킬 컨테이너의 수를 변경하여 애플리케이션을 확장하거나 축소할 수 있습니다. 정의를 변경하거나 새로운 이미지를 사용하여 애플리케이션을 업데이트할 수 있습니다. 스케줄러가 신규 정의를 사용하여 자동으로 새로운 컨테이너를 시작하고 이전 버전의 컨테이너는 중지시킵니다(ELB 사용의 경우, ELB 연결이 해제될 때까지 기다립니다).

Q: Amazon ECS에서는 동적 포트 매핑을 지원합니까?
예. Amazon Elastic Container Service(ECS)의 서비스를 Elastic Load Balancing(ELB) 서비스의 Application Load Balancer와 연결할 수 있습니다. 애플리케이션 로드 밸런서는 인스턴스:포트 세트가 포함된 대상 그룹을 지원합니다. ECS 작업 정의에 동적 포트를 지정할 수 있으며 이를 통해 컨테이너가 EC2 인스턴스에 예약된 경우 미사용 포트를 컨테이너에 제공할 수 있습니다. ECS 스케줄러는 이 포트를 사용하는 애플리케이션 로드 밸런서의 대상 그룹에 작업을 자동으로 추가합니다.

Q: Amazon ECS에서 배치 작업을 지원합니까?
예. Amazon ECS에서 제공하는 Run 작업을 사용하여 하나 이상의 작업을 동시에 실행할 수 있습니다. Run 작업은 CPU, 메모리, 포트를 비롯하여 작업 요구 사항에 맞는 인스턴스의 작업을 실행시킵니다.

Q: Amazon ECS에 고유 스케줄러를 사용할 수 있습니까?
ECS에서는 컨테이너 관리 및 오케스트레이션용 오픈 소스 프로젝트 모음인 Blox를 제공합니다. Blox를 사용하면 Amazon ECS의 이벤트를 간편하게 사용하고, 클러스터 상태를 로컬에 저장하며, API를 통해 로컬 데이터 스토어를 쿼리할 수 있습니다. 또한, Blox에는 클러스터 상태 서버를 사용하는 방법을 참조할 수 있는 데몬 스케줄러가 포함되어 있습니다. 자세한 내용은 Blox GitHub 페이지를 참조하십시오.

Q: 고유 AMI를 사용할 수 있습니까?
예. Amazon ECS AMI 사양을 충족시키는 모든 AMI를 사용할 수 있습니다. Amazon ECS가 활성화된 Amazon Linux AMI에서 시작하는 것을 권장합니다. Amazon ECS와 호환 가능한 파트너 AMI도 사용할 수 있습니다. 설명서에 나와있는 Amazon ECS AMI 사양을 확인하시기 바랍니다.

Q: Amazon Elastic Container Registry에서 끌어오도록 컨테이너 인스턴스를 구성하려면 어떻게 해야 합니까?
Amazon ECR은 Amazon ECS와 통합되어 Amazon ECS에서 실행되는 애플리케이션에 대한 컨테이너 이미지를 손쉽게 저장, 실행 및 관리할 수 있습니다. 작업 정의에 Amazon ECR 리포지토리를 지정하고 AmazonEC2ContainerServiceforEC2Role을 인스턴스에 연결하기만 하면 됩니다. 그러면 Amazon ECS에서 애플리케이션에 적합한 이미지를 가져옵니다.

Q: Amazon ECS는 다른 고객에게 속한 컨테이너를 어떻게 격리합니까?
Amazon ECS는 고객이 제어하는 Amazon EC2 인스턴스에서 실행되도록 컨테이너를 예약하고, EC2 고객에게 적용되는 것과 동일한 격리 제어와 규정 준수에 따라 구축합니다.

  • 컴퓨팅 인스턴스는 지정된 IP 범위에 따라 Virtual Private Cloud(VPC)에 위치합니다. 사용자가 인터넷에 공개할 인스턴스와 비공개할 인스턴스를 지정할 수 있습니다.
  • 고객의 EC2 인스턴스는 ECS 서비스에 액세스하기 위해 IAM 역할을 사용합니다.
  • 고객의 ECS 작업은 서비스와 리소스에 액세스하기 위해 IAM 역할을 사용합니다.
  • 보안 그룹 및 네트워크 ACL을 통해 인스턴스에 대한 인바운드 및 아웃바운드 네트워크 액세스를 통제할 수 있습니다.
  • 업계 표준 암호화된 IPsec VPN 연결을 통해 기존 IT 인프라를 VPC 리소스에 연결할 수 있습니다.
  • EC2 리소스를 전용 인스턴스로 프로비저닝할 수 있습니다. 전용 인스턴스는 격리 기능을 강화하기 위해 단일 고객에게 배정된 전용 하드웨어에서 실행되는 Amazon EC2 인스턴스입니다.

Q: 내 컨테이너 인스턴스에 추가적인 보안 구성과 격리 프레임워크를 적용할 수 있습니까?
예. Amazon EC2 고객은 컨테이너 인스턴스의 운영 체제에 대한 루트 액세스 권한이 있으므로 모니터링, 패치 관리, 로그 관리, 호스트 침입 탐지와 같은 보안 역량 강화를 위한 소프트웨어 구성 요소를 추가로 로드 및 구성할 수 있을 뿐 아니라 운영 체제의 보안 설정에 대한 소유권도 가지고 있습니다.

Q: 다른 보안 설정으로 컨테이너 인스턴스를 실행하거나 다른 환경의 다른 작업을 분리할 수 있습니까?
예. 원하는 도구를 사용하여 다른 컨테이너 인스턴스를 구성할 수 있습니다. Amazon ECS를 사용하면 클러스터와 대상 지정 실행을 생성하여 다른 컨테이너 인스턴스에 작업을 배치할 수 있습니다.

Q: Amazon ECS는 프라이빗 소스 또는 내부 소스에서 Docker 이미지를 가져오도록 지원합니까?
예. 고객은 VPC 내 프라이빗 Docker 이미지 레지스트리에 액세스하거나 Amazon Elastic Container Registry와 같은 VPC 외부에서 액세스할 수 있는 레지스트리에 액세스하도록 컨테이너 인스턴스를 구성할 수 있습니다.

Q: ECS 작업에 IAM 역할을 구성하려면 어떻게 해야 합니까?
먼저 'Amazon EC2 Container Service Task Role’ 서비스 역할을 사용해 정책에 필요한 권한을 추가하여 작업에 사용할 IAM 역할을 생성해야 합니다. 새로운 작업 정의 파일 또는 작업 정의 수정 파일을 생성하였으면, 이제 [Task Role] 드롭다운 메뉴에서 선택하거나 JSON 형식의 'taskRoleArn'을 사용하여 역할을 지정할 수 있습니다.