目次
ECRとS3の違い
| 観点 | ECR | S3 |
|---|---|---|
| 保存対象 | コンテナイメージのみ | 任意のファイル(オブジェクト) |
| 主な操作 | docker push/pull | put/get(API、SDK、CLI) |
| 主な連携先 | ECS/EKS/Fargate/Lambda | ほぼ全AWSサービス・Webアプリ |
| 構造 | リポジトリ+タグ | バケット+オブジェクトキー |
| 用途 | コンテナのデプロイ | データ保管・配信・分析基盤など |
ECR:Dockerコンテナイメージ専用のレジストリ
S3:あらゆるファイル(オブジェクト)を保存する汎用ストレージ
専門の倉庫(ECR)と何でも入る巨大倉庫(S3)の関係に近いイメージです。
ECRは、Elastic Container Registryの略です。
ECRとは
コンテナイメージ専用のレジストリサービスです。DockerHubのAWS版と考えると分かりやすいです。
主な特徴
・Dockerイメージのpush/pullを行う
・ECS、EKS、Fargate、Lambdaなどと連携してコンテナをデプロイする
・イメージのタグ管理、バージョン管理ができる
・Inspectorと連携してイメージの脆弱性スキャンができる
・dockerpush/dockerpullコマンドや、ECS/EKSのデプロイで使われる
コンテナを動かすための、イメージの置き場という用途に特化しています。
ECRに保存するもの
業務アプリのDockerイメージ
例:
| sample-app:1.0 sample-app:1.1 sample-app:latest |
流れは次のようになります。
| Dockerイメージを作成 ↓ ECRへdocker push ↓ ECSやEKSがdocker pull ↓ コンテナを起動 |
ECRのイメージデータは内部的にS3に保存されています。ECRはS3の上に、コンテナイメージ管理に特化した機能(タグ管理、レイヤー管理、Docker認証、脆弱性スキャンなど)を被せたサービスという関係です。
S3とは
汎用オブジェクトストレージです。ファイルであれば基本的に何でも保存できます。
主な用途
・画像、動画、ログ、バックアップ、CSV、PDFなどあらゆるファイル
・静的Webサイトのホスティング
・データレイクの基盤
・アプリケーションのデータ保管、配信
・HTTP(S)経由でのアップロード・ダウンロード
インターネット規模の、何でも入る保管庫という位置づけです。
S3に保存するもの
| app.log backup.zip image.jpg data.csv CloudTrailログ Athenaの実行結果 |
流れは次のようになります。
| ファイルを作成 ↓ S3バケットへアップロード ↓ アプリや利用者がダウンロード・参照 |
関連の記事
