[소개] Amazon ECS란?

Amazon ECS(Elastic Container Service) 란?

  • 클러스터에서 컨테이너를 쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스 입니다.
  • 간단한 API 호출을 사용하여 컨테이너 기반 애플리케이션을 시작하고 중지할 수 있습니다.
  • 2017년 10월 Seoul Region에 출시되었습니다.
ECS Console

Amazon ECS 구성 요소

1. Amozon ECR : Amazon에서 제공하는 컨테이너 이미지 저장소 입니다. ECR 리포지토리에서 이미지 URI를 이용해 빌드한 이미지를 푸쉬하고 가져올 수 있습니다.

2. Task Definition : 작업 정의는 애플리케이션을 구성하는 컨테이너를 설명하는 텍스트(JSON) 입니다.

  • 시작 유형 호환성 선택(Fargate | EC2 | External)
  • 사용할 컨테이너 이미지 설정
  • 애플리케이션을 위해 개방할 포트 설정
  • CPU/메모리 리소스 할당 설정
  • 작업의 컨테이너에 사용할 데이터 볼륨 설정
작업 정의
CPU/메모리 리소스 할당 설정
작업 정의 – 컨테이너 추가 및 편집

콘솔 또는 JSON 형식으로 작업 정의를 설정할 수 있습니다. (호환)

* 작업 정의 예시(JSON 형식)

{ 
       "family": "webserver", 
       "containerDefinitions": [ 
             { 
                 "name": "web", 
                 "image": "nginx", 
                 "memory": "100", 
                 "cpu": "99" 
              }, 
              "portMappings": [
              {
                 "hostPort": 80,
                 "protocol": "tcp",
                 "containerPort": 80
              }
        ]
        "requiresCompatibilities": [ 
                 "FARGATE" 
        ], 
        "networkMode": "awsvpc", 
        "memory": "512", 
        "cpu": "256", 
}
JavaScript

3. Task : 작업 정의에서 정의된 설정으로 인스턴스화 하는 것입니다. Task는 Cluster에 속한 컨테이너 인스턴스(EC2 인스턴스)나 Fargate에 배포하게 됩니다.

4. Service : 클러스터에서 지정된 수의 작업을 동시에 실행하고 관리할 수 있게 해주는 구성입니다. 서비스는 Task를 포함하며, Task와 관련된 Auto Scaling과 Load Balancing을 관리합니다.

  • 시작 유형 선택(Fargate | EC2 | External)
  • 작업 정의 선택
  • 클러스터 선택
  • 서비스 이름 설정
  • 작업 개수 설정
  • 배포 유형 설정(롤링 | 블루/그린 배포)
  • 네트워크 구성(VPC, 서브넷, 보안그룹)
  • Load Balancing 설정
  • Auto Scaling 설정
서비스 생성 – 서비스 구성
Load Balancing 설정
Auto Scaling 설정

5. Cluster : 작업 또는 서비스의 논리적 그룹입니다. 클러스터를 실행하여 작업을 실행할 수 있습니다.

  • 클러스터 템플릿 선택(Fargate | EC2 | External)
  • 클러스터 이름 설정
클러스터 템플릿 선택


* 시작 유형

Fargate : 컨테이너를 배포하고 관리할 수 있는 서버리스 컴퓨팅 엔진
EC2 : 컨테이너를 배포하고 관리할 수 있는 클라우드 컴퓨팅 플랫폼
External : 컨테이너를 배포하고 관리할 수 있는 온프레미스 서버 또는 가상 머신

Cluster의 시작 유형 선택


참고 자료
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/Welcome.html
https://docs.aws.amazon.com/ko_kr/ecs/index.html


지금까지 간단하게 Amazon ECS에 대해 알아보았습니다.

다음으로는 CI/CD의 기본적인 구조인, Jenkins pipeline을 이용해 ECS에 배포하는 Hands On을 진행 하겠습니다.

자세한 안내는 AWS의 관리 안내서를 참고하시기 바랍니다.

https://docs.aws.amazon.com/ko_kr/ecs/index.html

감사합니다.

문의 사항이 있으시면, NDS Sales팀으로 연락 주시길 바랍니다. 
cloud.sales@nongshim.co.kr

SA 김민지