Cloudformation을 사용하여 AWS ECR 리포지토리 생성

Cloudformation은 AWS 플랫폼에서 인프라를 쉽게 복제할 수 있는 강력한 기능을 제공하고 사용자가 인프라 변경 사항을 쉽게 제어하고 추적할 수 있는 기능을 제공하는 코드형 인프라(iac) 도구입니다.

Cloudformation은 json 또는 yaml 형식으로 작성된 템플릿을 사용하여 AWS 리소스를 설정하는 데 도움이 되므로 리소스 관리에 소요되는 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 집중할 수 있습니다. Cloudformation의 강력한 기능에 대한 자세한 내용은 설명서here를 참조하십시오.

이 기사는 클라우드포메이션을 사용하여 AWS에서 ecr repo를 가동하는 방법에 대해 설명합니다. terraform을 사용하여 ecr repo를 실행하는 방법에 관심이 있는 경우 해당 방법에 대한 내 문서를 참조하십시오.


전제 조건:


  • 명령줄 인터페이스에서 AWS 서비스와 상호 작용할 수 있도록 AWS CLI를 다운로드하고 설치합니다
  • .
  • AWS configure 명령을 사용하여 CLI를 통해 AWS 자격 증명을 구성합니다. 이를 위해서는 AWS에서 IAM을 사용하여 사용자를 생성해야 합니다.

  • 프로젝트 구조



    이 프로젝트에는 아래에 표시되고 설명된 세 개의 파일이 필요합니다.
    ecr.yml: AWS에서 ecr repo 리소스를 생성하는 데 사용되는 cloudformation 템플릿입니다.

    ecr.json: 스택이 생성되거나 업데이트될 때마다 동적으로 값을 입력할 수 있게 해주는 클라우드포메이션 매개변수입니다. Cloudformation 매개변수는 json 형식으로 작성됩니다.

    create.sh: 명령어를 반복적으로 입력하는 대신 클라우드포메이션 스택을 생성하는 명령어가 주로 포함된 파일이다.

    Ecr_cloudformation
  • ecr.yml
  • ecr.json
  • create.sh



  • 프로젝트 구성



    1단계: ecr.json 파일을 열고 다음 코드를 붙여넣고 저장합니다. 이것이 매개변수 템플릿입니다.

    [
       {
           "ParameterKey": "repoName",
           "ParameterValue": "ecr"
       }
    ]
    





    2단계: ecr.yml 파일을 열고 다음 코드 줄을 붙여넣고 저장합니다. 이것은 yaml 형식으로 작성된 리소스 템플릿이며 들여쓰기가 매우 중요합니다.

    AWSTemplateFormatVersion: 2010-09-09
    Description: Elastic Container Registory Repository using Cloudformation
    
    #------------------------
    #   PARAMETERS
    #------------------------
    Parameters:
      repoName: 
        Description: Name for ecr repo 
        Type: String
    
    #------------------------
    #   RESOURCES
    #------------------------ 
    Resources:
      ecrRepo:
        Type: AWS::ECR::Repository
        Properties: 
          RepositoryName: !Sub ${repoName}-repo
          ImageScanningConfiguration: 
            ScanOnPush: true
    




    1행: 템플릿의 기능을 식별하며 유일한 유효한 버전 값은 2010-09-09입니다. 값은 리터럴 문자열이어야 하며 이 섹션은 선택 사항입니다.

    2행: 이 섹션에서는 템플릿에 대한 설명을 추가할 수 있으며 선택 사항입니다.

    7 - 10행: 이것은 매개변수 섹션이며 여기에서 선언된 매개변수는 ecr.json 파일에서 선언된 기본값이 있는 repoName입니다.

    15 - 21행: 스택에 포함하려는 AWS 리소스를 선언하는 리소스 섹션입니다. 여기에 선언된 리소스는 ecrRepo입니다. 속성에서 repositoryName은 추가 확장명 -repo로 대체하여 매개 변수를 사용했습니다.


    3단계: 리소스를 가동하기 위해 cloudformation create-stack 명령을 사용하지만 쉽게 액세스하고 사용할 수 있도록 생성한 create.sh 파일에 포함할 것입니다.
    create.sh 파일을 열고 다음 명령을 추가합니다.

    aws cloudformation create-stack --stack-name $1 --template-body file://$2 --parameter file://$3 --region=us-east-1
    




    해당 명령을 실행하기 전에 프로젝트 디렉토리로 이동하고 아래 명령을 사용하여 create.sh 파일에 실행 액세스 권한을 부여해야 합니다.

    chmod +x create.sh
    




    파일에 실행 액세스 권한이 부여된 후에는 아래 명령을 사용하여 ecr 저장소를 가동할 cloudformation 스택을 안전하게 생성할 수 있습니다.

    ./create.sh ecr-repo ecr.yml ecr.json
    




    위의 응답은 cloudformation 스택이 성공적으로 생성되었음을 보여줍니다.

    create.sh 파일에서 다음 사항에 유의하십시오.
    $1 = ecr-repo
    $2 = ecr.yml
    $3 = ecr.json


    완전히 생성된 Cloudformation 스택


    ecr 저장소를 성공적으로 생성했습니다.

    Cloudformation을 사용하여 탄력적 컨테이너 레지스트리 리포지토리를 성공적으로 생성했으며 여기에 컨테이너 이미지를 안전하게 게시할 수 있습니다.


    끝까지 읽어주셔서 감사합니다. 질문이 있거나 개선할 방법이 있거나 인사를 전하는 방법이 있으면 댓글 섹션에서 저에게 연락해 주세요.

    다음 시간까지, 건배.

    좋은 웹페이지 즐겨찾기