1. ECS
: 컨테이너 오케스트레이션 툴
: ECR에 Docker image 빌드 → ECS 작업 정의 생성 → ECS의 서비스 생성 하는 원리
: ECS 자체에 대한 추가 과금은 없음. 시작 유형에 따라 과금 방식 상이
: 비용 관련 https://containersonaws.com/introduction/ec2-or-aws-fargate/
⁕ 시작 유형 (Fargate, EC2, External)
- Fargate : 컨테이너를 배포하고 관리할 수 있는 서버리스 컴퓨팅 엔진
: EC2 인스턴스 없이 직접 컨테이너 실행
: 초당 CPU 코어 수와 메모리 기가바이트를 기반으로 요금 청구
(컨테이너 이미지 다운로드를 시작한 시점부터 ECS Task / EKS 포트가 종료될 때까지)
- EC2 : 컨테이너를 배포하고 관리할 수 있는 클라우드 컴퓨팅 플랫폼
: 컨테이너 실행을 위한 자체 EC2 인스턴스 클러스터 배포 및 관리
: 기본 EC2 인스턴스 비용을 기준으로 요금 청구
2. 작업(Task)
: ECS에서 컨테이너를 구동하는 최소 단위
: N개의 컨테이너 묶음을 하나의 Task로 지정 가능
⁕ 작업 정의
: 애플리케이션을 구성하는 컨테이너를 설명하는 텍스트(JSON)
: 컨테이너를 실행할 때 사용하는 환경변수와 실행 옵션들을 포함
: docker-compose.yaml과 비슷한 역할을 하는 리소스
: 클러스터에 종속적이지 않으므로, 한 번 정의하고 나면 어떤 클러스터에서든 실행할 수 있음
⁕ 작업 정의시 들어가는 내용
- 시작 유형 호환성
- 사용할 컨테이너 이미지
- 애플리케이션을 위해 개방할 포트
- CPU/메모리 리소스
- 작업의 컨테이너에 사용할 데이터 볼륨
3. 서비스
: 클러스터에서 지정된 수의 작업을 동시에 실행하고 관리할 수 있게 해주는 구성
: Task를 포함하며, Task와 관련된 Auto Scaling과 Load Balancing을 관리