- コンテナ›
- Elastic Container Registry›
- よくある質問
Amazon Elastic コンテナレジストリのよくある質問
全般
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) との統合により、各リポジトリのリソースレベルの制御がもたらされ、組織全体または世界中の誰とでもイメージを共有できます。
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 コンテナオーケストレーターまたはコンピューティングはそのコンテナイメージを本番用デプロイにプルできます。
Amazon ECR の料金はどのようになっていますか?
Amazon ECR に前払い料金などの義務はありません。 パブリックリポジトリまたはプライベートリポジトリに保存するデータとインターネットに転送するデータの量に対してのみ、料金をお支払いいただきます。詳細については、料金ページをご覧ください。
Amazon ECR はグローバルサービスですか?
Amazon ECR はリージョンごとのサービスで、イメージのデプロイ方法をお客様が柔軟に決められる設計になっています。最適なパフォーマンスを発揮できるよう、Docker クラスターが実行されている AWS リージョンで、イメージをプッシュおよびプルできるようになっています。また、Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。リージョン間またはインターネット外へイメージをプルするには、別途、データ転送コストが必要になり、レイテンシーも発生します。
Amazon ECR はパブリックコンテナイメージをホストできますか?
はい。Amazon ECR には可用性が高いコンテナレジストリとウェブサイトがあります。これにより、パブリックコンテナソフトウェアを簡単に共有または検索できます。AWS アカウントの有無にかかわらず、誰でも Amazon ECR Public Gallery を使用して、Kubernetes のオペレーティングシステム、AWS 公開イメージ、Helm チャートなどのファイルなど、よく使用されるコンテナイメージを検索してダウンロードできます。
Amazon ECR のパブリックリポジトリとプライベートリポジトリはどのように異なりますか?
プライベートリポジトリはコンテンツ検索機能を提供せず、イメージのプルを許可する前に AWS アカウント認証情報を使用した Amazon IAM ベースの認証を必要とします。パブリックリポジトリには説明的なコンテンツがあり、AWS アカウントを必要とせず、IAM 認証情報を使用しなくても、誰でもどこからでもイメージをプルできます。パブリックリポジトリのイメージは、Amazon ECR パブリックギャラリーでも入手できます。
Amazon ECR ではどのようなコンプライアンス機能を有効にできますか?
Amazon ECR で AWS CloudTrail を使用すると、イメージをプルしたユーザーやイメージ間でタグが移動された時間など、API のすべてのアクションの履歴を提供できます。また、管理者は、どの EC2 インスタンスからどのイメージがプルされたかを確認することもできます。
Using Amazon ECR
Amazon ECR の使用を開始するにはどうすればよいですか?
Amazon ECR を開始する一番よい方法は、Docker CLI を使用して最初のイメージをプッシュおよびプルすることです。詳細については、開始方法ページにアクセスしてください。
VPC 内で Amazon ECR にアクセスできますか?
はい。インスタンスがパブリックインターネットを経由せずにプライベートリポジトリからイメージをプルできるように AWS PrivateLink エンドポイントを設定できます。
リポジトリやイメージを管理する最良の方法は何ですか?
Amazon ECR は、リポジトリを作成、モニタリング、および削除し、リポジトリ許可を設定するためのコマンドラインインターフェイスと API を提供します。Amazon ECR コンソールの [Repositories] セクションからアクセスできる Amazon ECR コンソールでも、同じ操作ができます。また、Amazon ECR は Docker CLI と統合されており、開発マシンでイメージのプッシュ、プル、およびタグ付けを行えます。
Amazon ECR を利用してイメージをパブリックに共有するにはどうすればよいですか?
Amazon ECR パブリックギャラリーにイメージを公開するには、AWS アカウントにサインインし、作成したパブリックリポジトリにプッシュします。アカウントごとに一意のエイリアスが割り当てられます。そのエイリアスは、公開するすべてのパブリックイメージを識別するイメージ URL で使用します。
パブリックイメージにカスタムエイリアスを使用できますか?
はい。予約済みのエイリアスでない限り、組織名やプロジェクト名などのカスタムエイリアスをリクエストできます。AWS のサービスであると分かるような名前は予約されています。AWS Marketplace のセラーであると分かるような名前も予約されている可能性があります。エイリアスリクエストが AWS の適正利用規約または他の AWS ポリシーに違反していない限り、数日以内にカスタムエイリアスリクエストを確認して承認します。
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
Amazon ECR は、AWS リージョン間でイメージをレプリケートしますか?
はい。Amazon ECR は、イメージの保存場所やデプロイ方法を柔軟に選択できるように設計されています。イメージを構築するデプロイパイプラインを作成し、それを 1 つのリージョンの Amazon ECR にプッシュできます。また、Amazon ECR は、イメージを他のリージョンやアカウントに自動的にレプリケートし、マルチリージョンクラスターへのデプロイを考慮します。
ローカル環境およびオンプレミス環境内で Amazon ECR を使用できますか?
はい。Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。
Amazon ECR Public Gallery は AWS が公開したイメージを提供しますか?
はい。Amazon EKS、Amazon SageMaker、AWS Lambda などのサービスは、公式のパブリックユースコンテナイメージとアーティファクトを Amazon ECR に公開します。
Amazon ECR は Amazon ECS で機能しますか?
はい。Amazon ECR は Amazon ECS と統合されているので、Amazon ECS で実行中のアプリケーションのコンテナイメージの保存、実行、管理を簡単に行えます。タスク定義で Amazon ECR リポジトリを指定するだけで、Amazon ECS がアプリケーションに最適なイメージを取得します。
Amazon ECR は AWS Elastic Beanstalk と連携しますか?
はい。AWS Elastic Beanstalk は、シングルコンテナおよびマルチコンテナ Docker 環境の両方で Amazon ECR をサポートしているため、AWS Elastic Beanstalk を使用して Amazon ECR に保存されたコンテナイメージを簡単にデプロイできます。必要な操作は、Dockerrun.aws.json 設定で Amazon ECR リポジトリを指定し、AmazonEC2ContainerRegistryReadOnly ポリシーをコンテナインスタンスロールにアタッチすることのみです。
Amazon ECR は、どのバージョンの Docker Engine をサポートしていますか?
Amazon ECR で現在サポートされているのは、Docker Engine 1.7.0 以上です。
Amazon ECR は、どのバージョンの Docker Registry API をサポートしていますか?
Amazon ECR でサポートされているのは、Docker Registry V2 API 仕様です。
Amazon ECR は、Dockerfile から自動的にイメージを構築しますか?
いいえ。ただし、Amazon ECR は、この機能がある一般的な CI/CD ソリューションのいくつかと統合されています。詳細については、Amazon ECR パートナーページをご覧ください。
Amazon ECR はフェデレーテッドアクセスをサポートしますか?
はい。Amazon ECR は、AWS マネジメントコンソールや AWS API への委任されたアクセスのための ID フェデレーションをサポートする AWS Identity and Access Management (IAM) と統合されます。
Amazon ECR は、Docker イメージマニフェスト仕様のどのバージョンをサポートしていますか?
Amazon ECR では、Docker Image Manifest V2、Schema 2 形式がサポートされています。Schema 1 イメージとの下位互換性を維持するため、Amazon ECR では Schema 1 形式でアップロードされるイメージを引き続き受け入れています。さらに Amazon ECR では、Docker Engine の古いバージョン (1.9 以前) を使用してプルする場合、Schema 2 から Schema 1 イメージに下位変換できます。
Amazon ECR は Open Container Initiative (OCI) 形式をサポートしていますか?
はい。Amazon ECR は、オープンコンテナ規格 (OCI) イメージ仕様と互換性があるため、OCI イメージとアーティファクトをプッシュおよびプルできます。Amazon ECR では、Docker Image Manifest V2、Schema 2 イメージ、OCI イメージ間でもプルする際に変換できます。
セキュリティ
Amazon ECR は、コンテナイメージのセキュリティの確保にどのように役立ちますか?
Amazon ECR では、Amazon S3 のサーバー側暗号化または AWS KMS 暗号化を使用して保管中のイメージが自動的に暗号化し、HTTPS を介してコンテナイメージを転送します。AWS Identity and Access Management (IAM) のユーザーとロールを使用してイメージへのアクセス権限の管理やアクセスの制御を行えるようポリシーを設定できるため、認証情報を EC2 インスタンスで直接管理する必要はありません。
許可のために AWS Identity and Access Management (IAM) を使用するにはどうすればよいですか?
IAM のリソースベースのポリシーを使用して、コンテナイメージにアクセスできるユーザーやアクセス元 (EC2 インスタンスなど)、およびアクセスできる方法、時間、場所を制御して、モニタリングすることができます。使用を開始するには、AWS マネジメントコンソールを使用して、リポジトリに対してリソースベースのポリシーを作成します。または、Amazon ECR CLI を使って、サンプルポリシーをリポジトリにアタッチすることもできます。
複数の AWS アカウント間でイメージを共有できますか?
はい。 クロスアカウントのイメージ共有のためにポリシーを作成して設定する方法については、こちらの例をご覧ください。
Amazon ECR はコンテナイメージの脆弱性をスキャンしますか?
Amazon ECR を有効にして、オペレーティングシステムのさまざまな脆弱性についてコンテナイメージを自動的にスキャンできます。API コマンドを使用して画像をスキャンすることもできます。スキャンが完了すると、Amazon ECR が API を介してコンソールに通知します。画像スキャンを強化するために、Amazon Inspector を有効にできます。