AWS ECR 배포

Kyojun Jin·2024년 12월 2일
0

Insta Tistory Automator

목록 보기
8/8

목적

직접 개발한 잘 구운 서버 하나,
그리고 외부 도커에서 가져온 이미지 두 개를 ECS를 이용해 배포하기.

순서

  1. GitHub Actions 를 이용해서 ECR Private Repository 로 서버 이미지 배포
  2. ECS 에서 태스크 정의 (태스크: Docker Compose의 AWS Console 버전)
  3. ECS 에서 서비스 정의 (쿠버네티스 같이 네트워크, 배포 설정)
  4. 서비스 시작

1. GitHub Actions

https://velog.io/@jkjan/Github-Action-%EC%9C%BC%EB%A1%9C-Spring-%EB%B0%B0%ED%8F%AC-docker-ECR

링크로 대체

2. ECS에서 태스크 정의

내가 로컬에서 돌리던 Docker compose 한다 생각하면 쉬움.
다만 진짜 불편한 것은 task 수정이 안 되고 뭔 놈의 '개정(task definition)'을 계속 새로 만들어줘야 함.
docker compose 를 버전별로 나눈다고 생각하면 편함.

3. 서비스 정의

서비스 정의하는 것은 어렵지 않음. 2번에서 정의한 태스크 개정 (docker compose 파일 같은 거)을 가지고 네트워크랑 배포 전략 정도만 추가하는 것. 문제는 그게 아니라...

EC2 를 쓰지 않고 Fargate 를 쓰게 되면 퍼블릭 IP를 사용해야 함.

Public IP(퍼블릭 IP) 옵션은 Amazon ECS가 작업과 연결된 탄력적 네트워크 인터페이스(ENI)에 퍼블릭 IPv4 주소를 자동으로 할당할지 여부를 결정합니다. AWS Fargate에서 호스팅되는 Amazon ECS 작업에만 이 옵션을 설정할 수 있습니다.

나는 이것을 외부 접속 허용하게 하는 IP인 줄 알고 안 쓰고 배포를 하였으나
매우 불친절하게도 저 말은 그 어디에서도 ECS의 레포지터리에 접근 자체를 못한다는 말이 됨.

0개의 댓글