• HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING
No Result
View All Result
illunex Blog
  • HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING
No Result
View All Result
일루넥스 블로그
No Result
View All Result

ECR 사용하기

우선 ECS를 사용하기 위해서 ECR을 먼저 사용하기로 합니다.

최 수만 by 최 수만
2020년 8월 25일
in DEVELOP, 백엔드
ECR 사용하기

안녕하세요, 일루넥스 개발팀 최수만 입니다.
오늘은 ECS를 사용하기 위해서 ECR을 먼저 사용하기에, 그에 관하여 설명하겠습니다.

ECR의 역활이 뭔가요?

ECR이란 개발자가 Docker 컨테이너 이미지를 손쉽게 저장, 관리 및 배포할 수 있게 해주는
완전관리형 Docker 컨테이너 레지스트리입니다. (공식 홈페이지에서 발췌)

전에는 우리가 개발을 할때 각각의 컴퓨터에서 개발하고 그것과 동일한 환경을 서버에 세팅하고
그 후 jar, war 혹은 git등을 사용해서 인스턴스에 내려받고 그것을 실행해서 서버를 운영했습니다.
사실 개발보다 동일한 환경을 만드는게 더 힘들었죠.

또 auto scale등의 작업도 편하게 할 수 있게 되었습니다. 전에는 서버를 스냅샷으로 만들어서 auto scale 설정을 하고
이것을 모니터링 해서 서버의 요청등이 한계치에 다다르게 되면 새로운 서버를 운영해서 스냅샷으로 작동시켰죠

그런데 이것이 도커의 등장으로 인해 그 개념이 바뀌게 되었습니다.
도커의 이미지는 어느 환경 어느 운영체제의 서버에서 격리되어 작동하므로 외부의 환경에 영향을 받지 않습니다.(단 포트등은 예외네요)
또한 이것은 서버를 유연하게 운용할 수 있게 해줘서 위에서 개발자가 신경썼어야 하는 모든 부분을 다 도커가 대신하게 되었습니다.

그리고 위의 운영적인 부분을 발전시킨게 바로 쿠버네티스가 되겠습니다.

아래 그림은 우리가 개발을 해서 배포하기 까지의 과정을 나타내는 이미지입니다.

위의 이미지를 간단히 말하면 다음과 같습니다.

  • 코드를 작성하고 : write code
  • 저장소에 저장하며 : 중간의 주황색 사각형
  • 서버에서 실행한다 : run container, Amazon ECS / Amazon KES / On premises

여기서 ECR의 기능은 저장소에 해당한다고 볼 수 있습니다. 여기까지 해서 간단하게 ECR의 역활이 무엇인지 알아보았습니다.

ECR에 레포지토리 만들기

아래의 실습조건은 우선 aws cli에 접속할 수 있는 계정과 aws cli는 설치후 configure까지 완료했다는 전제하에 시작하겠습니다.

  • Amazon Web Service에 접속한 후 ECR(Elastic Container Registry)을 선택합니다.
  • 원하는 리전에 Create Repository로 저장소를 생성합니다.
  • 레포지토리 이름을 입력합니다. 우리가 사용할 서비스는 web, api의 두가지 이므로 다음의 이름으로 작성합니다
    • servicename/web
    • servicname/api
  • 그러면 내가 생성한 이름으로 저장소가 추가됨을 확인할 수 있습니다.
  • 내가 생성한 저장소로 들어가면 푸시 명령 보기라고 있습니다.
  • 누르면 다음과 같은 4가지 명령이 나오게 됩니다.
# 레지스트리에 접속하기
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com
# 도커 빌드하기 이건 node나 java의 경우 각기 다르므로 맞춰서 작성하시면 됩니다.
docker build -t web .
# 태그 하기 이 태깅한 레포지토리를 업로드 합니다.
docker tag web:latest 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/web:latest
# 푸시하기
docker push 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/web:latest 
  • 이후 레포지토리에 보면 컨테이너가 있는 것을 확인 할 수 있습니다.
  • repository 이름은 서비스에 연관있게 만들면 될 거 같습니다.
  • 즉 나의 서비스를 기준으로 repository는 2개가 현재 사용됩니다
    • 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/web
    • 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/api

EC2에서 ECR의 Container를 Pull하자

  • 이제 아마존의 ECR에 container를 올리는 거 까지는 성공했으니 이제 내려받기를 시도해보자.
  • 모든 내용은 ssh를 사용하여 EC2 인스턴스에 접속했음을 가정한다.
  • EC2에 아마존 클라이언트가 설치되어 있어야 한다.
#AWS ECR에 접속하자
aws ecr get-login --region ap-northeast-2 --no-include-email
# 다음과 같은 메세지가 나온다. 이것을 전체 복사해서 붙어넣기 후 실행하자.
docker login -u AWS -p ~~~~~~~~~~~ https://000000000000.dkr.ecr.ap-northeast-2.amazonaws.com
# 다음과 같은 메세지가 나온다
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
# 이제 이러면 ECR에서 해당 컨테이너를 다운받을 수 있다.
docker pull 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/web:latest 
  • 이러면 나의 EC2 인스턴스에 컨테이너가 다운되어 사용할 수 있는 상태가 된다.

마치며

지금까지 ECR에 대해 알아보았습니다.
읽어주셔서 감사합니다.

Tags: bemblockcsselementmodifiersass
ShareTweet
Previous Post

[Gitbal] 온라인 투자심사 간단히 하기

Next Post

TRX(ERC20) 개발 Basic 1

Next Post
TRX(ERC20) 개발 Basic 1

TRX(ERC20) 개발 Basic 1

  • Copyright © 2020 illunex., Inc., All Rights Reserved.
  • 개인정보보호정책
No Result
View All Result
  • HOME
  • PRODUCT
  • DEVELOP
  • NEWS
  • CONSULTING