AWS 컨테이너 ECS, Fargate, ECR과 EKS

컨테이너

Docker

Docker on an OS

도커 이미지가 저장되는 곳

Docker vs Virtual Machines

도커를 실행하는 방법

AWS에서 Docker 컨테이너를 관리하는 방법

Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Kubernetes Service (Amazon EKS)

AWS Fargate

Amazon ECR

Amazon ECS(Elastic Container Service)

ECS 클러스터에 ECS 태스크를 실행하는 것

EC2 런치타으로 ECS 클러스터를 실행하는 경우 프로비저닝과 인프라(EC2 인스턴스들)를 직접 관리해야한다

EC2 Launch Type

Fargate Launch Type

IAM Roles for ECS (두가지 차이점을 알아둬야 함)

IAM Task Role은 AWS 서비스의 API를 사용할 수 있도록 함

EC2 Instance Profile(EC2 런치타입 해당)

ECS Task Role (EC2 and Fargate Launch Type 모두 해당)

로드밸런서와 통합

EC2와 Fargate 유형 마찬가지로 구성된다

여러 ECS 태스크들이 ECS 클러스터에 포함

데이터 지속성(EFS)

컨테이너가 유지되기 위해선 Data Volume이 필요하다

실습

ECS 클러스터 타입을 Fargate와 EC2 런치타입을 동시에 생성할 수 있다.

이후 태스크를 정의할 때 EC2 인스턴스와 Fargate 형식을 통해 정의 가능

실습은 컨테이너를 실행시킬 때 Fargate 방식을 통해 간단하게 실행시킴

ECS Auto Scaling

ECS Auto Scaling(태스크 레벨) ≠ EC2 Auto Scaling(인스턴스 레벨)

오토 스케일링이 필요없거나 백엔드에 EC2 인스턴스가 없다면 Fargate가 유용 * 서버리스

EC2 Launch Type – Auto Scaling EC2 Instances

ECS tasks invoked by Event Bridge

이벤트 브릿지로 작동하는 ECS 태스크

ECS tasks invoked by Event Bridge Schedule

Amazon ECR(Elastic Container Registry)

Amazon EKS(Elastic Kubernetes Service)

Amazon EKS – Node Type

Managed Node Groups(관리형 노드 그룹)

Self-Managed Nodes

AWS Fargate

데이터볼륨

실습

프리티어에 적용되지 않아 상당한 비용 청구 주의

AWS App Runner

실습

vercel처럼 배포가 가능하고 여기에 AWS 서비스까지 연결할 수 있다