Skip to content
Latchkey

Amazon ECRとは?AWSのContainer Registry

Amazon ECR (Elastic Container Registry) は、コンテナイメージを保存、バージョン管理、pullするためのAWSのマネージドregistryで、IAMおよびAWSの他の部分と統合されています。

pipelineがコンテナイメージをbuildすると、それを保存する場所が必要になります。ECRがAWS上のその置き場所です: ECS、EKS、Lambdaがpullするプライベート (またはパブリック) なregistryです。AWSネイティブなので、認証とパーミッションは別個のクレデンシャルではなくIAMを通じて流れます。

repositoryとimage tag

各アプリケーションはECR repositoryを持ち、各buildはタグ付きイメージ (多くの場合コミットSHAやバージョン) を生成します。immutableなタグを強制でき、タグが常に同じイメージを指すようにできます。これは再現可能なdeployにとって価値があります。

IAM経由の認証

registryのパスワードを保存しません。代わりに、AWS CLIがあなたのIAMアイデンティティに紐付いた短命のloginトークンを取得し、Dockerがそれを使ってpushまたはpullします。pipelineでは、これはIAM/OIDC roleが静的なsecretなしにregistryアクセスを付与することを意味します。

組み込み機能

  • 既知の脆弱性向けのimage scanning。
  • 古いまたはタグなしイメージを期限切れにするlifecycle policies。
  • cross-regionおよびcross-accountのレプリケーション。
  • 保管時のイメージの暗号化。

ECR対他のregistry

ECRはDocker Hub、GHCR、その他のregistryと競合します。AWS上での利点は、緊密なIAM統合と、同じregionのECS、EKS、Fargateからの低レイテンシなpullで、コンテナの起動を高速化します。

CI/CDでの役割

pipelineがECRにloginし、イメージをbuildし、コミットSHAでタグ付けし、pushします。deployステップは、ECSやEKSを更新する際にそのタグを参照します。LatchkeyのrunnerはDockerのlayerをECRにキャッシュすることもでき、rebuildが変更されていないlayerを再利用してpushを高速に保ちます。

重要なポイント

  • ECRはAWSのマネージドcontainer registryで、認証のためにIAMと統合されています。
  • pushとpullは、保存されたパスワードではなく短命のIAMトークンを使います。
  • pipelineは、ECS、EKS、Lambdaにデプロイする前にタグ付きイメージをECRにpushします。

関連ガイド