본문 바로가기
AWS/Docker & ECR 이용방법

ECR에 도커 이미지 업로드 위한 기본 설정

by Fletcher 2024. 7. 5.

※때에 따라서 AWS 웹페이지의 인터페이스 디자인이 조금씩 변하므로,

조회하시는 시간과 본 포스트 작성의 시간적 격차가 있는 경우

해당 설명과 상이한 부분이 있을 수 있습니다!

 

 

반갑습니다.

이번 포스트에서는 ECR(Elastic Container Registry) 관련 설정 부분을 알아보겠습니다!

 

 

다들 도커(Docker) 한 번쯤 들어보셨죠?

가상화 기술을 두 가지로 구분할 수 있는데, 하나는 익숙한 VM이고 나머지가 Docker가 되겠습니다!

 

내가 쓰는 컴퓨터의 운영체제를 독립적으로 분리해 여러 App을 구동하고 싶다면?

VM(Virtual Machine)을 이용할 수가 있겠죠! 이 방법은 호스트 OS의 커널을 공유하지 않습니다!

근데, 호스트 운영체제 위에 게스트 운영체제가 쌓이는 방식이라 당연히 무거울 수밖에 없습니다!

 

도커는 호스트 OS의 커널을 공유해서 도커 엔진을 통해 여러가지 App을 동작시킬 수 있습니다!

도커는 VM보다 필요 리소스가 적습니다! cost가 작죠!

하지만 하나의 운영체제만 구동할 수 있고, 자원의 격리와 제한에 있어서는 VM보다 부족합니다!

 

어쨌든 각각의 장단점이 있는데, 오늘은 컨테이너화와 관련된 ECR에 대해 설정하는 부분을 알아보겠습니다!

 

 

 

 

AWS 로그인 후 Console화면에 접근해주세요!

 

 

 

 

검색창에 elastic container registry를 검색해서 해당 서비스를 클릭해주세요!

 

 

 

 

생성되어 있는 기존의 리포지토리가 없기 때문에 위와 같은 화면을 마주하실겁니다!

여기서 우측 상단의 "생성" 버튼을 눌러주세요!

 

 

 

 

리포지토리를 생성할건데요 여기서 중요한게 있습니다

default 값으로 "프라이빗"이 선택되어 있는데요!

만약에 표시 여부 설정을 "프라이빗"으로 하면 과금이 됩니다.

학습의 목적이라면 "퍼블릭"으로 설정해주세요!

 

 

 

 

리포지토리 이름 부분의 입력폼에는 serverless의 프로젝트 명-dev로 입력해주세요!

serverless 프레임워크와 AWS를 이용해 서비스를 배포할 것이기 때문에

계속 이 부분에 초점을 맞춰 설명드리고 있습니다 ^^!

 

 

 

그 외에는 default 설정 중에 별도로 건드릴 필요는 없고,

페이지 하단의 오렌지색 "리포지토리 생성"을 클릭해주시면 됩니다!

 

 

 

 

보시는 바와 같이 리포지토리가 생성되었습니다!

리포지토리 생성 자체는 별다른 부분이 없지만, 중요한건 이제 이후에 필요한 추가 설정들입니다!

 

 

 

 

다시 IAM 서비스로 접근하셔서 이전에 생성해두셨던 사용자를 클릭해주세요!

 

 

 

 

그럼 해당 사용자에 대한 정보가 열람이 되는데 우측에 "권한 추가"를 누르시면 메뉴 두 가지가 드롭다운 됩니다!

여기서 권한 추가를 눌러주세요!

 

 

 

 

권한 옵션에서 "직접 정책 연결"을 선택해주시고,

AmazonEC2ContainerRegistryFullAccess를 선택해주시고 페이지 하단의 "다음" 버튼을 클릭해주세요!

 

 

 

그럼 본인이 선택한 권한이 무엇인지 확인하는 검토 페이지로 이어집니다

맞게 추가하셨다면 "권한 추가"를 눌러주세요!

 

 

 

 

해당 사용자에게 권한이 성공적으로 추가 되었습니다!

보시면 AmazonEC2ContainerRegistryFullAccess 권한이 목록에 추가되어 있는걸 확인할 수 있습니다!

 

 

 

 

다시 ECR 서비스 화면으로 가셔서 아까 생성한 리포지토리를 체크하신 후

우측 상단의 "작업" 버튼을 누르시면 메뉴가 드롭다운 됩니다!

여기서 "권한"을 눌러주세요!

 

 

 

 

그럼 위와 같은 화면에 접근하실텐데요

"편집" 버튼을 눌러주세요!

 

 

 

 

그럼 위와 같은 화면으로 이어집니다!

여기서 "명령문 추가"를 눌러주세요!

 

 

 

이렇게 설정과 관련된 페이지로 이어집니다

스크롤을 조금 내리셔서 IAM 개체 부분을 같이 보겠습니다!

 

 

 

 

보시면 우리가 추가한 IAM 권한들, 사용자들이 목록에 나오는데요

여러분이 이용하시고자 하는 IAM 사용자를 체크해주시면 되겠습니다!

그리고 바로 밑에 "작업" 부분에서 메뉴를 클릭하시면 여러 항목이 나옵니다!

 

 

 

 

아래 항목 6개를 위 이미지와 같이 선택해주시면 되는데요!

ecr-public:DeleteRepository

ecr-public:DescribeImages

ecr-public:DescribeRepositories

ecr-public:initiateLayerUpload

ecr-public:ListImages

ecr-public:PutImages

이름이 비슷한 것들도 있어서 반드시 맞게 체크하셨는지 확인해주세요!

 

 

 

그리고 저장 버튼을 누르시면 위 화면을 보실 수 있습니다!

항상 설정이나 환경 구축이 제일 힘든 것 같네요 ^^!

이제 얼마 안 남았습니다!

 

 

 

 

 

 

아까 화면의 우측 상단에서 "정책 JSON 편집"을 누르시면 위 화면이 나타납니다!

이 부분에서 "Actions"의 value값에 해당하는 부분을 편집하면 되는데요!

본 블로그 포스트 시에 코드를 기입했다가 다시 복사해서 붙여넣으니

줄바꿈 관련 에러가 계속 생겼었습니다 ^^;;

 

ECR JSON 정책편집 샘플코드.txt
0.00MB

 

텍스트 파일로 첨부를 할테니 다운 받으셔서 코드를 복사+붙여넣기 해주시면 되겠습니다 ^^!

 

 

해당 코드로 수정해주신 다음 "저장"을 눌러주시면 됩니다!

JSON 포맷이기 때문에 작은 기호 하나라도 놓치지 않도록 주의해주세요!

 

이 티스토리 블로그에 올린 것을 복사할 때

포스트 형식 때문에 줄바꿈에 의해 에러가 날 수 있어서 위와 같이 기재하였습니다 ^^!

 

 

 

이상으로 AWS ECR 관련 설정까지 마무리했습니다!

serverless 프레임워크를 이용한 서비스 배포 중

Docker 컨테이너화 작업을 위한 AWS 설정들이 얼추 마무리가 되었는데요!

 

성공적인 서비스 배포까지 계속 포스트하겠습니다 ^^!