コンテンツにスキップ

Elastic Container Registry (ECR)

1. サービス概要

Amazon Elastic Container Registry (ECR) は、コンテナイメージを保存、管理、デプロイするためのフルマネージドのコンテナレジストリサービスである。
開発者は、Docker イメージなどのコンテナイメージをプライベートなレジストリに保存し、安全にアクセス、共有、デプロイできる。
ECR は、コンテナイメージのストレージ、スケーラビリティ、セキュリティを提供し、コンテナベースのアプリケーション開発とデプロイメントを容易にする。

主なユースケースとして、

  • Docker コンテナイメージの保存と共有
  • コンテナベースのアプリケーションのデプロイ
  • CI/CD パイプラインでのコンテナイメージの管理
  • マイクロサービスアーキテクチャの構築

などが挙げられる。
Amazon ECR は、これらのユースケースに対応するための様々な機能と、AWS の他のサービスとの統合を提供する。

2. 主な特徴と機能

2.1 プライベートコンテナレジストリ

ECR は、プライベートなコンテナイメージレジストリを提供する。
開発者は、自分のコンテナイメージを、自分の AWS アカウント内のプライベートなレジストリに保存し、安全に管理できる。

2.2 パブリックコンテナレジストリ

ECR Public Registry を使用すると、誰でもアクセスできるパブリックなコンテナイメージを公開できる。
これにより、コンテナイメージをコミュニティに共有したり、公開されているコンテナイメージを簡単に利用できる。

2.3 Docker イメージのサポート

ECR は、Docker イメージをサポートしており、Docker CLI や Docker API を使って、コンテナイメージをプッシュ/プルできる。
Docker 環境とシームレスに連携できる。

2.4 イメージスキャン

コンテナイメージの脆弱性を自動的にスキャンできる。
脆弱性が検出された場合、アラートを通知し、脆弱性への対応を促する。

2.5 アクセス制御

IAM ポリシーを使用して、コンテナイメージへのアクセスを制御できる。
特定のユーザーやグループに対して、コンテナイメージのプッシュ、プル、削除などの権限を付与できる。

2.6 イメージライフサイクルポリシー

イメージライフサイクルポリシーを使用して、古いコンテナイメージを自動的に削除できる。
これにより、不要なイメージを削除し、ストレージコストを削減できる。

2.7 統合性と拡張性

Amazon ECR は、AWS の他のサービス(Amazon ECS、Amazon EKS、AWS CodeBuild、AWS CodePipeline など)と密接に統合されており、コンテナベースのアプリケーション開発とデプロイメントを効率的に行える。
また、API を利用して、コンテナイメージの管理を自動化することもできる。

3. アーキテクチャおよび技術要素

  1. 開発者は、Docker CLI や Docker API を使って、コンテナイメージを Amazon ECR にプッシュ。
  2. ECR は、コンテナイメージを安全に保存。
  3. コンテナオーケストレーションサービス(ECS, EKS)や AWS CodeBuild などのサービスが、ECR からコンテナイメージをプル。
  4. コンテナイメージを使って、アプリケーションをデプロイ。

Amazon ECR は、AWS のインフラ上に構築されており、高い可用性とスケーラビリティを提供する。
コンテナイメージの保存や管理は AWS が行うため、ユーザーはインフラの管理を行う必要はない。

4. セキュリティと認証・認可

Amazon ECR は、コンテナイメージのセキュリティを確保するために、以下の機能を提供する:

  • IAM 統合: AWS Identity and Access Management (IAM) を利用して、ECR へのアクセスを制御する。
  • VPC エンドポイント: VPC 内から ECR へアクセスする際に、インターネットを経由せずにアクセスできる。
  • データ暗号化: コンテナイメージは転送中および保存時に暗号化される。
  • イメージスキャン: コンテナイメージの脆弱性を自動的にスキャンし、セキュリティリスクを軽減。
  • アクセス制御: IAM ポリシーで、コンテナイメージのプッシュ、プル、削除などの権限を制御できる。

これらのセキュリティ対策により、コンテナイメージとそのデータを安全に保護する。

5. 料金形態

Amazon ECR の料金は主に以下に基づきる:

  • ストレージ: 保存したコンテナイメージのストレージ容量に応じて課金。
  • データ転送: コンテナイメージをプルする際に発生するデータ転送量に応じて課金。
  • イメージスキャン: イメージスキャン機能を利用する場合、追加料金が発生。

