본문 바로가기
Cloud AWS, Azure, GCP

AWS 인프라 구축 실습 14회 - ECS

by SB리치퍼슨 2021. 12. 17.

AWS 인프라 구축 실습 14회 - ECS


이번 시간에는 ECS(Elastic Container Service)를 실습해 보도록하겠습니다.
여기에서 사용하는 ECR(Elastic Container Service Registry) 은 이전 시간에 작성한 실습 결과를 사용하겠습니다.

ECS와 같은 서비스는 Docker Swarm, AWS ECS, Kubernatetes EKS가 있습니다. 운영하는 규모에 따라 선택해서 적용을 하면 됩니다.
ECS는 컨테이너 오케스트레이션(Container Orchestration)이라고 하는 서비스입니다. 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 서비스입니다.

 


사전작업
1. ECR : sbrich
2. Route53 : sbrich.shop / docker.sbrich.shop
3. (자동생성) 대상그룹 : 'TG-ALB', instance type, HTTP, 80port
4. 보안그룹 : sg-Docker
5. 

실습과정
1. 작업정의
2. 클러스터 생성
3. 서비스 생성
  3.1. 서비스 구성
  3.2. 네트워크 구성
  3.3. 오토스케일링
4. 테스트

 


ECS 서비스 실습하기

1. 작업정의

Amazon ECS > 작업정의 페이지로 이동합니다.

태스크 정의 생성을 클릭합니다.

새 태스크 정의 생성을 클릭합니다.

1단계 : 태스크 정의 및 1단계 

2단계 : 환경, 스토리지, 모니터링 및 태그 구성

3단계 : 검토 및 생성

문제가 없다면 생성을 클릭합니다.

생성되었습니다.

 


2. 클러스터 생성

Amazon ECS의 클러스터 메뉴를 클릭합니다.


1단계 : 클러스터 템플릿 선택
"EC2 Linux + 네트워킹" 템플릿을 선택하고 다음을 클릭합니다.

2단계 : 클러스터 구성
클러스터 이름 ('my-cluster')를 입력하고 인스턴스를 선택/입력합니다. 키페어는 사용중이거나 새 키페어를 사용합니다.

네트워크 구성을 설정합니다.

퍼블릭IP자동할당은 '활성화' 해야합니다. 이제 생성을 합니다. 차후에 접속이 가능하도록 하기 위함입니다.
자동으로 인스턴스에 도커 환경을 구축합니다. ECS cluster, ECS 인스턴스 IAM, CloudFormration Stack 을 구축합니다.


EC2 메뉴에서 인스턴스를 확인해 봅니다. EC2 인스턴스는 설정 개수 만큼 생성이 됩니다. 

클러스터 보기를 클릭합니다.

 


3. 서비스 생성

3.1. 서비스 구성

클러스터의 서비스 탭에서 서비스 생성을 하기 위하여 '배포'를 클릭합니다.

배포설정의 서비스구성 영역에서 시작유형을 'EC2'로 선택합니다.
태스크 정의를 선택하고 서비스 이름은 'my-svc'로 입력하고 태스크 수는 3개로 합니다.


배포 유형은 3가지 유형 중 '롤링업데이트'로 (강제)선택합니다.

작업배치는 'AZ균형 분산'으로 선택합니다.


여기까지 설정한 후 다음을 클릭합니다.


3.2. 네트워크 구성

네트워크 영역은 VPC, Subnet, 보안그룹을 선택합니다.


로드밸런싱 영역에서 로드밸런서 유형 'Application Load Balancer'를 선택합니다.
미리 생성한 로드 밸런서 생성을 선택하고 로드 밸런서 이름 'ELB-ALB'를 입력합니다.
(미리 생성하지 않은 경우에는 'Amazon EC2 콘솔'에서 새 로드 밸런서를 생성합니다.

'컨테이너 이름: 포트'를 '로드 밸런서에 추가'를 클릭하여 추가합니다.

다음을 클릭합니다.


3.3 오토스케일링 설정

"서비스 오토스케일링을 구성하여 원하는 서비스 개수를 조정합니다."를 선택합니다.

최소 작업 수와 원하는 작업 수, 그리고 최대 작업 수를 2, 3, 4로 설정합니다.


자동 작업 조정 정책을 설정합니다. 조정정책유형은 '대상추적', 정책이름은 'test'로 합니다. 설정이 끝나면 다음을 클릭합니다.

검토 단계에서 문제가 없다면 새로 생성을 클릭합니다.
 몇 분이 소요될 수 있습니다. 천천히 기다리기로 합니다.

서비스 보기를 클릭합니다.

서비스의 세부정보도 확인해보겠습니다.


다음은 자동생성된 대상그룹 'TG-ALB'의 상세정보입니다. 대상그룹을 번거롭게 설정할 필요없이 자동으로 생성이 됩니다.

생성된 EC2 인스턴스입니다.


4. 테스트

접속을 위해 웹브라우저에서 url로 접속해 봅니다.
url은 ECS 클러스터의 서비스 생성시 추가한 로드밸런서 'ELB-ALB의 상세정보에서 'DNS 이름'을 복사해서 사용합니다.

DNS 이름으로 아래와 같이 웹으로 접속하고 Route53에서 별도로 레코드 생성해서 예를 들어 http://ecs.sbrich.shop 으로 접속할 수도 있습니다.


혹시라도 접속이 안된다면 대상그룹과 보안그룹을 확인해 보시기 바랍니다. HTTP 인바운드 규칙 관련해서 설정이 누락된 부분이 있을 수 있습니다.
대부분의 문제가 이 2가지에서 발견됩니다.

전체적으로 작업정의, 클러스터 생성, 서비스 생성, 로드밸런싱, 오토스케일링 등을 설정하면 아마존 서비스 오케스트레이션을 확인할 수 있습니다.


이번 시간에는 AWS 인프라 구축 실습 14회 - ECS에 대하여 실습해 보았습니다.

다음 과정에서는 AWS 인프라 구축 실습 15회 - AWS EKS에 대하여 실습해 보도록 하겠습니다.

반응형

댓글