참고
AWS 컨테이너 기술
NOTE
컨테이너 솔루션은 굉장히 많지만 추려서 보자!
Docker
AWS에서 Docker 컨테이너를 관리하는 방법
NOTE
•
Amazon ECS
•
Amazon EKS
•
AWS Fargate
◦
서버리스 컨테이너 플랫폼
◦
ECS, EKS 둘 다 작동가능
•
Amazon ECR
◦
Docker Hub와 같이 컨테이너 이미지 저장소
Amazon ECS
NOTE
클러스터에서 도커 컨테이너를 손쉽게 관리하기 위한 컨테이너 관리 서비스!
•
클러스터 ⇒ Task(작업) 또는 서비스로 일컬어지는 컨테이너들의 집합
•
시작 유형
실제 ECS에서 사용하는 방법들
◦
EC2 시작 → EC2 인스턴스를 생성하고 내에서 ECS Agent 실행
◦
Fargate 시작 → 서버리스 서비스, EC2 시작보다 관리하기 좋음
•
ELB, EBS 볼륨, VPC, IAM과 같은 기능과 함께 사용 가능
Amazon ECS Auto Scaling
NOTE
ECS 태스크의 수를 자동으로 늘리고 줄이능 기능!
사용자가 몰려서 CPU 사용량이 증가 ⇒ CloudWatch가 감지 ⇒ 자동확장
•
CPU 사용률, 메모리 사용률, 타겟당 요청 수에 대해 확장 및 축소
•
대상 추적, 단계 스케일링, 예약 스케일링이 있음
•
ECS Service Auto Scaling(Task level) ≠ EC2 Auto Scaling(EC2 Instance level)
•
ECS 용량 공급자
◦
ECS Task를 위한 인프라를 자동으로 프로비저닝 하고 확장하는데 사용
Amazon ECR
NOTE
AWS에 도커 이미지를 저장하고 관리하는데 사용! (Docker Hub 개념)
•
ECR은 ECS와 완전히 통합되어 있고, 이미지는 백그라운드에서 S3에 저장됨
•
ECR에 대한 모든 접근은 IAM에서 제어
•
ECR은 이미지 취약점 스캐닝, 버저닝, 이미지 태그 및 수명주기를 확인
Amazon EKS
NOTE
AWS에 관리형 Kubernetes 클러스터를 실행할 수 있는 서비스
•
Kubernetes는 컨테이너화 한 애플리케이션의 자동 배포, 확장, 관리 지원
•
클라우드 또는 컨테이너 간 마이그레이션 시 활용하기 쉬움
•
EKS의 노드타입
◦
관리형 노드 그룹 - AWS로 노드를 생성하고 관리
◦
자체 관리형 노드 - 사용자 지정 사항이 많은 경우 사용자가 직접 생성
◦
AWS Fargate - 관리안해도 되고, EKS에서 컨테이너만 실행시키면 됨
Amazon App Runner
NOTE
완전 관리형 서비스로 규모에 따라 웹 애플리케이션 API 배포를 돕는 서비스!
•
소스 코드나 컨테이너 이미지로 원하는 구성을 기본 설정을 완료하면 빌드 및 배포가 자동으로 진행!
•
인프라 경험 없이도 빠르게 배포할 수 있음!