Amazon Elastic Container Service란 무엇인가요?
Amazon Elastic Container Service란 무엇인가요?
Amazon Elastic Container Service(Amazon ECS)는 완전 관리형 컨테이너 오케스트레이션 서비스로, 컨테이너화된 애플리케이션을 쉽게 배포·관리·확장할 수 있게 해줘요. 완전 관리형 서비스답게 AWS의 구성 및 운영 모범 사례가 기본으로 내장되어 있어요.
출처: 문서
본문
참고: 곧 있을 컨테이너 워크숍 시리즈에 참여해서 Amazon ECS와 AWS Fargate의 모범 사례를 배워보세요. 여기를 눌러 등록하세요.
Amazon Elastic Container Service(Amazon ECS)는 완전 관리형 컨테이너 오케스트레이션 서비스로, 컨테이너화된 애플리케이션을 쉽게 배포하고 관리하고 확장할 수 있게 도와줘요. 완전 관리형 서비스인 Amazon ECS에는 AWS 구성 및 운영 모범 사례가 기본으로 내장되어 있어요. Amazon Elastic Container Registry 같은 AWS 도구와 Docker 같은 타사 도구 양쪽 모두와 통합되어 있어요. 이러한 통합 덕분에 팀은 환경을 관리하는 대신 애플리케이션을 만드는 데 집중할 수 있어요. 제어 플레인을 관리하는 복잡함 없이 클라우드의 AWS 리전과 온프레미스에서 컨테이너 워크로드를 실행하고 확장할 수 있어요.
용어 및 구성 요소
Amazon ECS에는 세 가지 계층이 있어요:
- Capacity(용량) – 컨테이너가 실행되는 인프라
- Controller(컨트롤러) – 컨테이너에서 실행되는 애플리케이션을 배포하고 관리
- Provisioning(프로비저닝) – 스케줄러와 인터페이스하여 애플리케이션과 컨테이너를 배포·관리할 때 사용하는 도구
다음 다이어그램은 Amazon ECS의 계층을 보여줘요.
Capacity는 컨테이너가 실행되는 인프라예요. 용량 옵션에 대한 개요는 다음과 같아요:
- Amazon ECS Managed Instances는 Amazon ECS의 컴퓨팅 옵션으로, 다양한 Amazon EC2 인스턴스 유형에서 컨테이너화된 워크로드를 실행하면서 인프라 관리는 AWS에 맡길 수 있게 해줘요. Amazon ECS Managed Instances를 사용하면 GPU 가속, 특정 CPU 아키텍처, 높은 네트워크 성능, 특수 인스턴스 유형 같은 특정 컴퓨팅 기능을 이용할 수 있어요. AWS가 기본 인프라의 프로비저닝, 패치, 스케일링, 유지보수를 처리해줘요.
- AWS 클라우드의 Amazon EC2 인스턴스 – 인스턴스 유형과 인스턴스 개수를 직접 고르고 용량을 관리해요.
- AWS 클라우드의 서버리스 – Fargate는 서버리스, 종량제(pay-as-you-go) 컴퓨팅 엔진이에요. Fargate를 사용하면 서버를 관리하거나 용량 계획을 처리하거나 보안을 위해 컨테이너 워크로드를 격리할 필요가 없어요.
- 온프레미스 가상 머신(VM) 또는 서버 – Amazon ECS Anywhere는 온프레미스 서버나 가상 머신(VM) 같은 외부 인스턴스를 Amazon ECS 클러스터에 등록할 수 있게 지원해줘요.
Amazon ECS 스케줄러는 애플리케이션을 관리하는 소프트웨어예요.
기능
Amazon ECS는 다음과 같은 상위 수준의 기능을 제공해요:
- Task definition(태스크 정의) – 애플리케이션의 청사진.
- Cluster(클러스터) – 애플리케이션이 실행되는 인프라.
- Task(태스크) – 작업을 수행한 다음 중지되는 배치 작업 같은 애플리케이션.
- Service(서비스) – 오래 실행되는 무상태(stateless) 애플리케이션.
- Account Setting(계정 설정) – 기능에 대한 접근을 허용.
- Cluster Auto Scaling(클러스터 오토 스케일링) – 클러스터에 등록된 Amazon EC2 인스턴스의 스케일링을 Amazon ECS가 관리.
- Service Auto Scaling(서비스 오토 스케일링) – 서비스의 원하는 태스크 수를 Amazon ECS가 자동으로 늘리거나 줄임.
Provisioning(프로비저닝)
Amazon ECS를 프로비저닝하는 방법은 여러 가지가 있어요:
- AWS Management Console – Amazon ECS 리소스에 접근할 수 있는 웹 인터페이스를 제공.
- AWS Command Line Interface (AWS CLI) – Amazon ECS를 포함한 광범위한 AWS 서비스에 대한 명령을 제공. Windows, Mac, Linux에서 지원돼요. 자세한 내용은 AWS Command Line Interface를 참조하세요.
- AWS SDKs – 언어별 API를 제공하고 서명 계산, 요청 재시도 처리, 오류 처리 등 많은 연결 세부 사항을 처리해줘요. 자세한 내용은 AWS SDKs를 참조하세요.
- AWS CDK – 익숙한 프로그래밍 언어를 사용해 클라우드 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있는 오픈소스 소프트웨어 개발 프레임워크를 제공. AWS CDK는 AWS CloudFormation을 통해 리소스를 안전하고 반복 가능한 방식으로 프로비저닝해요.
요금(Pricing)
Amazon ECS 요금은 컨테이너에 선택한 용량 옵션에 따라 달라져요.
- Amazon ECS pricing – Amazon ECS에 대한 요금 정보.
- AWS Fargate pricing – Fargate에 대한 요금 정보.
관련 서비스
Amazon ECS와 함께 사용할 서비스 Amazon ECS에서 태스크와 서비스를 배포할 때 다른 AWS 서비스를 이용할 수 있어요.
- Amazon EC2 Auto Scaling – 애플리케이션의 로드를 처리할 수 있도록 올바른 수의 Amazon EC2 인스턴스를 확보하는 데 도움.
- Amazon CloudWatch – 서비스와 태스크를 모니터링.
- Amazon Elastic Container Registry – 컨테이너 이미지를 저장하고 관리.
- Elastic Load Balancing – 들어오는 서비스 트래픽을 자동으로 분산.
- Amazon GuardDuty – 컨테이너 인스턴스와 워크로드의 잠재적인 비인가 또는 악의적 사용을 탐지.