AWS 컨테이너

김파란·2025년 2월 20일

AWS

목록 보기
9/12

Amazon ECS

  • Elastic Container Service
  • 실행유형이 두가지이다

1. EC2 Launch Type

  • AWS에서 도커 컨테이너를 실행하면 ECS 클러스터에 ECS 태스크를 실행한다
    • 인프라를 직접 프로바이징해야 한다
    • 각각 ECS 에이전트를 실행해야 한다
    • ECS 에이전트가 EC2 인스턴스를 ECS 서비스와 지정된 ECS 클러스터에 등록한다
    • 이후에 ECS 태스크를 수행하기 시작하면 AWS가 컨테이너를 실행하거나 멈춘다

2. Fargate Launch Type

  • 인프라를 프로비저닝하지 않아 관리할 EC2 인스턴스가 없어 서버리스라고 한다
  • ECS 태스크를 정의하는 태스크 정의만 생성하면 필요한 CPU나 RAM에 따라 ECS 태스크를 AWS가 대신 실행한다
    • 새 도커 컨테이너를 실행하면 그냥 실행된다
    • 작업을 위해 백엔드에 EC2 인스턴스가 생성될 필요도 없다
  • 확장하려면 간단하게 태스크만 늘리면 된다

3. Data Volumes (EFS)

  • 데이터 볼륨이 필요하며 여러 종류가 있지만 EFS가 자주 사용된다
  • EC2 태스크에 파일 시스템을 마운트해서 데이터를 공유하려고 할 때 EFS를 사용한다
    • 네트워크 파일 시스템이라 EC2, Fargate 둘 다 호환되며 EC2 태스크에 직접 마운트할 수 있다
  • 어느 AZ에 실행되는 태스크든 EFS에 연결되어 있다면 데이터를 공유할 수 있고 원한다면 파일 시스템을 통해 다른 태스크와 연결할 수 있다
    • 따라서 Fargate + EFS로 파일 저장을 하는 게 제일 좋다

4. 오토 스케일링

  • 세 개의 지표에 대해 확장이 가능하다
    • CPU 사용량, 메모리 사용율, ALB 타겟당 요청 수
  • Target Tracking: 특정 타겟을 추적하는 대상 추적 스케일링
  • Step Scaling: 지정된 CloudWatch 알람을 기반으로 확장(스케일링)한다.
  • Scheduled Scaling: 날짜, 시간기반으로 스케일링한다
  • ECS 서비스 오토 스케일링(태스크레벨)과 EC2 오토 스케일링(EC2 인스턴스 레벨)은 다르다

ECR

  • Elastic Container Registry
  • AWS에 도커 이미지를 저장하고 관리하는 데 사용된다
  • 두 가지 옵션이 있다
    • 계정에 한해 이미지를 비공개로 저장한다 (여러 계정 설정 가능)
    • 퍼블릭 저장소를 이용할 수 있다
  • ECS와 완전히 통합되어 있고 이미지는 백그라운드에서 S3에 저장된다
  • ECR은 단순히 저장하는데 그치지 않고 이미지의 취약점 스캐닝, 버저닝 등을 지원한다

EKS

  • Elatic Kubernetes Service
  • AWS에 관리형 쿠버네티스 클러스터를 실행할 수 있는 서비스이다

AWS App Runner

  • 완전관리형 서비스로 규모에 따라 웹 애플리케이션, API 배포를 돕는다
  • 인프라가 필요없고 소스 코드, 컨테이너 등으로 시작해 누구나 배포할 수 있다
    • CPU수, 컨테이너 메모리 크기, 오토 스케일링 여부만 설정하면 자동으로 이뤄진다
    • App Runner 서비스가 웹 앱을 빌드하고 배포한다
  • 오토 스케일링, 가용성, 로드 밸런싱, 암호화, VPC 접근, 캐시 등 장점이 많다
  • 빨리 배포해야 하는 웹 앱, API, MSA에 쓰기 좋다

0개의 댓글