AWS ECS는 컨테이너화된 애플리케이션을 AWS 환경에서 손쉽게 배포, 관리, 확장할 수 있도록 지원하는 오케스트레이션 서비스이다. 배포 모델로는 서버를 직접 관리하는 EC2 방식과 서버리스 방식인 AWS Fargate를 선택할 수 있다.
| 특징 | 설명 |
|---|---|
| 운영 부담 최소화 | Fargate 사용 시, 서버 관리가 필요 없는 서버리스 방식으로 컨테이너를 운영해 관리 부담 감소 |
| 높은 확장성 | Auto Scaling과 ALB 연동을 통해 트래픽 변화에 따라 자동으로 확장/축소가 가능하며 갑작스러운 트래픽 급증에도 유연한 대응 가능 |
| 고가용성 | 여러 가용 영역에 컨테이너를 분산 배포해 장애 발생 시에도 서비스 중단을 방지하고 안정적인 운영 보장 |
| 비용 효율성 | Fargate를 사용하면 컨테이너가 실행되는 동안에만 비용을 지불하고 중단에 유연한 작업의 경우 Spot 인스턴스를 활용해 최대 90%까지 비용 절감 가능 |
| 마이크로서비스 아키텍처 지원 | 대규모 모놀리식 애플리케이션을 여러 개의 작은 독립적인 서비스로 분리해 각 서비스의 독립적인 배포와 유연한 개발 가능하도록 함 |
EC2 인스턴스를 프로비저닝하거나 관리할 필요없이 컨테이너를 바로 실행할 수 있는 완전 관리형 서비스 컴퓨팅 엔진이다.
| 특징 | 설명 |
|---|---|
| 서버리스 및 관리 부담 없음 | - 사용자는 컨테이너 애플리케이션 자체에만 집중하면 됨 - 서버 인프라, 운영체제 관리 등은 AWS가 관리 |
| 자동 확장 및 비용 최적화 | - 애플리케이션 요구사항에 따라 리소스 자동 할당/확장 - 사용한 vCPU와 메모리, 실행 시간에 대해서만 비용을 지불하기에 효율적인 비용 관리 가능 |
| 다양한 워크로드 지원 | 웹 애플리케이션, 데이터 처리 등 다양한 유형의 컨테이너화된 워크로드 지원 |
| Fargate Spot 활용 | 중단되어도 괜찮은 유연한 작업이나 불규칙한 트래픽 처리에 Fargate Spot을 사용하면 일반 Fargate 대비 저렴한 가격으로 사용 가능 |
개발자가 ECR에 컨테이너 이미지를 보관하면 ECS가 ECR의 이미지를 가져와 실행한다.

ECR은 AWS에서 제공하는 완전 관리형 프라이빗 Docker 컨테이너 레지스트리이다. 개발자가 Docker 컨테이너 이미지를 손쉽게 저장, 관리, 공유하고 배포할 수 있게 해주는 서비스이다.
Dockerfile을 이용해 애플리케이션 코드를 컨테이너화된 Docker 이미지로 만듦Task Definition에 ECR에 저장된 이미지 경로를 지정한다. ECS 서비스는 이 정의를 바탕으로 ECR에서 해당 이미지를 가져와 Fargate 또는 EC2에서 컨테이너를 실행한다.
Cluster
ECS 리소스들을 그룹으로 묶는 컨테이너 실행 환경의 최상위 단위를 말한다.
Service
클러스터 안에서 Task가 항상 안정적으로 원하는 개수만큼 실행되도록 관리하고 감독한다. Task를 지속적으로 실행하고 오토스케일링, 로드밸런싱을 담당한다.
Task
실제로 일을 하는 실행 단위이다. 즉, 하나 이상의 컨테이너를 그룹으로 묶은 것이다.
Container
애플리케이션이 실행되는 가장 단위이다.
ECS Anywhere는 AWS 클라우드뿐만 아니라 기업이 자체적으로 운영하는 온프레미스 데이터센터의 서버까지 ECS 클러스터에 포함시켜 통합 관리할 수 있게 해주는 기능이다.
정적 콘텐츠와 동적 콘텐츠를 분리해 효율적이고 확장성 높은 웹 서비스를 구성하는 표준 아키텍처이다.
불규칙하고 예측 불가능한 머신러닝 추론 요청을 효율적으로 처리하는 패턴이다.

테라바이트(TB) 급의 대용량 비디오 인코딩이나 트랜스코딩 작업처럼 특정 시간에 엄청난 컴퓨팅 자원이 필요하지만 계속 실행될 필요가 없는 작업에 Fargate가 유용하다.

