AWS認定資格 WEB問題集&徹底解説

クラウドプラクティショナー

Amazon Simple Storage Service (Amazon S3) の概要と試験出題ポイントは?

AWSサービスの一つであるAmazon Simple Storage Service (Amazon S3)はどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

Amazon S3 徹底解説 (100点版)

1. サービス概要

Amazon Simple Storage Service (S3)は、インターネット規模で高い耐久性・可用性・スケーラビリティを提供するオブジェクトストレージサービスです。 任意のデータ(画像、動画、ログファイル、バックアップなど)を格納し、Web経由でアクセス可能。 事実上無制限のスケールアウト、99.999999999% (11ナイン)の耐久性、地域冗長を実現しています。

主なユースケースには、バックアップ・アーカイブ、静的ウェブサイトホスティング、ビッグデータ分析基盤のストレージ、メディア配信などがあります。

2. 主な特徴と機能

2.1 ストレージクラス

Amazon S3はアクセス頻度やデータ保持ポリシーに応じて複数のストレージクラスを提供します。

  • S3 Standard: 頻繁アクセス向け、低遅延高スループット。
  • S3 Intelligent-Tiering: アクセスパターンに応じて自動的に最適コスト層にデータを移動。
  • S3 Standard-IA / S3 One Zone-IA: 低頻度アクセスデータ向け、取り出し頻度が少ないが即時アクセス必要な場合に最適。
  • S3 Glacier / Glacier Deep Archive: アーカイブ用途。取り出しに数分~数時間かかるが、極めて低コスト。

2.2 バケットとオブジェクト

データは「バケット」と呼ばれるコンテナに格納されます。バケット内にオブジェクト(ファイル)を保存し、キー(パスのような文字列)でアクセスします。バケット名はグローバルユニークで、リージョン単位でデータが冗長化されます。

2.3 バージョニングとライフサイクル管理

バージョニングを有効にすることで、オブジェクト更新履歴を保持可能。 ライフサイクルポリシーを使うと、一定期間後にストレージクラスをより低コスト層へ自動移行したり、削除したりできます。

2.4 暗号化とセキュリティ

保存時暗号化(SSE-S3, SSE-KMS)、クライアント側暗号化、トランジット時のHTTPS利用など、総合的なセキュリティを提供。 アクセスコントロールにはIAMポリシー、バケットポリシー、ACL、S3 Access Pointなどの手法が活用できます。

2.5 イベント通知と統合

S3のオブジェクト操作(作成、削除)をトリガーに、Amazon SQS、SNS、AWS Lambdaへイベント通知可能。 データアクセスログ、サーバーアクセスログ、S3 Inventoryによる監査と可視化も可能。

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

  1. クライアントがS3 APIやSDK、CLIを介してオブジェクトをPUT/GET。
  2. データは複数AZに冗長保存され高耐久性を確保。
  3. 必要に応じてバージョニング、レプリケーション(クロスリージョンレプリケーション)、ライフサイクルポリシーでデータ管理。
  4. アクセスはIAM、バケットポリシー、Access Pointsによって制御。
  5. 暗号化とログ機能でセキュリティとコンプライアンスニーズに対応。

完全マネージドで、大規模データ分の拡張も自動的に対応します。

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

  • IAMポリシー: ユーザやロールに対してS3リソースへのアクセス権限を付与/制限。
  • バケットポリシー: バケット単位でアクセス制御。特定IPアドレス制限やクロスアカウントアクセス許可など。
  • アクセスコントロールリスト(ACL): より粗い粒度での権限設定(非推奨傾向)。
  • SSE-S3 / SSE-KMS暗号化: SSE-S3はAWS管理キー、SSE-KMSは顧客管理キーで暗号化。
  • VPCエンドポイント: パブリックインターネットを経由せずにVPCからS3へプライベート接続。

5. 料金形態

Amazon S3は主に以下に基づく従量課金モデルです:

  • ストレージ使用量: GB/月単位で料金が発生。ストレージクラスにより単価は異なる。
  • リクエスト数: PUT、GET、LISTリクエストなど、要求回数に応じて課金。
  • データ転送料: リージョン外へのデータ転送時に別途料金発生。
  • オプション機能: S3 Inventory、Replicasの転送、S3 Batch Operationsなどで追加コスト。

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

  • 静的ウェブホスティング: S3に静的ファイルを格納し、CloudFrontでCDN配信。
  • ビッグデータ基盤: S3をデータレイクとして活用し、AthenaやEMR、Redshift Spectrumで解析。
  • バックアップ・アーカイブ: 定期バックアップ、ライフサイクル管理による低コストアーカイブ。
  • マルチリージョンレプリケーション: グローバル分散、災害対策でCRR(Cross-Region Replication)を利用。

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

  1. S3コンソールで新規バケットを作成(バケット名、リージョン指定)。
  2. 暗号化設定やパブリックブロック設定などのオプションを選択。
  3. オブジェクトをアップロード(GUI、CLI、SDK)。
  4. 必要に応じてバケットポリシーやIAMポリシーでアクセス制御。
  5. ライフサイクルポリシーやバージョニング、イベント通知、Inventoryを有効化して管理性・コスト最適化を高める。

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

8.1 ストレージクラス選択

  • Q: 高頻度アクセスで低遅延が必要な場合は?
    A: S3 Standard。
  • Q: アクセス頻度が不明・変動する場合、コスト最適化は?
    A: S3 Intelligent-Tiering。
  • Q: 長期保管でコストを最小化し、アクセスはごく稀な場合?
    A: S3 GlacierやGlacier Deep Archive。

8.2 アクセス制御とセキュリティ

  • Q: パブリックアクセスを防ぐには?
    A: バケットポリシーで拒否、パブリックアクセスブロック機能を有効化。
  • Q: 暗号化するには?
    A: SSE-S3、SSE-KMSを選択。KMSを用いる場合は鍵ポリシーも確認。

8.3 バージョニング・ライフサイクル・レプリケーション

  • Q: 削除したオブジェクトを復元可能にする方法は?
    A: バージョニング有効化。
  • Q: 一定期間後に自動で低コスト層へ移行するには?
    A: ライフサイクルルール設定。
  • Q: 別リージョンに自動的にオブジェクトをコピー?
    A: クロスリージョンレプリケーション(CRR)。

8.4 パフォーマンスと最適化

  • Q: 高並行アクセスのボトルネック解消には?
    A: プレフィックス分散。オブジェクトキー名にランダム化や日時ディレクトリで並列化。
  • Q: 高速アップロード/ダウンロード?
    A: S3 Transfer Accelerationを有効化。

8.5 イベント通知と他サービス統合

  • Q: オブジェクトが追加されるたびにLambdaで処理?
    A: S3イベント通知をLambdaに設定。
  • Q: オブジェクトメタデータやアクセス権をまとめて取得?
    A: S3 Inventoryで定期的にCSVレポート出力。

8.6 コスト管理

  • Q: コスト削減には?
    A: 不要なオブジェクト削除、低アクセスデータをIAやGlacierへ移行、ライフサイクル活用。

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

  • Q: EBSやEFSとS3の違いは?
    A: S3はオブジェクトストレージ(HTTPアクセス)、EBSはブロックストレージ、EFSはNFSファイルシステム共有。

8.8 その他細かな試験ポイント

  • S3 URL形式 (バケット名、リージョン名、オブジェクトキー)
  • バケット名のグローバルユニーク性
  • データ整合性モデル (PUT後のREADは即時整合性、DELETE後のREADは整合性遅延の場合有)