Docker
도커(Docker) 는 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다. 온프레미스에서 aws 클라우드로 어플리케이션을 들어올리고 옮길 때 사용한다.
온프레미스(On-premise)는 원격환경에서 서버를 운영하는 클라우드와는 대비되는 개념으로 기업이 서버를 자체적으로 보유하고 직접 설치 및 운영하는 방식
컨테이너는 실행에 필요한 모든 파일을 포함한 전체 실행(runtime) 환경에서 애플리케이션을 패키징하고 격리할 수 있는 기술

도커 이미지는 어디에 저장될까?
- Docker Hub(https://hub.docker.com)
- Amazon ECR(Elastic Container Registry)

Amazon ECS(Elastic Container Service)
- EC2 Launch Type: ECS 클러스터를 사용한다면 인프라를 직접 프로비전하고 유지해야 한다.

IAM Roles for ECS

Fargate Launch Type
Amazon ECS의 AWS Fargate는 가상 머신의 클러스터를 프로비저닝, 구성 또는 확장할 필요 없이 컨테이너를 실행합니다.

Load Balancer Integrations

EFS( Elastic File System)
EFS 는 스토리지 용량 및 성능을 프로비저닝하거나 관리할 필요 없이 파일 데이터를 공유하는 데 도움이 되는 서버리스 방식의 완전 탄력적인 파일 스토리지를 제공하도록 설계되었다.

ECS Solutions Architectures
ECS tasks invoked by Event Bridge

ECS tasks invoked by Event Bridge Schedule
- 이벤트브릿지에서 1시간마다 EC2 작업을 실행하기로 규칙을 스케쥴링함.
- 1시간마다 Fargate 클러스터에 새 작업이 생성됨.
- 도커 컨테이너는 S3 에 있는 파일에 대한 일괄 처리를 1시간마다 할 수 있음.
- 모든 아키텍처가 서버리스임.

ECS - SQS Queue Example
- 자동 스케일링 덕분에 SQS 큐에 메시지가 더 많이 들어올수록 ECS 작업을 더 많이 실행할 수 있음.

ECS - Intercept Stopped Tasks using EventBridge
- 이벤트 브릿지를 사용할 때 ECS 클러스터 내에서 이벤트를 가로채기.

Amazon ECR(Elastic Container Registry)
- 개발자가 컨테이너 이미지 및 아티팩트를 손쉽게 공유 및 배포할 수 있게 해 주는 완전관리형 컨테이너 레지스트리

Amazon EKS(Elastic Kubernetes Service)
- AWS 클라우드와 온프레미스 데이터 센터에서 Kubernetes를 실행하는 데 사용되는 관리형 Kubernetes 서비스
- 클라우드에서 Amazon EKS는 컨테이너 예약, 애플리케이션 가용성 관리, 클러스터 데이터 저장 및 다른 주요 작업을 담당하는 Kubernetes 컨트롤 플레인의 가용성과 확장성을 관리

AWS App Runner
AWS App Runner는 컨테이너식 웹 애플리케이션을 자동으로 빌드 및 배포하고, 암호화를 통해 트래픽 로드 밸런싱을 수행하고, 트래픽 요구 사항에 맞게 확장하고, 프라이빗 Amazon VPC에서 서비스에 액세스하고 다른 AWS 애플리케이션과 통신하는 방법을 구성할 수 있게 합니다.