애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
도커 관리를 위한 Amazon 플랫폼
aws에서 도커컨테이너 실행방법 = ECS클러스터에서 ECS 태스크 실행
AWS 리소스에 대한 액세스를 안전하게 제어 가능
EC2 인스턴스 프로필(EC2 Lanch Type에서만 가능)
ECS는 EC2 인스턴스 프로필을 이용해 ECS 서비스에 API 호출
ECS클러스터에서 EC2 인스턴스가 실행될때, 인스턴스들이 AWS API 호출을 할 수있도록 권한을 부여
사용예시)
ECS 에이전트는 Secrets Manager 또는 SSM Parameter Store에서 민감한 데이터를 참조하기 위해 API 호출을 수행
ECS Task Role
ECS 태스크 내에서 실행되는 컨테이너가 AWS 리소스에 액세스 할 수있도록 권한을 부여
각각의 태스크 마다 고유 역할을 갖는다.
ECS 작업 자체에서 사용되는 IAM역할로, 컨테이너가 S3, SQS등과 같은 다른 AWS 서비스를 호출하려고 할때 사용한다.
사용예시)
ALB 로 사용, 많은 경우 사용됨
NLE(Network Load Balancer) 는 처치량이 많고 고성능이 필요할때 권장됨, 또는 AWS Private Link와 함께 사용하는 경우
CLB 권장하지 않음
ECS에서 데이터를 지속적으로 저장하기 위해서는 데이터 볼륨이 필요하다.
EFS는 네트워크 파일 시스템으로 EC2, Fargate와 호환되며, ECS 태스크에 파일 시스템을 마운트하여 데이터를 공유하는데 사용 할 수 있다. → ECS 클러스터에서 실행되는 모든 도커 컨테이너는 동일한 파일 시스템에 접근 할 수있다.
EFS는 여러 가용영역(AZ)에 걸쳐서 데이터를 공유할 수 있기때문에 EFS에 연결된 ECS 태스크는 모든 AZ에서 데이터를 공유할수 있으며 통신할수있다.
EFS는 서버리스 서비스이므로 서버를 관리할필요없고 사용량에 따라 비용을 지불하면 된다.
: EFS를 이용해 다중AZ 공유 스토리지를 공유 할 수 있다.
ECS 클러스터에서 애플리케이션을 실행하기로 하였으나 도커 컨테이너가 웹사이트 파일, 이미지, 비디오 등과 같은 동일한 웹사이트 콘텐츠에 액세스 하기를 원하는 경우 사용한다.
AWS Application Auto Scaling 은 자동으로 태스크의 수를 증가 감소시킨다.
CPU 사용률, 메모리 사용률, ALB 타겟당 요청수에 따라 조절됨
ECS Service Auto Scaling 자동 스타일링 (tack level) ≠ EC2 Auto Scaling (EC2 instance Level)
쿠버네티스 관리 플랫폼
쿠버네티스 : 컨테이너화된 도커 애플리케이션으로 오픈소스이며, 자동배포, 확장 및 관리가 가능하다.
ECS의 대안이 될 수 있으나, API 가 다르다. 쿠버네티스는 오픈소스이며 표준을 제공한다.
작업자모드로의 EC2
EC2를 사용하여 ECS 클러스터에서 컨테이너를 실행하는 방식
서버리스 컨테이너로 Fargate
서버리스모델로, 사용자가 인프라를 관리할 필요없이 컨테이너를 실행, 모든 인프라는 AWS에서 관리한다.
AWS에서 쿠버네티스를 관리하고 싶을 때(이미 온프레미스나 클라우드에서 쿠버네티스를 사용하고 있는 경우)
쿠버네티스는 cloud-anostic 하다. → 클라우드 서비스에 종속되지 않고 다양한 클라우드 환경에서 사용가능 AWS, Google, AZURE 등과 같은 곳에서 사용가능
⭐ Pods는 아마존 쿠버네티스와 관련이 있음
Managed Node Groups(관리형 노드 그룹)
EKS에서 관리하는 EC2 인스턴스 그룹
Self-managed Nodes(자가 관리 노드)
사용자가 직접관리하는 EC2 인스턴스, 사용자가 EC2 인스턴스를 직접 프로비저닝하고 쿠버네티스 클러스터에 연결
커스터마이징이 필요할때 사용한다.
Fargate
서버리스 컴퓨팅 엔진으로, EC2 인스턴스를 프로비저닝하거나 관리할 필요없이 컨테이너를 실행
EC2 직접관리 하지 않고도 쿠버네티스 pod를 실행할 수 있음
StorageClass 매니페스트를 지정
컨테이너 스토리지 인터페이스(CSI) 호환 드라이버를 활용한다.
EKS는 EBS,EFS, FSx for Lustre, FSx for NetApp ONTAP을 활용해 컨테이너가 사용하는 데이터를 저장하고 공유한다.
Amazon 자체의 서버리스 컨테이너 플랫폼
ECS, EKS와 작동함
인프라를 프로비저닝 할수없기때문에 관리할 ec2가 없음
단지 작동할 태스크를 지정해주면 CPU/RMA에 따라서 ECS 태스크를 실행하게 된다.
크기를 확장하고 싶다면 단지 태스크의 수를 늘려주면된다. (EC2 확장이 필요없음)
⭐ 시험에서 서버리스인 경우 Fargate로 사용
사용예시) AWS로 마이그레이션하려는 온프레미스 호스팅 도커 기반 애플리케이션이 여러개 있는데 인프라를 프로비저닝하거나 관리하고싶지는 않은 경우! 파게이트를 이용한다. ECS를 사용하면 인프라를 운영 관리해야함
Elastic Container Registry
aws에 있는 도커 이미지를 저장하고 관리함
비공개 / 공개 옵션
ECR에서 도커 이미지를 가져와 ECS 클러스터안에 있는 EC2 인스턴스에서 실행
자동확장, 로드밸런싱 수행
데이터 베이스 연결, 캐시, 메시지 대기열 연결
AWS를 처음 이용하는 개발자에서 간편하고 유용