Docker

EC2 Container Service – Long-Running Applications, Load Balancing, and More

뭉기 2015. 4. 13. 13:58

EC2 Container Service – Long-Running Applications, Load Balancing, and More

Ecs_splash_2EC2 Container Service 는 Docker 컨테이너를 지원하는 확장 가능한 컨테이너 관리 서비스에서 Amazon Elastic Compute Cloud (EC2) 인스턴스 클러스터에서 응용 프로그램을 실행시킬 쉽게 할 수 있습니다. 우리는 AWS re : Invent 에서 미리보기를 시작 지금까지 많은 훌륭한 피드백을 받고 왔습니다.

Amazon ECS는 많은 고객에게 Docker를 사용하여 응용 프로그램이나 서비스를 캡슐화하고, 하나 일반적으로 여러 응용 프로그램을 EC2 인스턴스들의 클러스터에서 실행하는 데 클러스터 관리에 고민 싶지 않아 라는 말을 받아 만들어졌습니다. 안정 스케일 있고, 이미 이용하고있는 EC2의 고급 기능의 편리함도 누릴 수 같은 서비스가 고객 요구되고있었습니다.

또한 EC2 인스턴스와 컨테이너의 상태를 포함하는 클러스터 관리는 힘들 것 얻고, 특히 환경이 많아지면 그렇지 경향이라는 이야기도 들었습니다. 예를 들어 어떤 인스턴스를 사용할 수 필요한 용량을 가지고 있는가에 대한 상태 정보를 정확하게 적시에 액세스해야, 그것은 수 처음으로 컨테이너의 위치 결정이 가능합니다. 상태 추적은 인스턴스 및 컨테이너의 수가 수천 또는 수만 증가하면 계속적으로 어려워진 것하고 중요도가 더 더해갑니다.

Amazon ECS는 이러한 모든 요구 이상을 충족 있도록 디자인되어 있습니다. 고객 자신에서 클러스터 관리 기반을 설치하거나 운용하거나 스케일 할 필요가 없습니다. 간단한 API 호출뿐만 컨테이너 된 응용 프로그램을 시작하거나 중지 할 수 있으며, 클러스터의 상태도 알 수 있습니다. Amazon EC2와 다른 AWS 서비스를 함께 사용할 수 있으며,Elastic Load Balancing , EBS 볼륨 , EC2 보안 그룹 이나 IAM 역할 등 유명한 기능의 이점을 살릴 수 있습니다.

또한, 컨테이너의 스케줄링에 몇 가지 선택이 다양한 종류의 어플리케이션을 실행하는 것이나, 컨테이너 나 응용 프로그램이나 서비스의 배치와 활용을 관리 할 수​​ 있습니다.

오늘 일반적 가능하게 도쿄 지역에서도 이용이 가능하게

Amazon ECS가 일반 이용 가능하게 된 것에 대해 언급 할 수 매우 기쁘게 생각합니다. 따라 움직이는 유지 응용 프로그램 지원, 새로운 멋진 Amazon ECS 콘솔, 그리고 CloudTrail과의 연계라는 새로운 몇 가지 강력한 기능도 추가했다. 또한 Amazon ECS가 Asia Pacific (도쿄) 지역에서도 사용할 수 있습니다.

그러면 새로운 기능을 하나씩 살펴 보자.

긴 러닝 어플리케이션

지금까지 Amazon ECS는 클러스터의 Docker 컨테이너 일정에 2 개의 수단을 제공했습니다. 하나는 일괄 작업과 같이 한 번 실행하는 것 같은 것이 끝나면 종료합니다. 다른 하나는 Amazon ECS의 API에서 클러스터 상태 정보를 취득하여 타사 및 사용자 정의 스케줄러에 전달할 수 있습니다.

오늘의 릴리스부터 롱 러닝 애플리케이션과 서비스를 관리하기 위해 새로 Amazon ECS 서비스 스케줄러를 사용할 수 있습니다. 서비스 스케줄러는 애플리케이션 가용성 관리를 도와 주시고 용량의 요구에 맞는 것처럼 컨테이너를 시작하거나 중지하고 확장 할 수 있습니다. 다음이 제공하는 기능 목록입니다 :

  • 로드 밸런싱 - 서비스 스케줄러에 의해 Elastic Load Balancing을 사용한 컨테이​​너를 걸친 트래픽 분산이 가능합니다. Amazon ECS는 관련로드 밸런서에 자동으로 등록 · 해제합니다.
  • 사활 관리 - 서비스 스케줄러는 정상 없게되었다 (ELB의 건강 체크가 실패) 컨테이너를 자동으로 부활하거나 중지합니다. 이를 통해 응용 프로그램을 실행시키기 위해 필요한 지정된 수의 정상적인 컨테이너가 유지되는 것을 보장 해줍니다.

  • 스케일 업과 스케일 다운 - 서비스를 실행하는 컨테이너의 수를 변경하여 응용 프로그램을 확장 시키거나 스케일 다운시킬 수 있습니다.

  • 업데이트 관리 - 응용 프로그램의 정의를 바꾸거나 새로운 이미지를 사용하여 응용 프로그램의 업데이트도 할 수 있습니다. 스케줄러는 새로운 정의에 자동으로 컨테이너 그룹을 시작하고 이전 버전이 움직이고있는 컨테이너를 중지합니다. ELB가 사용되고있는 경우에는 ELB의 연결을 드레인시켜 기다려줍니다.

