Amazon Elastic Container Service(Amazon ECS)란 무엇인가요?
Amazon Elastic Container Service(Amazon ECS)란 무엇인가요?
Amazon Elastic Container Service(Amazon ECS)는 컨테이너화된 애플리케이션을 손쉽게 배포·관리·확장할 수 있게 해주는 완전 관리형 컨테이너 오케스트레이션 서비스입니다. 완전 관리형 서비스인 만큼 AWS의 구성·운영 모범 사례가 기본으로 내장되어 있고, Amazon Elastic Container Registry 같은 AWS 도구뿐 아니라 Docker 같은 서드파티 도구와도 통합되므로 팀이 환경 관리보다 애플리케이션 개발에 집중할 수 있어요.
출처: 문서
본문
용어와 구성 요소
Amazon ECS에는 세 가지 계층이 있습니다.
- Capacity(용량) — 컨테이너가 실행되는 인프라입니다.
- Controller(컨트롤러) — 컨테이너에서 실행되는 애플리케이션을 배포하고 관리합니다.
- Provisioning(프로비저닝) — 스케줄러와 상호작용하여 애플리케이션과 컨테이너를 배포·관리할 때 사용하는 도구입니다.
다음 다이어그램은 Amazon ECS의 계층을 보여줍니다.
capacity 계층은 컨테이너가 실행되는 인프라입니다. 사용 가능한 capacity 옵션은 다음과 같습니다.
- Amazon ECS Managed Instances — Amazon ECS의 컴퓨팅 옵션으로, 다양한 Amazon EC2 인스턴스 유형에서 컨테이너 워크로드를 실행하면서 인프라 관리는 AWS에 맡길 수 있게 해줍니다. GPU 가속, 특정 CPU 아키텍처, 높은 네트워크 성능, 특수 인스턴스 유형 같은 특정 컴퓨팅 기능에 접근할 수 있고, AWS가 기본 인프라의 프로비저닝·패치·확장·유지보수를 처리합니다.
- AWS 클라우드의 Amazon EC2 인스턴스 — 인스턴스 유형과 인스턴스 수를 직접 선택하고 capacity를 관리합니다.
- AWS 클라우드의 서버리스 — Fargate는 서버리스이며 사용한 만큼 지불하는(pay-as-you-go) 컴퓨팅 엔진입니다. Fargate를 쓰면 서버를 관리하거나 capacity 계획을 세우거나 보안을 위해 컨테이너 워크로드를 격리할 필요가 없어요.
- 온프레미스 가상 머신(VM) 또는 서버 — Amazon ECS Anywhere는 온프레미스 서버나 VM 같은 외부 인스턴스를 Amazon ECS 클러스터에 등록할 수 있게 지원합니다.
Amazon ECS 스케줄러는 애플리케이션을 관리하는 소프트웨어입니다.
기능
Amazon ECS는 다음과 같은 고수준 기능을 제공합니다.
- Task definition(태스크 정의) — 애플리케이션의 청사진(blueprint)입니다.
- Cluster(클러스터) — 애플리케이션이 실행되는 인프라입니다.
- Task(태스크) — 배치 작업처럼 작업을 수행한 뒤 중지되는 애플리케이션입니다.
- Service(서비스) — 오래 실행되는 stateless 애플리케이션입니다.
- Account Setting(계정 설정) — 기능에 대한 접근을 허용합니다.
- Cluster Auto Scaling — Amazon ECS가 클러스터에 등록된 Amazon EC2 인스턴스의 확장을 관리합니다.
- Service Auto Scaling — Amazon ECS가 서비스의 원하는 태스크 수를 자동으로 늘리거나 줄입니다.
프로비저닝
Amazon ECS를 프로비저닝하는 방법은 여러 가지가 있습니다.
- AWS Management Console — Amazon ECS 리소스에 접근하는 데 사용하는 웹 인터페이스를 제공합니다.
- AWS Command Line Interface(AWS CLI) — Amazon ECS를 포함한 광범위한 AWS 서비스용 명령을 제공합니다. Windows, Mac, Linux에서 지원됩니다.
- AWS SDKs — 언어별 API를 제공하고 서명 계산, 요청 재시도 처리, 오류 처리 같은 많은 연결 세부 사항을 처리합니다.
- AWS CDK — 익숙한 프로그래밍 언어로 클라우드 애플리케이션 리소스를 모델링하고 프로비저닝하는 데 사용하는 오픈소스 소프트웨어 개발 프레임워크를 제공합니다. AWS CDK는 AWS CloudFormation을 통해 리소스를 안전하고 반복 가능한 방식으로 프로비저닝합니다.
요금
Amazon ECS 요금은 컨테이너에 선택하는 capacity 옵션에 따라 달라집니다.
- 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 — 컨테이너 인스턴스와 워크로드의 잠재적 무단 사용이나 악성 사용을 탐지합니다.
더 알아보기 (Learn more)
- AWS 서비스의 더 자세한 내용은 AWS 공식 문서를 참고해 주세요.