2024. 1. 30. 00:52ㆍ☁️ Cloud
기존 NCloud 플랫폼에서 운영중인 서버를 AWS 로 이관하게 됐다. 단일 compute server 에서 운영중인 서버를 이번 기회에 AWS ECS 를 통해 배포하려고 한다. 마이그레이션 과정을 기록해본다.
우선 ECR에 Private Repository 는 생성해둔 상태다. Repository 이름은 운영중인 서비스(tidify)의 이름을 따서 지었다. 해당 Repository를 클릭해보자. 텅빈 저장소를 확인할 수 있다. 이제 우리의 도커 이미지를 이 Repository에 저장하기 위해 푸시 명령 보기 버튼을 클릭해보자.
1번 단계에서 우선 도커 클라이언트를 인증해야 한다. 필자는 로컬에 AWS CLI 도 설치 되지 않은 상태라 AWS CLI 부터 다운받았다.
AWS CLI 설치 및 Configure 입력
1. brew 를 이용한 aws-cli install
$ brew install awscli
2. aws-cli 설치 경로 및 버전 확인
which aws
aws --version
3. aws cli 가 설치되면 aws configure 를 입력한다. Access Key Id 와 Secret Access Key 가 필요하다. 어떻게 발급받는지 모른다면 여기 링크를 참조
$ aws configure
AWS Access Key ID : AXXXXXXXXXXXXXR
AWS Secret Access Key : 8XXXXXXXXXXXXXXXXXXXXXXG
Default region name [ap-northeast-2]: ap-northeast-2
Default output format [json]: json
여기까지 완료되면 다시 ECR Repository 푸시를 위한 명령어로 돌아가자.
AWS ECR push 사전 작업
aws cli 를 설치 후 configure 까지 설정이 완료되면 아래 명령어를 통해 docker client 를 인증하자.
$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <개인비밀번호>.dkr.ecr.ap-northeast-2.amazonaws.co
여기까지 성공하면 아래처럼 로그인 성공 메시지가 뜬다.
이제 ECR 에 밀어놓을 이미지를 찾아보자. 필자는 로컬에 미리 생성해둔 이미지를 ECR에 푸시한다.
위 이미지의 IMAGE_ID 를 가지고 명령어를 입력한다. 위 푸시 명령 입력 안내문의 3번 커맨드를 사용하자. 각자 빌드하고자 하는 이미지 ID 만 변경해서 사용하면 된다.
# 이미지에 태그를 지정
$ docker tag <IMAGE ID> <토큰>.dkr.ecr.ap-northeast-2.amazonaws.com/tidify-be:latest
# 해당 이미지를 ECR Repository에 푸시
$ docker push <토큰>.dkr.ecr.ap-northeast-2.amazonaws.com/tidify-be:latest
이미지가 푸시되면 이전의 텅빈 Repository 와 달리 푸시한 이미지 정보가 등록돼 있는 것을 확인할 수 있다.
정리
- 우리는 ECS 에 도커 컨테이너를 띄워 서버를 배포하고자 한다.
- 도커 컨테이너 빌드에 필요한 이미지를 저장할 장소가 필요하다. 그것이 ECR 이고 이 저장소에 이미지를 푸시하는 방법을 익혔다.
- 다음 글에서는 푸시한 이미지를 ECS 를 통해 배포하는 법을 알아보자.
'☁️ Cloud' 카테고리의 다른 글
AWS Lambda 로 배포 자동화 구축 (feat. Docker Hub) (0) | 2024.05.30 |
---|---|
AWS Cognito (0) | 2023.08.19 |
알림시스템 구축을 위한 SQS, SNS, MSK 비교 (0) | 2023.07.02 |
[docker 에러] When using COPY with more than one source file, the destination must be a directory and end with a / (0) | 2022.07.18 |
Travis CI 와 Docker 를 이용해 자동 배포하기 (feat.AWS EB) (0) | 2022.07.12 |