Amazon Web Services ブログ

Amazon Elastic Container Registry – Pull Through 型のキャシュリポジトリを発表

コンテナを使用してアプリケーションをホストすることにした組織、開発チーム、および個々のデベロッパーは、その高い可用性と強力なセキュリティを活用するために、Amazon Elastic Container Registry からすべてのイメージをソースすることを好む場合があり、また、そうしなければならないこともあります。これらの要件を満たすために、お客様は、パブリックレジストリから Amazon Elastic Container Registry のプライベートリポジトリにイメージを手動でプルして同期状態を維持するという手間のかかる作業を行う必要がありました。この作業により、運用が複雑になり、メンテナンスコストが増加し、デベロッパーの生産性が低下します。また、レジストリによっては、イメージをダウンロードできる頻度に制限や制約がある場合があります。この制限に達すると、イメージのプルがスロットリングされたり、拒否されたりした場合には構築エラーが発生するため、デベロッパーとビジネスのリリース速度に影響が出始めます。

2021 年 11 月 29 日(米国時間)、認証を必要としないパブリックにアクセス可能なレジストリ向けに、Amazon Elastic Container Registry でのPull Through 型のキャッシュリポジトリのサポートを発表しました。Pull Through 型のキャッシュリポジトリを使用すると、デベロッパーは、パブリックレジストリからソースするコンテナイメージ向けの Amazon Elastic Container Registry の改善されたパフォーマンス、セキュリティ、および可用性の恩恵を受けることができます。Pull Through 型のキャッシュリポジトリ内のイメージは、アップストリームのパブリックレジストリと自動的に同期されるため、イメージのプルや定期的な更新といった人による作業が不要になります。

Pull Through 型のキャッシュリポジトリでは、すべてのネットワークトラフィックをプライベートに保つことを可能にする AWS PrivateLink、脆弱性を検出するためのイメージスキャン、AWS Key Management Service (KMS) キーを使用した暗号化、クロスリージョンレプリケーション、ライフサイクルポリシーなど、Amazon Elastic Container Registry に組み込まれているセキュリティ機能の恩恵を受けることができます。クロスリージョンレプリケーションは、有効になっている場合に、更新されたイメージを追加のリージョンに自動的に配布するように設計されています。必要なのは、該当のリージョンからイメージがダウンロードされるように、プル URL を更新することだけです。

Pull Through 型のキャッシュリポジトリからイメージを消費する場合、アプリケーションをサポートする構築およびデプロイインフラストラクチャだけでなく、ダウンロードのスロットリングは、デベロッパーにとって問題ではなくなりました。Amazon Elastic Container Registry はキャッシュリポジトリの同期状態を自動的に維持するように設計されていますが、リポジトリはいつでも手動で同期できます。また、必要に応じて、自動同期をオフにすることもできます。

Amazon Elastic Container Registry のPull Through 型のキャッシュリポジトリの開始方法
Pull Through 型のキャッシュリポジトリの設定プロセスはシンプルです。次の例では、南米 (サンパウロ) リージョンの Amazon Elastic Container Registry Public をアップストリームレジストリとして使用しています。

まず、プライベートレジストリの設定を変更して、パブリックにアクセス可能なアップストリームレジストリを参照するルールを追加する必要があります (追加のアップストリームレジストリが必要な場合は、複数のルールを設定できます)。Amazon Elastic Container Registry コンソールで、[Private registry] (プライベートレジストリ) を選択し、[Pull through cache] (Pull Through 型のキャッシュ) パネルで [Edit] (編集) を選択して設定を変更します。この操作を実行すると、[Pull through cache configuration] (Pull Through 型のキャッシュ設定) ページに移動します。ここで [Add rule] (ルールを追加) を選択します。

[Create pull through cache rule] (Pull Through 型のキャッシュルールを作成) のページで、アップストリームレジストリ (この例では ECR Public) を選択します。プルコマンドでイメージを参照する際に使用する名前空間も設定する必要があります。この例では、提案された名前空間 ecr-public を使用します。

アップストリームレジストリとしての ECR Public の設定

[Save] (保存) を選択すると、[Pull through cache configuration] (Pull Through 型のキャッシュ設定) ページに戻ります。ここでは、新しく設定したルールが一覧表示されます。これで、イメージをプルするときにキャッシュリポジトリを利用する準備が整いました。

アップストリームレジストリ用に新しく設定されたルール

イメージを参照するには、URL 形式 <accountId>.dkr.ecr.<region>.amazonaws.com/<namespace>/<sourcerepo>:<tag> を使用して、プル URL で選択した名前空間を指定する必要があります。イメージがプルされると、そのイメージについて、名前空間に関連付けられているキャッシュリポジトリがチェックされます。私の場合、キャッシュリポジトリはまだ存在しませんが、自分で作成する必要はありません。イメージは、名前空間に関連付けられたパブリックレジストリのアップストリームリポジトリから取得され、自動的に作成される新しいキャッシュリポジトリに保存されます。

以下のコマンドプロンプトセッションでは、まず自分のレジストリで認証を行い、Amazon Elastic Container Registry Public から Amazon Linux 2 イメージをキャッシュにプルします。

C:\ aws ecr get-login-password --region sa-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.sa-east-1.amazonaws.com/ecr-public
Login Succeeded
C:\ docker pull 111122223333.dkr.ecr.sa-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest
latest: Pulling from ecr-public/amazonlinux/amazonlinux
e11e8d46e102: Pull complete
Digest: sha256:916dbbb288948b54c94b5b9f0769085aa601d4468d099e90d8a7da5cfa551b50
Status: Downloaded newer image for 111122223333.dkr.ecr.sa-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest
111122223333.dkr.ecr.us-west-2.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest

Amazon Elastic Container Registry コンソールで、[Repositories] (リポジトリ) ページをチェックすると、プルしたイメージを含む新しいプライベートリポジトリが作成されたこと、およびPull Through 型のキャッシュがアクティブであることが示されます。

キャッシュリポジトリのプルされたイメージ

イメージとPull Through 型のキャッシュリポジトリの操作は、Dockerfile でも同様に簡単です。必要なのは、プル URL の名前空間を使用して必要なイメージを参照することだけです。イメージがキャッシュリポジトリにない場合は、キャッシュリポジトリにプルされて保存されます。キャッシュされたイメージは、最新バージョンであるかどうかを検証するために 24 時間に 1 回チェックされ、タイマーはキャッシュされたイメージの最後のプルタイムに基づきます。

Pull Through 型のキャッシュリポジトリの使用を今すぐ開始しましょう
Amazon Elastic Container Registry のPull Through 型のキャッシュリポジトリは、現在、すべての商用 AWS リージョンでご利用いただけます。Pull Through 型のキャッシュリポジトリは無料でご利用いただけます。Amazon Elastic Container Registry の標準ストレージ料金とデータ転送料金のみが適用されます。料金の詳細については、Amazon Elastic Container レジストリの料金のページをご覧ください。Amazon Elastic Container Registry ユーザーガイドでPull Through 型のキャッシュリポジトリの詳細をご覧いただき、今すぐ使用を開始しましょう。

– Steve

原文はこちらです。