Amazon ECS - Create Cluster and Task Definition

 

  • 클러스터 생성
  • 태스크 정의 생성
  • 서비스 생성

https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/Welcome.html

 

Amazon Elastic Container Service란 무엇입니까? - Amazon Elastic Container Service

Amazon Elastic Container Service란 무엇입니까? Amazon Elastic Container Service(Amazon ECS)는 클러스터에서 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 하는 컨테이너 관리 서비스로서 확장성과 속도가 뛰

docs.aws.amazon.com

먼저 Amazon ECS에 대해 소개하는 글 먼저 읽어보세요.

 

NAME
       ecs -

DESCRIPTION
       Amazon  Elastic  Container  Service  (Amazon ECS) is a highly scalable,
       fast, container management service that makes it easy to run, stop, and
       manage  Docker  containers on a cluster.

그리고 위 내용은 AWS CLI에서 ECS 도움 페이지를 보면 나오는 설명이에요. 응? 도커랑 뭐가 다른 거야? 싶었어요. 나중에 Docker vs ECS vs EKS 세 가지를 비교하는 포스팅을 올려볼까 해요. 먼저 ECS를 간단하게 설명하자면 container를 AWS위에서 운영하기 위한 서비스라고 생각하면 크게 틀리지 않은 설명일 것 같아요. 늘 그렇듯. 만들고 지우고 지지고 볶으면서 배워볼게요. 

 

Amazon ECS Cluster

컨테이너 이미지를 통해서 컨테이너를 만들려면 컨테이너가 올라가 있을 수 있는 곳이 필요하잖아요? 이 클러스터가 컨테이너들이 올라가 있을 곳이에요. 클러스터를 만들 때는 3가지 옵션이 있어요. 

 

1. EC2 instance

EC2 인스턴스를 배포해서 클러스터를 구성하고 그 위에 컨테이너를 올림. EC2 사용량만큼의 요금만 발생.

 

2. External instance

클러스터에 On-Premises 서버 혹은 VM을 등록하고 그 위에 컨테이너를 올림. ECS 클러스터에 등록된 인스턴스 * 사용시간만큼의 요금 발생.

 

3. Fargate

AWS에서 관리하는 인프라에서 컨테이너가 실행됨. 클러스터 구성 및 설정에 노력을 들이지 않아도 됨.

 

당연히 3번이 제일 편하고 비쌀 거예요. 그리고 프리티어 무료 사용량이 없다고 알고 있어요. 외부 인스턴스는 AWS 밖에 내가 따로 서버 올리고 OS 설치하고 도커 설치하고 필요한 프로그램 설치해서 사용하는 방법이에요. 어떤 스펙의 인스턴스를 사용하던 개당 클러스터에 등록된 시간만큼만 돈을 지불하면 되기 때문에 사용 요금은 가장 저렴할 거예요. 그리고 EC2 인스턴스에 올리는 방법은 우리가 '숨 쉬듯' 자연스럽게 사용하고 있는 EC2 인스턴스를 배포해서 클러스터를 구성하는 방법이에요. 그리고 EC2 t2.micro는 프리티어에서 한 달에 750시간은 무료로 사용이 가능해요. 그럼 t2.micro 인스턴스를 사용해서 클러스터를 구성해볼게요.

 

Amazon ECS - console

왼쪽에 Clusters 혹은 오른쪽에 Get started 버튼을 눌러서 클러스터를 생성하러 가볼게요. 먼저 클러스터 이름을 정해주세요.

Amazon ECS - Create cluster / Cluster name

다음으로 클러스터의 네트워크 설정이에요. 기본적으로 자동 설정된 내용에서 따로 바꾸지 않았어요.

Amazon ECS - Create cluster / Networking

그리고 마지막으로 인프라 설정을 해주었어요. 기본적으로 파게이트는 무조건 선택해야 하는 것 같고 Amazon EC2 instances와 External instances를 선택할 수 있는 걸로 나오는데 Amazon EC2 instances를 선택하고 새로운 ASG를 만들도록 설정했어요. 그리고 프리티어 뽕을 뽑기 위해 t2.micro 인스턴스를 선택해 주었어요. 오늘은 앞단에 로드 발란서도 놓지 않고 그냥 인스턴스 하나에 쌩으로 돌려볼 거예요. 

Amazon ECS - Create cluster / Infrastructure

이렇게 하고 monitoring과 tag는 따로 설정하지 않고 Create 버튼을 눌러서 클러스터를 만들어 주었어요.

Amazon ECS - Create cluster / ...

이렇게 동그라미가 돌면서 꽤 시간이 걸리더라고요. 클러스터가 정상적으로 만들어졌다면 아래 그림과 같이 클러스터 오버뷰 밑에 탭 중에서 인프라 탭을 선택한 후 ASG console로 가주세요.

Amazon ECS - Cluster / Infrastructure
Amazon ECS - Cluster / ASG details

우측에 Edit 버튼을 클릭하고 원하는 인스턴스 수를 1로 바꿔주세요. 그리고 잠시 기다리시면 

Amazon ECS - Cluster EC2 instance

이렇게 EC2 instance console에서 인스턴스 하나가 생성되고 돌아가는 걸 확인할 수 있어요. 클러스터 설정할 때 ssh 키를 등록하셨으면 인스턴스에 접근할 수 있어요. SSH 접속을 하게 되면 아래와 같은 환영 문구가 나오는 것을 볼 수 있어요.

Amazon ECS - Cluster EC2 instance SSH welcome page

 

(ECS Optimized)라는 문구가 인상적이네요. 그럼 다음 포스팅에서 타스크 정의와 서비스 생성까지 정리해볼게요.