[AWS] Amazon 컨테이너 서비스 이해 (ECR, ECS)
컨테이너 서비스란 소프트웨어 응용 프로그램을 실행하기 위한 가상화 기술이다. AWS는 이러한 컨테이너 서비스를 편리하게 사용할 수 있도록 환경을 제공해준다.
Sep 13, 2024
✅ 1. 컨테이너 서비스란?주요 특징✅ 2. ECR이란? 주요 특징✅ 3. ECS란?주요 기능주요 개념ECS cluster ArchitectureTask Definitions & TaskSERVICE
✅ 1. 컨테이너 서비스란?
소프트웨어 응용 프로그램을 실행하기 위한 가상화 기술
컨테이너는 애플리케이션에 해당하는 모든 종속성을 패키징 실행할 수 있는 독립적인 단위이다.
가장 유명한 컨테이너 서비스는
Docker
, Container.d
가 있다.주요 특징
- 일관성
- 이식성
→ 컨테이너 안에 애플리케이션의 종속성이 모두 포함되어 어디서든 실행이 가능하다.
- 확장성
- 유연성
→ 여러 개의 컨테이너를 쉽게 확장하거나 줄일 수 있다. (스케일아웃, 스케일인)
✅ 2. ECR이란?
Elastic Container Registry의 약자로, Amazon에서 제공하는 관리형 컨테이너 이미지 저장소이다. ECR은 Docker 컨테이너 이미지를 저장하고 관리하기 위한 서비스를 제공한다.
주요 특징
- 비공개 저장소와 공개 저장소 지원 - AWS 자격증명 및 권한 모델
- 컨테이너 이미지 업로드
- 버전 관리
- ECS에서 사용
- EKS에서 사용
✅ 3. ECS란?
Amazon Elastic Container Service의 약자로, 컨테이너 오케스트레이션 서비스이다. ECS는 Docker 컨테이너를 실행하고 관리하기 위한 완전 관리형 서비스를 제공한다.
애플리케이션을 컨테이너로 패키징하여 실행하고, 컨테이너 인스턴스의 확장과 관리를 자동화할 수 있다.
ECS는 클러스터라는 개념을 사용하여 여러 개의 컨테이너 인스턴스를 그룹화하고, 사용자가 필요한 수만큼 컨테이너 인스턴스를 확장할 수 있도록 한다.
또한, 컨테이너 인스턴스의 상태를 모니터링하고, 장애가 발생하면 자동으로 복구할 수 있는 기능을 제공한다.
주요 기능
- 컨테이너 인스턴스의 확장과 관리
- 컨테이너 자동화
- 컨테이너 모니터링
- 장애 발생 시 자동 복구
- 단일 EC2 인스턴스 방식과 AWS Fargate라는 서버리스 방식 2개로 실행 가능
- AWS 다른 서비스와 연계 가능
주요 개념
- ECS cluster Architecture
- Task Definitions & Task
- Service
ECS cluster Architecture
ECS 클러스터를 만들면, ECS 클러스터 설정에 의해 EC2 베이스로 클러스터 인스턴스를 자신이 설정한 개수만큼 ECS Cluster Instance가 생성된다.
ECS 클러스터를 생성하게 되면, EC2 안에 도커 환경이 구성되어 있고, ECS 컨테이너 Agent가 컨테이너를 관리한다.
이 Docker 안에 서비스를 올릴 수 있는 방식은 TASK와 SERVICE 2가지이다.
Task Definitions & Task
TASK는 TASK Definition에서 정의된대로 배포된 컨테이너셋을 TASK라 부른다. TASK에는 1개 이상의 컨테이너가 포함되며, ECS에서 컨테이너를 실행하는 최소 단위이다.
TASK는 클러스터에 속한 컨테이너 인스턴스에 배포하게 되고, 여러 컨테이너 인스턴스에 배포할 수도 있다.
SERVICE
SERVICE는 TASK보다 한 단계 더 큰 개념이며, TASK들의 Life Cycle을 관리한다. 각 TASK는 각자 다른 SERVICE이며, TASK를 클러스터에 몇 개를 배포할 것인지 결정하고 실제 TASK들을 외부에 서비스하기 위해 ELB에 연동되는 부분을 관리한다.
만약, 실행 중인 TASK가 모종의 이유로 중지되면, 이것을 자동으로 감지하여 새로운 TASK를 클러스터에서 배포하는 고가용성에 대한 정책도 SERVICE에서 관리한다. SERVICE는 TASK를 오토스케일링하고 로드밸런싱하는 역할이라 생각하면 된다.
Share article