이러한 새로운 기능을 사용하여 기본적인 서비스 검색을 구현​​할 수 있습니다. 클러스터에서 움직이고있는 서비스를 나열 할 수 있고, ELB를 서비스 엔드 포인트로 사용할 수 있습니다.

Gilt의 말

온라인 소매를 전개하는 Gilt는 고객에게 오늘의 톱 브랜드와 체험에 대한 내부 정보를 제공합니다. 공동 설립자 인 Phong Nguyen 은 이런 말을주었습니다 :

Phong_nguyen_gilt_1"우리는 Docker 얼리 어댑터이었습니다 .Docker을 사용함으로써 빠른 개발이 수 마이크로 서비스 아키텍처의 종단 간 지속적인 전달을 개선하고 단순화 할 수있었습니다. 우리의 모든 서비스가 Docker 화되어 있기 때문에 배치를 가속화 서비스를 자동화하고 더 효율을 잘 할 수있는 플랫폼을 갖는 것이 중요합니다. 새로운 서비스 스케줄러와 ELB의 연계를 통해 Amazon ECS이 우리의 서비스에 매우 좋은 플랫폼이며, AWS와 우리의 Docker 플랫폼의 파트너십이 매우 기대됩니다. "

Amazon ECS 콘솔

새로운 Amazon ECS 콘솔에서 클러스터를 설치하거나 이동하는 프로세스를 단순화합니다. 여기에 간단한 PHP 응용 프로그램을 배포하는 서비스를 만드는 절차를 소개합니다. 응용 프로그램은 링크 된 컨테이너에서 전달되는 내용 (메시지 및 시간)를 표시합니다.

우선 콘솔을 열고 사용자 지정 작업 정의 (1 개의 EC2 인스턴스에서 함께 운영하고 컨테이너의 집합)을 만드는 쪽을 선택합니다.

그리고 자신의 작업 정의를 만듭니다. 시각적으로 1 컨테이너 씩 만들어 나갈 수 있습니다.

또는 기존의 JSON 정의를 붙여 넣을 수 있습니다 (이것은 문서의 Docker 기본 섹션 에서 그대로오고있다)

Create a service를 클릭하고 다음 단계에서는 모든 기본값을 사용합니다.

이제 서비스가 정의되어 그것을 움직이기위한 클러스터를 만들 수 있습니다 (이 예에서는 3 개의 t2.micro 인스턴스를 사용합니다). Select / Create Roles 버튼을 사용하여 필요한 IAM 역할을 한 번의 클릭으로 설치합니다.

옵션을 검토하고 의도대로임을 확인한 후 Amazon ECS는 표준 클러스터 EC2 인스턴스를 시작합니다. 진행은 콘솔에서 볼 수 있습니다.

몇 분 안에 모든 것이 시작하므로 이들을 보면 수 있습니다. 소개 클러스터 목록 (지금은 1 만)를 살펴 보자.

더 가까이에서 클러스터를보기 위해 확대 봅니다.

거기에서 서비스를 확인하실 수 있습니다.

필요한 경우 변경할 수 있습니다.

물론 이러한 모든 작업이나 정보 취득은 ECS API 와 Command-Line Interface (CLI)를 통해 할 수 있습니다.

CloudTrail 제휴

ECS API 호출을 AWS CloudTrail 에서 기록되게되었습니다.

또 다른 지역

오늘부터 Amazon ECS는 Asia Pacific (도쿄) 지역에서 사용할 수 있습니다. 다른 방법은 US East (Northern Virginia), US West (Oregon) Europe (Ireland) 지역에서 사용할 수 있습니다.

오늘부터 사용할 수 있습니다

만약 컨테이너 기반의 계산기 나 Amazon ECS가 처음이라면, What is Amazon EC2 Container Service 를 읽는 데서 시작 좋다고 생각합니다.

- Jeff; (번역 : 이와 나가)