全般

Q: Amazon Elastic Container Registry (Amazon ECR) とは何ですか?
Amazon ECR は、フルマネージド型のコンテナレジストリです。このレジストリを使うと、デベロッパーはコンテナイメージを簡単に保存およびデプロイできます。Amazon ECR は、 Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Kubernetes Service (Amazon EKS) 、および AWS Lambda に統合されているため、開発から本稼働までのワークフローを簡略化できます。Amazon ECR を使用すると、自前のコンテナリポジトリの運用や、基盤となるインフラストラクチャのスケーリングの検討は不要になります。Amazon ECR は非常に可用性が高くスケーラブルなアーキテクチャでイメージをホストするため、コンテナをアプリケーションに確実にデプロイすることが可能です。AWS Identity and Access Management (IAM) との統合により、各リポジトリのリソースレベルの制御がもたらされ、組織全体または世界中の誰とでもイメージを共有できます。
 
Q: Amazon ECR を使用する利点は何ですか?
Amazon ECR を使用すると、コンテナレジストリを動かすためのインフラストラクチャの運用やスケーリングが不要になります。Amazon ECR ではストレージとして Amazon Simple Storage Service (S3) が使用され、コンテナイメージの可用性とアクセス可能性が高くなるため、アプリケーションに新しいコンテナを確実にデプロイできます。Amazon ECR では、コンテナイメージは HTTPS 経由で転送され、保管時にはイメージが自動的に暗号化されます。各リポジトリへのアクセス許可を管理するポリシーを設定し、IAM ユーザー、IAM ロール、または他の AWS アカウントへのアクセスを制限できます。Amazon ECR は Amazon ECS、Amazon EKS、AWS Fargate、AWS Lambda、Docker CLI に統合されているため、開発から本稼働までのワークフローを簡略化できます。Docker CLI を使用して開発マシンからコンテナイメージを簡単に Amazon ECR にプッシュでき、Amazon コンテナオーケストレーターまたはコンピューティングはそのコンテナイメージを本番用デプロイにプルできます。
 
Q: Amazon ECR の料金体系について教えてください。
Amazon ECR に前払い料金などの義務はありません。 パブリックリポジトリまたはプライベートリポジトリに保存するデータとインターネットに転送するデータの量に対してのみ、料金をお支払いいただきます。詳細については、 料金表ページをご覧ください。
 
Q: Amazon ECR はグローバルなサービスですか?
Amazon ECR はリージョンごとのサービスで、イメージのデプロイ方法をお客様が柔軟に決められる設計になっています。最適なパフォーマンスを発揮できるよう、Docker クラスターが実行されている AWS リージョンで、イメージをプッシュおよびプルできるようになっています。また、Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。リージョン間またはインターネット外へイメージをプルするには、別途、データ転送コストが必要になり、レイテンシーも発生します。
 
Q: Amazon ECR はパブリックコンテナイメージをホストできますか?
はい。Amazon ECR には可用性が高いコンテナレジストリとウェブサイトがあります。これにより、パブリックコンテナソフトウェアを簡単に共有または検索できます。AWS アカウントの有無にかかわらず、誰でも Amazon ECR パブリックギャラリーを利用して、オペレーティングシステム、AWS で公開されたイメージ、Kubernetes 用のヘルムチャートなどのファイルといった、一般的に利用されるコンテナイメージを検索してダウンロードできます。
 
Q: Amazon ECR のパブリックリポジトリとプライベートリポジトリの違いは何ですか?
プライベートリポジトリはコンテンツ検索機能を提供せず、イメージのプルを許可する前に AWS アカウント認証情報を使用した Amazon IAM ベースの認証を必要とします。パブリックリポジトリには説明的なコンテンツがあり、AWS アカウントを必要とせず、IAM 認証情報を使用しなくても、誰でもどこからでもイメージをプルできます。パブリックリポジトリのイメージは、Amazon ECR パブリックギャラリーでも入手できます。

