본문 바로가기
AWS

AWS Fargate을 활용한 배포 흐름#1

by PudgeKim 2022. 6. 27.

이 글에서는 도커와 AWS Fargate을 이용하여 배포하는 경우에 대해 알아보겠습니다.

Fargate를 이용할 경우 먼저 AWS ECR 서비스에 도커 이미지를 push하고, 클러스터를 생성하여 해당 이미지를 기반으로 컨테이너를 생성하게 됩니다.

일련의 과정을 요약하면 아래와 같습니다.

1. 사용하려는 도커 이미지들을 생성한다.

2. ECR에 Repository를 생성한다.

3. 해당 이미지들을 생성한 ECR Repository에 push한다.

4. 클러스터를 생성한다.

5. 클러스터 안에서 작업을 정의한다. (도커 이미지들을 기반으로 컨테이너를 생성한다.)

6. 작업을 실행한다.

 

먼저 ECR 서비스에 도커 이미지를 올리는 과정에 대해 알아보겠습니다.

ECR 서비스를 검색한 후 왼쪽에 ECR Repositories를 누른 후 리포지토리 생성을 합니다. 

원하는 이름으로 빈칸을 채우고 생성을 합니다. (빨간줄 그어진 부분은 나중에 사용하게될 주소입니다.)

 

도커 이미지를 생성했다면 ECR에서 해당 이미지를 활용하기 위해서 도커 태그를 추가로 달아주어야합니다.
(ECR에서 생성한 regristry 부분에는 위의 빨간줄 부분을 넣어주시면 됩니다.)

1
docker tag <생성한 이미지 id> <ECR에서 생성한 registry> 
cs

추가로 이미지 이름을 따로 설정해주고 싶다면 따로 설정하셔도 됩니다. (따로 설정하지 않는다면 자동으로 생성해줍니다.)

 

태그를 제대로 추가해주었다면 aws-cli를 이용하여 아래 명령어를 입력합니다.

1
aws ecr get-login --no-include-email --region <설정한 region>
cs

위 명령어를 입력 후에 Access Key ID를 요구한다면 IAM 서비스에서 사용자에게 적절한 권한을 추가한 뒤 Access Key와 Private Key를 받아서 입력해주어야 합니다.

 

위 과정을 잘 마쳤다면 상당히 긴 결과 값이 터미널에 나올 것입니다. 대충 형식은 아래와 같습니다.

1
docker login -u AWS -p ...
cs

모두 복사한뒤 붙여넣기를 하고 엔터를 누르면 로그인이 완료됩니다.

 

이제 마지막으로 push를 해줄 차례입니다.

1
docker push <ECR에서 생성한 registry>
cs

위 명령어를 통해 간단히 push를 해줄 수 있습니다.

 

ECR에 이미지들을 push했다면 이제는 클러스터를 생성해주어야 합니다. ECS 서비스 왼쪽에 Amazon EKS/클러스터를 통해 생성할 수 있습니다.

클러스터 템플릿은 네트워킹 전용을 선택합니다.

 

클러스터 생성을 완료했다면 작업을 생성해주어야합니다.

작업 생성 페이지에 컨테이너 추가를 누르게 되면 위 그림 같은 창이 나오게 되며 ECR에 push한 이미지들을 기반으로 컨테이너를 생성할 수 있습니다. 

컨테이너 이름은 원하는데로 정의하고 이미지 칸의 경우는 ECR 서비스로 들어가면 push된 이미지들의 uri를 확인할 수 있는데 이 uri를 넣어주시면 됩니다.

 

마지막으로 작업을 실행해주어야하는데 작업 실행 관련 설정시에 위에서 포트매핑한 포트를 열어두어야한다면 보안그룹에서 해당 포트에 대한 설정을 하는 것도 잊지말아야합니다.

이렇게 작업 실행까지 완료하면 컨테이너가 running 상태가 됩니다.

'AWS' 카테고리의 다른 글

AWS Lambda 개념  (0) 2022.07.03
AWS KMS  (0) 2022.06.29
AWS CloudFront  (0) 2022.06.27
AWS 로드밸런서  (0) 2022.06.26
[AWS VPC] Private Subnet에서 외부 접속을 하는 원리  (0) 2022.06.21