AWS ECRとS3の違い

目次

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バケットへアップロード

アプリや利用者がダウンロード・参照

関連の記事

AWS ECSとEKSの違い

△上に戻る