本文へスキップ
ウェブエンジニア問題集
第11章

ストレージ選択 — S3・EBS・EFS・FSxを使い分ける

約10分
この章の目次開く
保存先の選択に迷う人のイラスト
学習者学習者

S3、EBS、EFSは全部データを保存するサービスですよね。問題文ではどう見分ければいいですか?

AWSのストレージ選択では、オブジェクト、ブロック、ファイルの違いを理解することが重要です。SAA-C03では、S3、EBS、EFS、FSx、Storage Gatewayの使い分けが頻出です。


Amazon S3とは

Amazon S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージサービスです。ファイルを「オブジェクト」として保存し、容量の上限なく、高い耐久性(99.999999999% = イレブンナイン)でデータを保管できます。

学習者学習者

オブジェクトストレージって、普通のファイルシステムと何が違うんですか?

通常のファイルシステム(EBSやEFS)はディレクトリ構造でファイルを管理します。一方、オブジェクトストレージはフラットな構造で、各オブジェクトに一意のキーとメタデータを付けて管理します。フォルダのように見える /images/photo.jpg も、実際にはフォルダが存在するのではなく、images/photo.jpg という1つのキーです。

データの管理方法を考える人のイラスト

S3の基本用語

用語説明
バケット(Bucket)オブジェクトを入れる器。グローバルで一意な名前が必要。リージョンを指定して作成する
オブジェクト(Object)S3に保存されるデータの単位。ファイル本体 + メタデータで構成される
オブジェクトキー(Key)バケット内でオブジェクトを一意に識別する名前。logs/2024/access.log のようにスラッシュで階層を表現できる
バージョンIDバージョニング有効時に付与される識別子。同じキーに上書きしても過去のバージョンを保持・復元できる
メタデータオブジェクトに付随する情報。Content-Type、暗号化方式、カスタムヘッダーなど
ライフサイクルルール一定期間後にストレージクラスを変更したり、オブジェクトを自動削除するルール
バケットポリシーバケット単位のアクセス制御。JSON形式のIAMポリシーで、誰がどの操作を許可・拒否されるかを定義する
ACL(アクセス制御リスト)オブジェクトやバケット単位の旧式なアクセス制御。現在はバケットポリシーの使用が推奨されている

S3の構造を図で見る

バケットの中にオブジェクトがフラットに並び、各オブジェクトはキー・データ本体・メタデータ・バージョンIDで構成されます。ディレクトリ構造に見える / はキー名の一部にすぎません。

バケットポリシーの実務と試験

バケットポリシーはS3のアクセス制御の中核で、試験でも頻出です。JSON形式でPrincipal(誰が)、Action(何を)、Resource(どのバケット/オブジェクトに)、Effect(許可/拒否)を指定します。

学習者学習者

IAMポリシーでもS3のアクセス制御はできますよね。バケットポリシーとどう使い分けるんですか?

IAMポリシーは「ユーザーやロールに対して何を許可するか」、バケットポリシーは「バケットに対して誰のアクセスを許可するか」という視点の違いがあります。

方式視点主な用途
IAMポリシーユーザー/ロール側自アカウント内のユーザーにS3の操作権限を付与
バケットポリシーリソース(バケット)側クロスアカウントアクセス、パブリックアクセス制御、特定IPからの制限

試験でよく問われるバケットポリシーのパターン

パターンポリシーの要点
特定アカウントにのみ読み取りを許可PrincipalにクロスアカウントのARNを指定し s3:GetObject を許可
HTTPS通信のみを許可Conditionで aws:SecureTransport: false のリクエストを Deny
特定のVPCエンドポイントからのみアクセスConditionで aws:sourceVpce を指定して Deny
CloudFrontからのみアクセス(OAC)Principalに cloudfront.amazonaws.com を指定
Data Firehoseからの書き込みを許可Principalに firehose.amazonaws.com を指定し s3:PutObject を許可
先生先生

バケットポリシーの具体的な書き方は S3 バケットポリシーの例(公式) を参照してください。試験では書き方の暗記よりも「どのパターンでバケットポリシーを使うか」の判断が問われます。

参考リンク


ストレージの大分類

種類サービス使いどころ
オブジェクトストレージS3画像、ログ、バックアップ、静的ファイル、データレイク
ブロックストレージEBSEC2のディスク、DBのストレージ
ファイルストレージEFS、FSx複数サーバーで共有するファイルシステム

S3はファイルシステムではなくオブジェクトストレージです。EC2にマウントする通常のディスクが必要ならEBS、複数EC2から共有したいならEFSやFSxを検討します。


S3の設計判断

S3は可用性、耐久性、スケーラビリティに優れたマネージドストレージです。

よく使う機能:

  • S3 Standard、Standard-IA、One Zone-IA、Glacier Instant Retrieval、Glacier Flexible Retrieval、Deep Archive
  • S3 Lifecycle
  • S3 Versioning
  • S3 Replication
  • S3 Object Lock
  • S3 Transfer Acceleration

EBS、EFS、FSx

サービス特徴
EBSEC2にアタッチするブロックストレージ。gp3、io2などを選ぶ
EFSLinux向け共有ファイルストレージ。複数AZからアクセス可能
FSx for Windows File ServerWindowsファイル共有
FSx for LustreHPCや機械学習など高性能ファイルシステム
FSx for NetApp ONTAPONTAP互換機能が必要な場合

複数EC2から同じファイルを共有したい要件では、EBSではなくEFSやFSxが候補になります。


オンプレミス連携

オンプレミスからAWSストレージを使う要件では、AWS Storage Gateway や AWS DataSync が出ます。

要件選択肢
オンプレミスからS3をファイル共有のように使いたいFile Gateway
オンプレミスデータをAWSへ高速移行したいDataSync
大量データを物理的に移行したいSnow Family

まとめ

ストレージ選択では、データの形とアクセスパターンを見ます。

  • 画像・ログ・バックアップなどのオブジェクトデータはS3を選ぶ
  • EC2のディスクならEBS
  • 複数サーバー共有ならEFSやFSx
  • アーカイブはS3 Glacier系
  • オンプレ連携はStorage GatewayやDataSync

次の章では、EC2、Lambda、ECS、Fargateなどのコンピューティング選択を扱います。

AWSクイズに挑戦するこの章で学んだAWSの知識を、4択クイズでアウトプットして定着させよう