6. よくあるアーキテクチャ・設計パターン

Amazon ECR は、様々なコンテナベースのアプリケーション開発に利用できる。
一般的なパターンは以下の通りである:

  • Docker コンテナイメージの保存と共有: Docker コンテナイメージをプライベートなレジストリに保存し、チームで共有。
  • コンテナベースのアプリケーションのデプロイ: Amazon ECS や Amazon EKS でコンテナベースのアプリケーションをデプロイし、ECR からコンテナイメージをプル。
  • CI/CD パイプラインでのコンテナイメージの管理: AWS CodeBuild や AWS CodePipeline でコンテナイメージをビルドし、ECR にプッシュ。
  • マイクロサービスアーキテクチャ: マイクロサービスごとにコンテナイメージを管理し、ECR で一元管理。
  • コンテナイメージの脆弱性管理: イメージスキャン機能を利用し、コンテナイメージの脆弱性を定期的にチェック。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS マネジメントコンソールから Amazon ECR を開き、新しいリポジトリを作成。
  2. Docker CLI で AWS にログイン。
  3. Docker イメージをビルドし、作成したリポジトリにタグ付け。
  4. Docker CLI を使って、コンテナイメージを ECR にプッシュ。
  5. コンテナオーケストレーションサービス(ECS, EKS)や AWS CodeBuild などのサービスから、ECR のコンテナイメージをプルし、デプロイ。

8. 試験で問われやすいポイント

8.1 プライベートコンテナレジストリ

  • 機能: プライベートなコンテナイメージを保存し、安全に管理。
  • 利点: 外部からのアクセスを制限し、セキュリティを強化。
  • 試験対策: プライベートレジストリの利点、アクセス制御が問われる。

8.2 パブリックコンテナレジストリ

  • 機能: パブリックなコンテナイメージを公開。
  • 利点: コンテナイメージをコミュニティに共有、公開されているイメージを簡単に利用。
  • 試験対策: パブリックレジストリの利点、利用方法が問われる。

8.3 Docker イメージのサポート

  • 連携: Docker CLI、Docker API。
  • 操作: Docker イメージのプッシュ、プル。
  • 試験対策: Docker との連携方法、Docker コマンドが問われる。

8.4 イメージスキャン

  • 機能: コンテナイメージの脆弱性を自動的にスキャン。
  • 目的: セキュリティリスクを軽減。
  • 試験対策: イメージスキャンの機能、脆弱性対応が問われる。

8.5 アクセス制御

  • 利用サービス: IAM ポリシー。
  • 対象: コンテナイメージのプッシュ、プル、削除などの権限。
  • 試験対策: IAM ポリシーの設定、アクセス制御の方法が問われる。

8.6 イメージライフサイクルポリシー

  • 機能: 古いコンテナイメージを自動的に削除。
  • 目的: ストレージコストを削減。
  • 試験対策: ライフサイクルポリシーの設定、削除ルールが問われる。

8.7 料金体系

  • 課金対象: ストレージ容量、データ転送量、イメージスキャン機能。
  • 最適化: 不要なイメージの削除、イメージサイズの最適化がコスト削減に有効。

8.8 類似・関連サービスとの比較

  • Docker Hub: パブリックなコンテナイメージを共有するためのプラットフォーム。ECR は AWS に特化したプライベートレジストリ。
  • Amazon S3: オブジェクトストレージサービス。ECR はコンテナイメージの保存と管理に特化。

8.9 試験で頻出となる具体的な問われ方と答え

  • Q: Amazon ECR は何を提供するサービスか?
  • A: コンテナイメージを保存、管理、デプロイするためのフルマネージドのコンテナレジストリサービスである。
  • Q: Amazon ECR でサポートされているコンテナイメージは何か?
  • A: Docker イメージをサポートしている。
  • Q: Amazon ECR のコンテナイメージへのアクセスはどのように制御するか?
  • A: IAM ポリシーを使ってアクセスを制御する。
  • Q: Amazon ECR のイメージスキャン機能は何をするか?
  • A: コンテナイメージの脆弱性を自動的にスキャンする。
  • Q: Amazon ECR の料金はどのように計算されるか?
  • A: ストレージ容量、データ転送量、イメージスキャン機能に基づいて計算される。