ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] AWS ECR을 활용해서 EC2에서 도커로 배포하기-1
    docker 2024. 12. 8. 13:49

     

    AWS ECR을 활용해서 EC2에서 도커로 배포하기

     

     

    AWS ECR이 뭘까?


    - 기존에는 필요한 이미지를 다운 받을때 dockerhub를 이용했었다. 

    (dockerhub는 이미지를 저장하고 다운받을 수 있는 저장소이다.)


    - dockerhub와 같은 역할을 하지만 브랜드만 다른 서비스가 있다. 그것이 AWS ECR이다. AWS ECR도 dockerhub와 마찬가지로 이미지를 저장하고 다운받는 역할을 한다


     

    그럼 왜 dockerhub를 안쓰고 AWS ECR을 쓸까?


    최근에는 aws클라우드 환경에서 인프라를 구축하는 일이 많아졌다. AWS ECR을 사용하면 

     

    1. AWS Resource(서비스)와 연동이 편하고

    2. AWS내에서 한번에 관리할 수 있다는 장점이 있다.

     

    (물론 dockerhub를 써도 상관없다)



    AWS ECR을 왜 배울까?


    docker를 사용하지 않았을때는 많은 사람들이 github를 사용해서 배포하였다. 프로젝트 코드를 github에 push한뒤에 aws ec2에 접속해서 해당코드를 pull받아서 실행한다.

    이 방식은 프로젝트 코드 전체를 EC2로 이동시켜야하며, 프로젝트 코드를 실행시킬 런타임환경(node, jdk)등도 설치되어있어야 실행이된다.

    docker의 가장 큰 장점은 이식성이다. docker만 깔려있으면 어디서든 내가 원하는 프로젝트를 실행 시킬 수 있다는 장점이 있다. 이때 github를 활용해 프로젝트 코드 전체를 ec2로 옮겨 docker기반으로 실행시켜도 된다. 하지만 프로젝트에서 필요한 코드에 대해서만 docker 이미지로 빌드해, ec2에서는 그 이미지만 다운받아서 실행시키는게 훨씬 더 단순하다.

    정리하자면 AWS ECR을 배우는 이유는 훨씬 더 간단하게 프로젝트를 배포하고 실행시키기위해서이다.

     

     

     

    ecr로 ec2에 컨테이너 배포 과정

    로컬컴퓨터 --(이미지 푸시)-->  ECR --(이미지 풀)--> EC2 의 과정을 거쳐서 이미지가 전달된다.

     

    준비사항

    1. 로컬컴퓨터와 ec2에 모두 aws CLI 가 설치되어 있어야한다. 

    2. ECR 권한이 있는 IAM 사용자 계정을 발급받은 뒤 이 IAM사용자 계정의 액세스키를 로컬컴퓨터에 설정해야한다.

     

     

     

    준비사항1 - AWS CLI설치


    - 맥OS

    brew install awscli
    aws --version # 설치 확인

     

     

    - 윈도우

    https://awscli.amazonaws.com/AWSCLIV2.msi # 이 링크에서 다운받아 설치
    aws --version # 설치(버전)확인



    - 우분투(ec2)

    sudo apt install unzip
    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    unzip awscliv2.zip
    sudo ./aws/install
    aws --version # 설치확인

     

     

     

     

    준비사항2 - IAM 사용자 생성 / 등록

     

    1. IAM 사용자 생성하기

    AWS IAM - 사용자 - 사용자 생성(사용자이름지정, 직접정책연결) - AmazonEC2ContainerRegistryFullAccess권한 부여
    - 사용자 생성

     

     

    2. IAM 사용자 액세스키 발급

    AWS IAM 사용자 - 보안자격증명 - 액세스키 발급 - 외부에서 실행되는 어플리케이션 - 액세스키 생성

    ※한번 보여진 액세스 키는 다시 볼 수 없으므로 따로 저장해서 잘 관리한다

     

     

    3. 로컬과 ec2에 액세스키 등록

     

    로컬(AWS CLI 설치된 상태)

    aws configure
    AWS Access Key ID [None]: [액세스키 입력]
    AWS Secret Access Key [None]: [액세스 시크릿 키 입력]
    Default region name [None]: [ap-northeast-2 입력]
    Default output format [None]: (무시)

     

    EC2(AWS CLI 설치된 상태) (동일)

    aws configure
    AWS Access Key ID [None]: [액세스키 입력]
    AWS Secret Access Key [None]: [액세스 시크릿 키 입력]
    Default region name [None]: [ap-northeast-2 입력]
    Default output format [None]: (무시)

     

    (준비사항 끝)

     

     

     

     

    AWS ECR(Elastic Container Registry) 셋팅하기

     

    1. ECR 레포지토리 생성

    AWS ECR(elastic container registry) - 레포지토리 이름 - 레포지토리 생성

    ※일반적으로 하나의 ECR 레포지토리에는 한종류의 이미지만 저장하고 관리한다

     

     

    2. 도커파일 작성

     

    3. ECR에 이미지 PUSH

    푸시명령보기 순서따라하기

    AWS ECR 레포지토리 - 푸시명령보기

     

     

    4. 필요한 곳에서 이미지 PULL

    AWS ECR 레포지토리 - 이미지 - 이미지 URI복사
    
    docker pull [이미지 URI]

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.