본문 바로가기
인프라/AWS

ECS & jenkins pipeline 활용

by bloodFinger 2021. 9. 30.

현 회사에서 CI/CD를 구성하는데 있어서 Jenkins pipeline을 통해 프로젝트를 ECS에 배포하는 형태로 무중단 배포를 하고있다.

staging 서버 또한 beansTalk에서 ecs로 이관해야 하는 필요가 생겨 이번 기회에 정리하는 시간을 가지겠습니다

 


ECS 란? 

컨테이너화된 애플리케이션의 손쉬운 배포, 관리 및 조정에 도움이 되는 완전관리형 컨테이너 오케스트레이션 서비스입니다 - AWS

다시 말해서, 도커 컨테이너를 이용해서 실행/중지 및 관리를 할 수있으며 확장성과 속도가 굉장히 뛰어납니다.

도커를 사용해서 가볍고 빠르게 배포할 수 있으며 컨테이너 오케스트레이션이 가능한게 제일 큰 장점이죠.

 

 

 

ECS 카테고리

aws ECS에 접속을 하면 왼쪽과 같은 카테고리를 볼수있습니다.

 

1. Cluster 

 - 작업 요청을 실행할 수 있는 한 개 이상의 컨테이너 인스턴스를 리전별로 그룹핑 합니다.

2. TASK Definition

 - 작업의 일부가 될 컨테이너의 개수 , 컨테이너가 사용할 리소스, 컨테이너 간 연결 방식 , 컨테이너가 사용할 호스트 포트와 같은 애플리케이션 관련 컨테이너 정보를 지정합니다.

3. ECR

- 완전관리형 컨테이너 레지스트리로, 이미지와 아티팩트를 어디서나 쉽게 보관, 관리, 공유 및 배포하도록 지원합니다.

 

 

 

 

 

 

 

 

 

 

1. 클러스터 생성

저희는 도커 컨테이너로 배포를 할것이기 때문에 "네트워킹 전용" 으로 선택하겠습니다.

 

 

 

2. 작업정의

작업 정의를 하기에 앞서 리포지토리를 생성을 해준다.
왜냐하면 작업정의에서 컨테이너에 정보 추가시 리포지토리 주소가 필요하기 때문이다.

레포지토리 주소가 생성이 완료되면 레포지토리 주소를 복사해둔다

 

FARGATE 를 선택해준다.

 

컨테이너 추가를 눌러서 아까 레포지토리에서 복사했던 정보를 입력해준다.

이후에 작업정의를 생성한다.

 

3.서비스 배포

 

 

다음 단계로 넘어가면

 

 

 

 

 

저장해두었던 VPC를 생성하고 서브넷을 설정합니다.

자동 할당 퍼블릭 IP 는 ENABLED로 설정한다.

만들어 두었던 로드 밸런싱할 컨테이너를 추가한다.

 

 

'인프라 > AWS' 카테고리의 다른 글

특정 파일(.java) .gitignore 하기  (0) 2020.01.07
S3 는 무엇이고 왜 사용하는가?  (0) 2019.12.16