로컬에서 개발한 소스를 EKS에 배포하기 위해서는, ECR(Elastic Container Registry)에 먼저 PUSH를 해줘야 한다.
먼저, ECR 서비스에서 aggregate 별 repository를 생성하자.
ECR 에 Repository 생성
aws 콘솔에 접속한다.
[서비스] 탭에서 ECR을 검색한 후 [Elastic Container Registry]서비스를 클릭한다.
우측 상단 [레포지토리 생성] 버튼을 누른다.
리포지토리 이름에 aggregate 별로 구분 가능한 네이밍을 한다.
[리포지토리 생성] 버튼을 눌러 생성을 완료한다.
위와 같은 방법으로, aggregate 별 리포지토리 생성을 진행한다.
이제 본격적으로 프로젝트 파일을 도커라이징하고 ECR(Elastic Container Registory)에 PUSH 해보도록 하
기 전에, 도커라이징을 하기 위해서는 maven 툴이 필요하다.
MAVEN 설치
아래 주소로 접속하여
Files 항목에서
[Binary 파일]을 다운로드한다.
다운로드한 zip파일을 풀어 적당한 경로에 넣어주고
[환경변수]에 추가해준다.
변수 이름: MAVEN_HOME
변수 값: C:\maven\apache-maven-3.6.3-bin\apache-maven-3.6.3
추가한 변수를 [Path] 경로에 넣어준다.
이제 cmd 아무 경로에서나 mvn 명령어를 실행할 수 있다.
패키지 파일 생성
이제, maven으로 패키지파일을 생성하자.
aggregate 폴더로 이동한 한다.
mvn package
명령을 수행한다.
뭔가가 진행되고 난 후
[target] 폴더를 들어가보면,
[SNAPSHOT.jar] 파일이 생긴 것을 알 수 있다.
(패키지 파일)
위와 같은 작업을 aggregate 별로 반복해준다.
패키지 파일 생성이 완료가 되면 이제 도커라이징을 할 수 있다.
그런데, docker 명령어가 수행이 되질 않을 것이다.
docker 데몬을 먼저 실행해야 한다.
Docker 설치
docker 데몬 실행을 위해, docker를 먼저 설치한다.
docker 설치 방법은 OS마다 다른데,
windows7에서도 설치는 가능하지만 VM위에서만 작동하여, 사용이 매우 번거롭다.
(나도 windows7에서 설치 후 실행하다가, 불편함 및 에러가 많아 windows10으로 실행 환경을 바꿨다.)
windows10 기준으로 설명한다.
아래 주소로 접속한다.
hub.docker.com/editions/community/docker-ce-desktop-windows/
우측 중앙 [Get Docker] 버튼을 눌러 다운로드한다.
설치파일을 [관리자 권한]으로 실행한다.
default 설정으로 [OK]를 누르면 설치가 시작된다.
설치가 완료되면, [Close and restart]버튼이 보인다.
누르는 순간 PC가 재시작되니 주의하도록 한다.
PC가 재시작 되면 자동으로 Docker 데몬이 구동된다.
docker build & push
이제 도커 파일을 먼저 build하고, ECR에 push 해보자.
아래 작업은 Intellij에서 해도 되고, cmd에서 수행해도 상관없다.
aggregate 폴더로 이동한다.
도커를 build한다.
명령어: docker builid -t [리포지토리 이름]:v1 .
ex) docker build -t 475254874193.dkr.ecr.ap-northeast-2.amazonaws.com/kdh01-gateway:v1 .
가장 뒤에 '.' 을 빼먹으면 안 된다.
빌드가 완료되면
docker images
명령어를 통해
이미지가 생성됐는지 확인한다.
이제 docker push를 시도해보는데,
no basic auth credentails 라는 에러가 발생한다.
ecr에 대한 인증이 안되어 있기 때문이다.
ecr 인증은 aws cli 버전에 따라 명령어가 다르다.
cmd에서
aws --version
명령어를 실행했을 때
1) 1.x버전일 경우
아래 명령어를 통해 인증키를 획득한다.
aws ecr get-login --region [리전 이름]
ex) aws ecr get-login --region ap-northeast-2
그럼 이미지와 같이, 인증키가 부여가 된다.
이 전체를 드래그 후 복사해서 (docker logn ~~~~ amazonwas.com)
그대로 붙여넣기 한 후,
이미지에서 상단 빨간 박스부분,
-e none https://
를 지워 아래 처럼 텍스트를 수정한다.
인증에 성공했다.
2) 2.x버전일 경우
아래 명령어를 통해 인증키를 획득한다.
aws ecr get-login-password --region [지역 코드] | docker login --username AWS --password-stdin [Account-ID].dkr.ecp.[지역 코드].amazonaws.com
ex) aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 052937454741.dkr.ecr.ap-northeast-2.amazonaws.com
인증 성공 확인.
이제 ecr에 push를 해보자.
명령어: docker push [레포지토리 이름]:v1
ex) docker push 475254874193.dkr.ecr.ap-northeast-2.amazonaws.com/kdh01-gateway:v1
여기에는 '.' 이 없다.
드디어 푸시가 완료되었고
ecr 해당 레포지토리에 들어가면, push가 정상적으로 이루어졌음을 확인할 수 있다.
'IT | Cloud > MSA 설계 구현 및 AWS 배포' 카테고리의 다른 글
MSA 설계 구현부터 AWS 배포까지 - 7. Cloud 서비스 실행 (0) | 2020.07.14 |
---|---|
MSA 설계 구현부터 AWS 배포까지 - 5. KAFKA 올리기 & 소스 수정 (0) | 2020.07.08 |
MSA 설계 구현부터 AWS 배포까지 - 4. AWS 환경설정 (0) | 2020.07.08 |
MSA 설계 구현부터 AWS 배포까지 - 0. 개요 (0) | 2020.07.08 |