Amazon ECS에 대한 EC2 용량 아키텍트 - Amazon Elastic Container Service

Amazon ECS에 대한 EC2 용량 아키텍트

요금 최적화가 필요한 대규모 워크로드에 대해 EC2 용량을 사용합니다.

EC2를 사용하여 태스크 정의 및 서비스를 모델링하는 방법을 고려할 경우 어떤 프로세스를 함께 실행해야 하는지와 각 구성 요소의 규모를 어떻게 조정할지를 고려하는 것이 좋습니다.

예를 들어 다음 구성 요소로 이루어진 애플리케이션을 가정해 보겠습니다.

  • 웹 페이지에 정보를 표시하는 프런트엔드 서비스

  • 프런트엔드 서비스에 API를 제공하는 백엔드 서비스

  • 데이터 스토어

이 예에서는 공통 용도로 사용되는 컨테이너를 그룹화하는 태스크 정의를 만듭니다. 여러 구성 요소를 여러 태스크 정의로 구분합니다. 다음 예제 클러스터에는 3개의 프런트 엔드 서비스 컨테이너, 2개의 백엔드 서비스 컨테이너 및 1개의 데이터 스토어 서비스 컨테이너를 실행하는 3개의 컨테이너 인스턴스가 있습니다.

동일한 태스크 정의의 관련된 컨테이너를 그룹화할 수 있습니다(예: 반드시 함께 실행해야 하는 연결된 컨테이너). 예를 들어 로그 스트리밍 컨테이너를 프런트 엔드 서비스에 추가하고 동일한 태스크 정의에 추가합니다.

태스크 정의로부터 서비스를 생성하여 원하는 태스크의 가용성을 유지할 수 있습니다. 자세한 내용은 Amazon ECS 롤링 업데이트 배포 생성 섹션을 참조하세요. 서비스에서 컨테이너를 ELB 로드 밸런서에 연결할 수 있습니다. 자세한 내용은 로드 밸런싱을 사용하여 Amazon ECS 서비스 트래픽 분산 섹션을 참조하세요. 애플리케이션 요구 사항이 변경될 경우 서비스를 업데이트하여 원하는 태스크의 개수를 조정할 수 있습니다. 또는 태스크에 새 버전의 컨테이너를 배포하도록 서비스를 업데이트할 수 있습니다. 자세한 내용은 Amazon ECS 서비스 업데이트 섹션을 참조하세요.

세 개의 인스턴스가 있는 애플리케이션 아키텍처 예제. 인스턴스 1에는 프런트 엔드 서비스 컨테이너와 데이터베이스 서비스 컨테이너가 있습니다. 인스턴스 2와 인스턴스 3에는 프론트엔드 서비스 컨테이너와 백엔드 서비스 컨테이너가 있습니다.