Q: Amazon ECR ではどのようなコンプライアンス機能を有効にできますか?
Amazon ECR で AWS CloudTrail を使用すると、イメージをプルしたユーザーやイメージ間でタグが移動された時間など、API のすべてのアクションの履歴を提供できます。また、管理者は、どの EC2 インスタンスがどのイメージをプルしたかを確認することもできます。

Amazon ECR の使用

Q: Amazon ECR の使用を開始するにはどのようにすればよいですか?
Amazon ECR を開始する一番よい方法は、Docker CLI を使用して最初のイメージをプッシュおよびプルすることです。詳細については、開始方法ページをご覧ください。

Q: VPC 内で Amazon ECR にアクセスできますか?
はい。インスタンスがパブリックインターネットを経由せずに、プライベートリポジトリからイメージをプルできるように、AWS PrivateLink エンドポイントを設定できます。

Q: リポジトリやイメージを管理する一番よい方法はどれですか?
Amazon ECR では、リポジトリの作成、モニタリング、削除、およびリポジトリへのアクセス許可の設定のために、コマンドラインインターフェイスと API を利用できます。Amazon ECR コンソールの [Repositories] セクションからアクセスできる Amazon ECR コンソールでも、同じ操作ができます。また、Amazon ECR は Docker CLI と統合されており、開発マシンでイメージのプッシュ、プル、およびタグ付けを行えます。

Q: Amazon ECR を使用してイメージを公開して共有するにはどうすればよいですか?
Amazon ECR パブリックギャラリーにイメージを公開するには、AWS アカウントにサインインし、作成したパブリックリポジトリにプッシュします。アカウントごとに一意のエイリアスが割り当てられます。そのエイリアスは、公開するすべてのパブリックイメージを識別するイメージ URL で使用します。
 
Q: パブリックイメージにカスタムエイリアスを使用できますか?
はい。予約済みのエイリアスでない限り、組織名やプロジェクト名などのカスタムエイリアスをリクエストできます。AWS のサービスであると分かるような名前は予約されています。AWS Marketplace のセラーであると分かるような名前も予約されている可能性があります。エイリアスリクエストが AWS の適正利用規約または他の AWS ポリシーに違反していない限り、数日以内にカスタムエイリアスリクエストを確認して承認します。
 
Q: Amazon ECR からパブリックイメージをプルするにはどうすればよいですか?
イメージの URL で一般的な「dockerpull」コマンドを使用してプルします。Amazon ECR パブリックギャラリーを使用して発行元のエイリアス、イメージ名、またはイメージの説明を使用してイメージを見つけることにより、この URL を簡単に検索できます。イメージの URL は public.ecr.aws/<alias>/<image>:<tag> の形式です。例: public.ecr.aws/eks/aws-alb-ingress-controller:v1.1.5
 
Q: Amazon ECR では、AWS リージョン間でイメージをレプリケートしますか?
はい。Amazon ECR は、イメージの保存場所やデプロイ方法を柔軟に選択できるように設計されています。イメージを構築するデプロイパイプラインを作成し、それを 1 つのリージョンの Amazon ECR にプッシュできます。また、Amazon ECR は、イメージを他のリージョンやアカウントに自動的にレプリケートし、マルチリージョンクラスターへのデプロイを考慮します。

Q: ローカルおよびオンプレミス環境内で Amazon ECR を使用できますか?
はい。Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。

Q: Amazon ECR パブリックギャラリーは AWS で公開されたイメージを提供しますか?
はい。Amazon EKS、Amazon SageMaker、AWS Lambda などのサービスは、公式のパブリックユースコンテナイメージとアーティファクトを Amazon ECR に公開します。 

Q: Amazon ECR は Amazon ECS と連携しますか?
はい。Amazon ECR は Amazon ECS と統合されているので、Amazon ECS で実行中のアプリケーションのコンテナイメージの保存、実行、管理を簡単に行えます。タスク定義で Amazon ECR リポジトリを指定するだけで、Amazon ECS がアプリケーションに最適なイメージを取得します。

