본문 바로가기

AWS

AWS ECR 에 Docker image push

728x90

이제 순서는 아래와 같다.

 

1) AWS ECR repository를 생성한다.

2) IAM > 사용자에 ECR 관련 권한추가

3) 만들어 놓은 EC2 instance에서 ecr에 접속하고 docker push 하면 끝.

 

매우 간단하다. 

 

1) AWS ECR 생성

간단히 ecrtest라는 repository를 생성했다.

 

2) IAM > 사용자에 ECR 관련 권한추가

권한은 AmazonEC2ContainerServiceforEC2Role  , AmazonEC2ContainerRegistryFullAccess  두개를추가헀다.

 

3) 만들어 놓은 EC2 instance에서 ecr에 접속하고 docker push

 

먼저 docker push를 하기 위해 앞에서 만들어 놓은 docker images에 docker tag를 붙이고 aws ecr에 로그인을 해야한다. 

 

1. aws configure 등록

root@~~# aws configure

AWS Access Key ID [None]: YOURACCESSKEY

AWS Secret Access Key [None]: YOURSECRETKEY

Default region name [None]: ap-northeast-2

Default output format [None]: json

2.  aws ecr get-login --no-include-email --region ap-northeast-2 실행

docker login 부터 끝까지 복사해서 실행하면 ecr에 로긴이 된다.

 

3. docker login하기

4. docker images에 tag하기

 

ECR reporsitory를 만들고 나면 URI가 아래와 같은 형태로 만들어지는것이 보인다.

{account-number}.dkr.ecr.ap-northeast-2.amazonaws.com/ecrtest

 

저 형식으로 docker tag를 만들어 주자

 

5. docker push 하기

 

위와 같이 ecr에 이미지가 들어가는것을 확인할수 있다.

다음은 ecs를 설정하고 ecs ec2 에 ecr에 올려놓은 이미지로 배포하는것을 해보도록 하자.

 

ecs에서는 다음과 같은 장점을 가지고 있다.

 

  1. 작업 정의 (Task Definitions): 작업 정의는 컨테이너화된 애플리케이션을 실행하기 위한 구성 정보를 정의합니다. 컨테이너 이미지, 리소스 요구 사항, 환경 변수 등을 포함합니다.
  2. 작업 (Tasks): 작업은 작업 정의를 기반으로 생성되며 하나 이상의 컨테이너를 실행하는 단위입니다. 작업은 컨테이너 인스턴스에서 실행됩니다.
  3. 작업 스케줄링 (Task Scheduling): ECS 오케스트레이션은 작업을 클러스터의 컨테이너 인스턴스에 스케줄링하여 효율적으로 분산 실행할 수 있습니다.
  4. 자동 확장 (Auto Scaling): ECS 오케스트레이션은 애플리케이션의 부하에 따라 자동으로 작업의 수를 조정하여 확장할 수 있습니다. 이를 통해 자원 사용을 최적화하고 성능을 유지할 수 있습니다.
  5. 로드 밸런싱 (Load Balancing): ECS 오케스트레이션은 작업을 여러 컨테이너 인스턴스에 분산시키고 로드 밸런서를 통해 트래픽을 분산합니다. 이를 통해 애플리케이션의 가용성과 확장성을 개선할 수 있습니다.
  6. 서비스 (Services): 서비스는 지속적으로 실행되는 작업을 나타내는 ECS 개체입니다. 서비스는 작업의 수를 정의하고 관리하며, 작업이 실패하면 다시 시작합니다.
  7. 작업 이벤트 (Task Events): ECS 오케스트레이션은 작업에 대한 다양한 이벤트를 제공하여 상태 변경, 오류 또는 리소스 상태에 대한 정보를 알려줍니다.
  8. 컨테이너 인스턴스 상태 검사 (Container Instance State Check): ECS 오케스트레이션은 컨테이너 인스턴스의 상태를 주기적으로 확인하고 이상이 있는 경우 자동으로 조치합니다.
  9. 컨테이너 인스턴스 자동 복구 (Container Instance Auto Recovery): 컨테이너 인스턴스의 문제가 감지되면 ECS 오케스트레이션은 해당 인스턴스를 자동으로 복구하여 애플리케이션의 가용성을 유지합니다.
728x90