카테고리 없음

AWS ECR 레포지토리 생성 방법

idea9329 2024. 12. 16. 14:44
반응형

 

Amazon Elastic Container Registry(ECR)는 Docker 컨테이너 이미지를 저장, 관리, 배포하기 위한 AWS의 서비스입니다. ECR 레포지토리는 AWS Management Console, AWS CLI, 또는 Infrastructure as Code(IaC) 도구를 통해 생성할 수 있습니다.


1. AWS Management Console로 생성

  1. ECR 서비스 이동
    • AWS Management Console에 로그인.
    • 검색창에 ECR을 입력하고 "Elastic Container Registry"를 클릭.
  2. 리포지토리 생성
    • "리포지토리 생성(Create repository)" 버튼 클릭.
  3. 설정 입력
    • 레포지토리 이름: 저장할 컨테이너 이미지의 이름(예: my-app).
    • 레포지토리 유형:
      • 공용(Public) 또는 프라이빗(Private) 중 선택.
    • 취약점 스캔 활성화: 필요 시 "Enable scan on push" 체크.
    • 암호화:
      • 기본 암호화(AWS 관리형 키) 또는 사용자 정의 KMS 키 선택.
    • 기타 옵션 설정.
  4. 리포지토리 생성 완료
    • "생성(Create repository)" 버튼을 클릭하면 레포지토리가 생성됩니다.

2. AWS CLI로 생성

AWS CLI를 사용해 ECR 레포지토리를 생성할 수 있습니다.

명령어

aws ecr create-repository \
    --repository-name my-repo \
    --image-scanning-configuration scanOnPush=true \
    --encryption-configuration encryptionType=KMS,kmsKey=<KMS_KEY_ARN>

설명

  • --repository-name: 생성할 리포지토리 이름 지정.
  • --image-scanning-configuration scanOnPush=true: 푸시 시 취약점 스캔 활성화.
  • --encryption-configuration: KMS 키 암호화 설정.

3. Terraform으로 생성

Terraform과 같은 IaC 도구를 통해 자동화된 방식으로 ECR 레포지토리를 생성할 수 있습니다.

Terraform 코드 예제

resource "aws_ecr_repository" "example" {
  name = "my-repo"

  image_scanning_configuration {
    scan_on_push = true
  }

  encryption_configuration {
    encryption_type = "KMS"
    kms_key         = aws_kms_key.example.arn
  }
}

resource "aws_kms_key" "example" {
  description = "ECR encryption key"
}

4. CloudFormation으로 생성

AWS CloudFormation 템플릿을 사용하여 ECR 레포지토리를 생성할 수 있습니다.

CloudFormation 템플릿 예제

Resources:
  MyEcrRepository:
    Type: AWS::ECR::Repository
    Properties:
      RepositoryName: "my-repo"
      ImageScanningConfiguration:
        ScanOnPush: true
      EncryptionConfiguration:
        EncryptionType: KMS
        KmsKey: <KMS_KEY_ARN>

5. 생성 후 확인

AWS Console

  • ECR 페이지에서 새로 생성된 레포지토리를 확인할 수 있습니다.

AWS CLI

aws ecr describe-repositories --repository-name my-repo

주의 사항

  1. IAM 권한 확인:
    • ECR 리포지토리 생성 및 관리 권한이 있는 IAM 역할 또는 사용자 필요.
    • 필요한 권한 예시:
      {
        "Effect": "Allow",
        "Action": [
          "ecr:CreateRepository",
          "ecr:PutImageScanningConfiguration",
          "ecr:PutEncryptionConfiguration"
        ],
        "Resource": "*"
      }
  2. KMS 키 사용 시:
    • 사용자 정의 KMS 키를 사용하는 경우, 해당 키에 대한 적절한 권한 부여 필요.
  3. 프라이빗 vs 공용 리포지토리:
    • 프라이빗 리포지토리는 AWS 계정 내에서만 접근 가능.
    • 공용 리포지토리는 인터넷을 통해 누구나 접근 가능.

결론

AWS ECR 리포지토리를 생성하는 방법은 Management Console, AWS CLI, Terraform, 또는 CloudFormation을 활용할 수 있습니다. 요구사항에 맞는 방법을 선택하여 레포지토리를 생성하면 컨테이너 이미지를 안전하게 저장하고 배포할 수 있습니다.

반응형