[2023 기능대회 준비] 7. ECS

Yohan_05·2023년 3월 21일
0
post-thumbnail

ECS란?

ecs 는 aws에서 제공하는 완전관리형 컨테이너 오케스트레이션 서비스임.

컨테이너 오케스트레이션 서비스 : 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화해주는 유형

ECS의 구성

  • cluster
  • service
  • Task Definition
  • Task
  • Container Instance

로 이루어져있다.

Cluster

  • ECS의 가장 기본적인 단위. Task 또는 Service의 논리적인 그룹임.
  • 기본적으로 컴퓨팅 자원을 포함하지 않으며 ECS에서 컨테이너를 실행시키기 위해선 Container Instance가 Cluster에 포함되어야함.
  • Cluster는 Container Insatnace를 조작할 수 있는 권한을 가지고 있으며, Cluster에서 Service나 Task를 실행하면 조건을 만족하는 Container Instance를 찾아 해당 Instance에 컨테이너를 실행함.
  • AWS Fargate(serverless)를 사용하면 Container Instance없이 컨테이너를 실행할 수 있음.

Service

  • Task 를 지속적으로 관리하는 단위.
  • service는 cluster 내에서 지정된 Task 수만큼 동시에 실행하고 관리할 수 있음.
  • 또한 ELB와 연동하여 실행중인 Task를 찾아 자동으로 ELB에 등록 및 제거하는 Auto Scaling 역할도 담당함.

Task Definition

  • Task Definition은 Task를 실행하기 위한 설정을 저장하고 있는 단위임.
  • Task Definition은 컨테이너 별로 실행하고자 하는 이미지를 지정할 수 있으며, CPU나, Memory와 같은 정보도 지정할 수 있고, 하나 혹은 둘 이상의 Task Definition을 포함할 수 있음.
  • Task Definition은 Cluster에 종속되어있지 않음.

Task

  • Task는 ecs의 최소 실행 단위로 하나 이상의 컨테이너 묶음임.
  • Task를 실행하는 방법에는 Taskdefinition으로 직접 Task를 실행하는 방법과 service를 정의하는 방법이 있음. Task definition으로 직접 실행된 Task의 경우 처음 한 번 실행된 이후 관리되지 않음.

Container Instance

  • Task가 배포되는 Cluster에 등록된 EC2 Instance임.
  • ecs 는 Ec2 인스턴스에 Ecs container agent 를 설치하고 Cluster에 container instance로 등록할 수 있음.
  • 하나의 cluster에 여러 개의 Container instance가 있을 수 있으며, 하나의 container instance 안에도 여러개의 taska가 있을 수 있음.

ecs 클러스터 안에 Ecs container instance 가 있고, 그 안에 service, 그 안에 Task 그리고 그 안에 Docker container 가 있다고 볼 수 있다.

마치며

ECS의 기본적인 내용들을 알아봤으니 실습을 진행해보자. private ecs - alb 로 진행을 하기전에 우선 퍼블릭에 Ecs 를 띄워 기본적인 요소들을 실습을 해볼 예정이다.

profile
안녕하세요 DevOps 엔지니어로 현업에서 활동중인 요한이라고 합니다.

0개의 댓글