AWS는 클라우드를 구성하는 핵심 글로벌 인프라를 책임진다.
글로벌 인프라
전 세계에 위치한 데이터 센터(리전, 가용 영역)의 물리적인 보안(출입 통제, 감시 등)과 운영을 책임진다.
기초 서비스
컴퓨팅, 스토리지, 데이터베이스, 네트워킹과 같은 핵심 서비스의 기반이 되는 하드웨어와 소프트웨어를 관리한다.
관리형 서비스 패치
RDS나 Fargate와 같이 AWS가 관리하는 서비스의 경우, 기본 운영 체제(OS)나 소프트웨어의 보안 패치를 AWS가 직접 적용해 준다.
AWS Outposts
고객사에 설치되는 Outposts 랙의 내부 하드웨어 장비를 관리하고 유지보수한다.
또한 고객은 AWS가 제공하는 인프라 위에서 자신이 직접 구성하고 배포하는 모든 것에 책임이 있다.
데이터 보안
클라이언트 측 및 서버 측 데이터 암호화, 네트워크 트래픽 보호를 직접 구성해야 한다.
플랫폼 및 애플리케이션 관리
ECS 클러스터에 배포한 애플리케이션의 보안 패치, 로그 관리, 모니터링 설정은 고객의 몫이다.
네트워크 및 방화벽 구성
VPC 내 서브넷, 보안 그룹, 네트워크 ACL 등 네트워크 접근 제어 규칙을 직접 설정하고 관리해야 한다.
자격 증명 및 액세스 관리
IAM을 통해 누가 어떤 리소스에 접근할 수 있는지 권한을 관리해야 한다.
AWS Outposts
Outposts 랙이 설치되는 데이터 센터의 물리적 보안과 안정적인 전력 및 네트워크 연결을 제공할 책임이 있다.
AWS에서 Kubernetes를 쉽고 안정적으로 실행할 수 있도록 지원하는 완전 관리형 쿠버네티스 서비스이다. 복잡한 쿠버네티스 클러스터의 설치와 운영을 AWS가 대신 처리해주어 사용자는 애플리케이션 배포에만 집중할 수 있게 해준다.
EKS의 역할은 컨테이너화된 애플리케이션을 배포, 관리, 확장하기 위한 안정적은 쿠버네티스 클러스터 환경을 제공하는 것이다.
원래 쿠버네티스를 직접 설치하고 운영하려면 컨트롤 플레인이라는 관리자 그룹의 고가용성, 보안 패치, 버전 업그레이드 등을 모두 직접 신경써야 한다. EKS는 이 컨트롤 플레인의 모든 관리를 AWS가 대신 해주므로, 사용자는 운영 부담없이 강력한 쿠버네티스 기능을 활용할 수 있다.
EKS는 EC2 인스턴스를 직접 관리하는 방식 외에, AWS Fargate를 사용해 서버리스 방식으로도 컨테이너를 실행할 수 있다.
서버리스 실행
EC2 서버를 생성하거나 관리할 필요없이 쿠버네티스의 기본 실행 단위인 Pod 단위로 리소스를 할당하고 실행한다.
최소한의 운영 오버헤드
Fargate를 사용하면 워커 노드의 운영체제, 보안 패치, 용량 관리 등을 전혀 신경 쓸 필요가 없다.
보안이 매우 중요한 환경에서는 EKS 클러스터를 인터넷에서 접근할 수 없도록 격리해야 한다.
프라이빗 전용 EKS 클러스터
클러스터의 API 서버 엔드포인트를 프라이빗 전용으로 설정해 VPC 내부에서만 접근 가능하도록 제한할 수 있다.
Interface VPC Endpoint
프라이빗으로 구성된 클러스터에서 워커 노드들이 컨트롤 플레인과 통신해야할 때, 인터넷을 거치지 않고 VPC 내부에 생성된 VPC 엔드포인트를 통해 안전하고 비공개적으로 통신한다.
| 종류 | 설명 |
|---|---|
| Amazon VPC CNI Plugin | - 플러그인을 통해 쿠버네티스의 실행 단위인 Pod이 VPC 네트워크와 실제 IP 주소를 할당받음 - 덕분에 Pod은 VPC 내 다른 AWS 서비스와 EC2 인스턴스처럼 통신 가능 |
| VPC 엔드포인트 | 인터넷을 거치지 않고 AWS 내부망을 통해 다른 AWS 서비스와 안전하게 통신할 수 있도록 만들어주는 통로 |
Pod이 다른 AWS 리소스에 접근할 때 보안을 위해 최소한의 권한만 부여하는 것이 매우 중요하다.
| 종류 | 설명 |
|---|---|
| HPA (Horizontal Pod Autoscaler) | CPU 사용량 같은 지표를 기준으로 Pod의 개수를 자동으로 늘리거나 줄임 |
| Cluster Autoscaler | Pod을 실행할 공간이 부족해지면 EC2 노드 자체의 수를 자동으로 늘려줌 |
영구 스토리지
EFS(Elastic File System)은 여러 Pod이 동시에 접근하고 공유할 수 있는 네트워크 파일 시스템을 제공한다. Pod이 사라져도 데이터가 보존되어야 하는 상태 저장 애플리케이션에 유용하다
모니터링
| 종류 | 설명 |
|---|---|
| CloudWatch Container Insights | EKS 클러스터의 CPU, 메모리 사용량 같은 성능 지표와 로그를 통합적으로 수집해 대시보드로 시각화해줌 |
| AWS X-RAY | 마이크로서비스 아키텍처에서 서비스 간의 요청 흐름을 추적해 성능 병목 지점을 쉽게 찾아낼 수 있도록 도와줌 |