Q: Amazon ECR は AWS Elastic Beanstalk と連携しますか?
はい。AWS Elastic Beanstalk では Amazon ECR の単一コンテナおよび複数コンテナの Docker 環境の両方がサポートされており、Amazon ECR に保存されたコンテナイメージを簡単に AWS Elastic Beanstalk にデプロイできます。必要な操作は、Dockerrun.aws.json 設定で Amazon ECR リポジトリを指定し、AmazonEC2ContainerRegistryReadOnly ポリシーをコンテナインスタンスロールにアタッチするだけです。

Q: Amazon ECR では、どのバージョンの Docker Engine がサポートされていますか?
Amazon ECR で現在サポートされているのは、Docker Engine 1.7.0 以上です。

Q: Amazon ECR では、どのバージョンの Docker Registry API がサポートされていますか?
Amazon ECR でサポートされているのは、Docker Registry V2 API 仕様です。

Q: Amazon ECR では、Dockerfile から自動的にイメージが構築されますか?
いいえ。ただし、Amazon ECR は、この機能がある一般的な CI/CD ソリューションのいくつかと統合されています。詳細については、Amazon ECR パートナーのページを参照してください。

Q: Amazon ECR で、フェデレーテッドアクセスはサポートされていますか?
はい。Amazon ECR は AWS Identity and Access Management (IAM) と統合されており、AWS マネジメントコンソールや AWS API に対して、ID フェデレーションによるアクセス委任を実行できます。

Q: Amazon ECR では、Docker Image Manifest 仕様のどのバージョンがサポートされていますか?
Amazon ECR では、Docker Image Manifest V2、Schema 2 形式がサポートされています。Schema 1 イメージとの下位互換性を維持するため、Amazon ECR では Schema 1 形式でアップロードされるイメージを引き続き受け入れています。さらに Amazon ECR では、Docker Engine の古いバージョン (1.9 以前) を使用してプルする場合、Schema 2 から Schema 1 イメージに下位変換できます。

Q: Amazon ECR はオープンコンテナ規格 (OCI) 形式をサポートしていますか?
はい。Amazon ECR は、オープンコンテナ規格 (OCI) イメージ仕様と互換性があるため、OCI イメージとアーティファクトをプッシュおよびプルできます。また、Amazon ECR は、Docker イメージマニフェスト V2、Schema 2 イメージ、OCI イメージ間でもプルする際に変換できます。

セキュリティ

Q: Amazon ECR は、コンテナイメージのセキュリティを確保するのにどのように役立ちますか?
Amazon ECR では、Amazon S3 のサーバー側暗号化または AWS KMS 暗号化を使用して保管中のイメージが自動的に暗号化し、HTTPS を介してコンテナイメージを転送します。AWS Identity and Access Management (IAM) のユーザーとロールを使用してイメージへのアクセス権限の管理やアクセスの制御を行えるようポリシーを設定できるため、認証情報を EC2 インスタンスで直接管理する必要はありません。

Q: アクセス許可に関して AWS Identity and Access Management (IAM) をどのように使用できますか?
IAM のリソースベースのポリシーを使用して、コンテナイメージにアクセスできるユーザーやアクセス元 (EC2 インスタンスなど)、およびアクセスできる方法、時間、場所を制御して、モニタリングすることができます。使用を開始するには、AWS マネジメントコンソールを使用して、リポジトリに対してリソースベースのポリシーを作成します。または、Amazon ECR CLI を使って、サンプルポリシーをリポジトリにアタッチすることもできます。

Q: 別の AWS アカウントとイメージを共有できますか?
はい。クロスアカウントのイメージ共有でポリシーを作成および設定する方法の例はこちらをご覧ください。

Q: Amazon ECR はコンテナイメージの脆弱性をスキャンしますか?
Amazon ECR を有効にして、オペレーティングシステムのさまざまな脆弱性についてコンテナイメージを自動的にスキャンできます。API コマンドを使用して画像をスキャンすることもできます。スキャンが完了すると、Amazon ECR が API を介してコンソールに通知します。画像スキャンを強化するために、Amazon Inspector をオンにすることができます。

Amazon ECR 料金の詳細はこちら

料金ページを見る
構築の準備はできましたか?
Amazon ECR の開始方法
ご不明な点がありますか?
お問い合わせ