Amazon Elastic Container Registry の開始方法

まずは無料で始める

AWS 無料利用枠の一環として、Amazon Elastic Container Registry を無料でお試しいただけます。Amazon ECR では、新しいお客様に、月 500 MB 分のストレージを 1 年間にわたって提供いたします。

AWS 無料利用枠の詳細はこちら »


Q: Amazon Elastic Container Registry (ECR) とは何ですか?
Amazon Elastic Container Registry (ECR) は、完全マネージド型の Docker コンテナレジストリです。このレジストリを使うと、開発者は Docker コンテナイメージを簡単に保存、管理、デプロイできます。Amazon ECR は Amazon Elastic Container Service (ECS) に統合されているため、開発から本番までのワークフローを簡略化できます。Amazon ECR を使用すると、自前のコンテナリポジトリの運用や、基盤となるインフラストラクチャのスケーリングの検討は不要になります。Amazon ECR は非常に可用性が高くスケーラブルなアーキテクチャでイメージをホストするため、コンテナをアプリケーションに確実にデプロイすることが可能です。AWS Identity and Access Management (IAM) に統合すると、各リポジトリをリソースレベルで制御できます。

Q: Amazon ECR を使用する利点は何ですか?
Amazon ECR を使用すると、コンテナレジストリを動かすためのインフラストラクチャの運用やスケーリングが不要になります。Amazon ECR ではストレージとして Amazon S3 が使用され、コンテナイメージの可用性とアクセス可能性が高くなるため、アプリケーションの新しいコンテナを安心してデプロイできます。Amazon ECR では、コンテナイメージは HTTPS 経由で転送され、保管時にはイメージが自動的に暗号化されます。各リポジトリへのアクセス権限を管理するポリシーを設定し、IAM ユーザー、IAM ロール、または他の AWS アカウントへのアクセスを制限できます。Amazon ECR は Amazon ECS と Docker CLI に統合されているため、開発から本番までのワークフローを簡略化できます。Docker CLI を使用して開発マシンからコンテナイメージを簡単に Amazon ECR にプッシュでき、Amazon ECS ではそのコンテナイメージを本番用デプロイにプルできます。

Q: Amazon ECR の料金体系について教えてください。
Amazon ECR に前払い料金や長期契約はありません。リポジトリに保存するデータとインターネットに転送するデータの量に対してのみ、料金をお支払いいただきます。詳細については、料金表ページをご覧ください。

Q: Amazon ECR はグローバルなサービスですか?
Amazon ECR はリージョンごとのサービスで、イメージのデプロイ方法をお客様が柔軟に決められるような設計になっています。最適なパフォーマンスを発揮できるよう、Docker クラスターが実行されているリージョンで、イメージをプッシュおよびプルできるようになっています。また、Docker が実行されていれば、デスクトップやオンプレミス環境など、場所を問わず Amazon ECR にアクセスできます。リージョン間またはインターネット外へイメージをプルには、別途、データ転送コストが必要になり、レイテンシーも発生します。

Q: Amazon ECR ではパブリックコンテナイメージをホストできますか?
Amazon ECR では、現在プライベートイメージのみをサポートしています。ただし、IAM のリソースベースのアクセス権限を使用すれば、各リポジトリのポリシーを設定して、IAM ユーザー、IAM ロール、または他の AWS アカウントへのアクセスを許可できます。

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

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

Q: VPC 内で Amazon ECR にアクセスできますか?
VPC 内で Amazon ECR を使用するには、インスタンスからインターネットにアクセスできる必要があります。インスタンスからインターネットへのアクセスの確立には、Amazon VPC NAT ゲートウェイを使用できます。

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

Q: Amazon ECR では、リージョン間でイメージをレプリケートできますか?
いいえ。Amazon ECR は、イメージの保存場所やデプロイ方法を柔軟に選択できるように設計されています。イメージを構築するデプロイパイプラインを作成し、それを任意のリージョンの Amazon ECR にプッシュしてから、そのイメージを Docker クラスターにデプロイできます。

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

Q: Amazon ECR は Amazon Linux コンテナイメージを提供していますか?
はい。Amazon ECR は Amazon Linux コンテナイメージを提供しています。詳しい手順については、フォーラムを参照してください。お客様はこれらのコンテナイメージを使用して、Linux ベースの Docker 環境でワークロードを実行できます。このコンテナには最小限のパッケージセットが含まれており、Amazon Linux AMI パッケージをすべてインストールできます。EC2 の Amazon Linux AMI と同様に、Amazon Linux コンテナイメージは、Amazon から提供されるセキュリティアップデート、ローリングリリース、パッケージアップデートによって継続的に更新されます。

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 と統合されており、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 Image Manifest V2、Schema 2 イメージ、OCI イメージ間でもプルする際に変換できます。

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

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

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