Amazon ECS를 위한 EC2 용량 아키텍처 설계

Amazon ECS를 위한 EC2 용량 아키텍처 설계

가격 최적화가 필요한 대규모 워크로드에는 EC2 용량을 사용하세요. EC2를 사용해 태스크 정의와 서비스를 어떻게 구성할지 고민할 때는, 어떤 프로세스가 함께 실행되어야 하는지와 각 구성 요소를 어떻게 확장할지 먼저 생각해 보는 걸 권장해요.

출처: 문서

본문

예를 들어 애플리케이션이 다음 구성 요소로 이루어져 있다고 가정해 볼게요:

  • 웹페이지에 정보를 표시하는 프런트엔드 서비스
  • 프런트엔드 서비스에 API를 제공하는 백엔드 서비스
  • 데이터 저장소(data store)

이 예시에서는 공통 목적으로 사용되는 컨테이너를 함께 묶는 태스크 정의를 만들고, 서로 다른 구성 요소는 여러 태스크 정의로 분리하세요. 아래 예시 클러스터에는 프런트엔드 서비스 컨테이너 3개, 백엔드 서비스 컨테이너 2개, 데이터 저장소 서비스 컨테이너 1개가 실행되는 컨테이너 인스턴스 3개가 있어요.

함께 실행되어야 하는 연결된 컨테이너처럼 관련 컨테이너를 태스크 정의로 묶을 수 있어요. 예를 들어 프런트엔드 서비스에 로그 스트리밍 컨테이너를 추가하고 같은 태스크 정의에 포함시킬 수 있습니다.

태스크 정의를 만든 뒤에는 그로부터 서비스를 만들어 원하는 태스크의 가용성을 유지할 수 있어요. 자세한 내용은 Amazon ECS 롤링 업데이트 배포 만들기(Creating an Amazon ECS rolling update deployment)를 참고하세요. 서비스에서는 컨테이너를 Elastic Load Balancing 로드 밸런서와 연결할 수 있어요. 자세한 내용은 로드 밸런싱으로 Amazon ECS 서비스 트래픽 분산하기(Use load balancing to distribute Amazon ECS service traffic)를 참고하세요.

애플리케이션 요구 사항이 바뀌면 서비스를 업데이트해 원하는 태스크 수를 늘리거나 줄일 수 있어요. 또는 서비스를 업데이트해 태스크의 컨테이너를 새 버전으로 배포할 수도 있습니다. 자세한 내용은 Amazon ECS 서비스 업데이트(Updating an Amazon ECS service)를 참고하세요.