본문 바로가기
IT Knowledge/Cloud

AWS ECR(Elastic Container Registry) 사용하기(Private Repository)

by Seok. 2024. 10. 5.
반응형

[AWS ECR(Elastic Container Registry) 개요]

완전관리형 컨테이너 레지스트리로 모든 관리를 AWS에서 진행하며, 

컨테이너 소프트웨어를 Public / Private 으로 공유 배포할 수 있습니다. 

(Docker Hub or Harbor 같은 서비스로 생각하면 쉽다. )

 

  • Public Repository : 공개적으로 접근이 가능
  • Private Repository : 공개적으로 표시되지 않으며, 접근을 위한 IAM 및 Repository Policy 관리

 

Amazon ECR 통해 저장되는 이미지는 Amazon S3 저장되어 높은 가용성과 안정성을 보장받을 있습니다.

 

 

[AWS ECR 비용]

Private Repository Public Repository

 

[Repository 생성]

 

[ECR Options]

"Pull Through Cache" : 공개적으로 액세스 가능한 레지스트리의 이미지를 자동으로 동기화하도록 설계

소스 레지스트리 동기화를 지원하여, 퍼블릭 레지스트리에서 가져온 컨테이너 이미지를 최신상태로 유지하고, 고객이 퍼블릭 프라이빗 이미지 모두에 대해 ECR 기능을 사용할 있도록 합니다.

 

선택 가능한 업스트심 소스 레지스트리

 

[ScanOnPush]

Repository 이미지가 Push , 자동으로 Scan 할것인지 설정.

스캔을 한다면, 컨테이너 이미지의 소프트웨어 취약성을 식별하는데 도움이 됩니다.

(일반적인 취약성 노출(CVE) 등…)

 

 

[수명주기정책 규칙]

Repository 업로르된 컨테이너 이미지에 대한 LifeCycle 정책을 규칙으로 등록할 있다.

Ex) 이미지에 태그가 지정되지 않은 이미지는 30일후에 자동 삭제한다.

이미지에 특정 태그(ex. Dev*) 일치하는 경우 이미지의 개수를 10개만 보관한다.

 

출처: <https://aws.amazon.com/ko/about-aws/whats-new/2021/11/amazon-ecr-cache-repositories/>

# Terraform ECR LifeCycle 정책 생성
resource "aws_ecr_lifecycle_policy" "itp_policy" {
  repository = aws_ecr_repository.aws-itp-repo.name
  policy = <<EOF
    {
        "rules": [
            {
                "rulePriority": 1,
                "description": "Expire images older than 14 days",
                "selection": {
                    "tagStatus": "untagged",
                    "countType": "sinceImagePushed",
                    "countUnit": "days",
                    "countNumber": 14
                },
                "action": {
                    "type": "expire"
                }
            }
        ]
    }
    EOF
}

 

[수동 Push 명령]

MyRepo 대한 Push 명령

 

 

 


 

 

 

[FAQ]

Q. 특정 회사 Repository Remote Repository 등록하는 방법은?

불가

반응형

댓글