반응형
Amazon Elastic Container Registry(ECR)는 Docker 컨테이너 이미지를 저장, 관리, 배포하기 위한 AWS의 서비스입니다. ECR 레포지토리는 AWS Management Console, AWS CLI, 또는 Infrastructure as Code(IaC) 도구를 통해 생성할 수 있습니다.
1. AWS Management Console로 생성
- ECR 서비스 이동
- AWS Management Console에 로그인.
- 검색창에 ECR을 입력하고 "Elastic Container Registry"를 클릭.
- 리포지토리 생성
- "리포지토리 생성(Create repository)" 버튼 클릭.
- 설정 입력
- 레포지토리 이름: 저장할 컨테이너 이미지의 이름(예: my-app).
- 레포지토리 유형:
- 공용(Public) 또는 프라이빗(Private) 중 선택.
- 취약점 스캔 활성화: 필요 시 "Enable scan on push" 체크.
- 암호화:
- 기본 암호화(AWS 관리형 키) 또는 사용자 정의 KMS 키 선택.
- 기타 옵션 설정.
- 리포지토리 생성 완료
- "생성(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
주의 사항
- IAM 권한 확인:
- ECR 리포지토리 생성 및 관리 권한이 있는 IAM 역할 또는 사용자 필요.
- 필요한 권한 예시:
{ "Effect": "Allow", "Action": [ "ecr:CreateRepository", "ecr:PutImageScanningConfiguration", "ecr:PutEncryptionConfiguration" ], "Resource": "*" }
- KMS 키 사용 시:
- 사용자 정의 KMS 키를 사용하는 경우, 해당 키에 대한 적절한 권한 부여 필요.
- 프라이빗 vs 공용 리포지토리:
- 프라이빗 리포지토리는 AWS 계정 내에서만 접근 가능.
- 공용 리포지토리는 인터넷을 통해 누구나 접근 가능.
결론
AWS ECR 리포지토리를 생성하는 방법은 Management Console, AWS CLI, Terraform, 또는 CloudFormation을 활용할 수 있습니다. 요구사항에 맞는 방법을 선택하여 레포지토리를 생성하면 컨테이너 이미지를 안전하게 저장하고 배포할 수 있습니다.
반응형