AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト – アソシエイト
AWSサービスの一つであるAmazon Simple Storage Service (Amazon S3)はどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Amazon Simple Storage Service (S3)は、インターネット規模で高い耐久性・可用性・スケーラビリティを提供するフルマネージドのオブジェクトストレージサービスです。 任意のデータ(画像、動画、ログ、バックアップ、データレイクなど)をオブジェクトとして格納し、HTTP(S)経由でアクセスできます。 容量は事実上無制限(1オブジェクト最大5TB)で、標準クラスは複数アベイラビリティゾーン(AZ)にまたがって保存され、99.999999999%(イレブンナイン)の耐久性を実現します。
2020年12月以降、S3はすべての操作(PUT/GET/LIST/DELETE、上書きPUTを含む)で「強い読み取り後整合性(strong read-after-write consistency)」を提供します。追加料金や性能低下、API変更はなく、書き込み直後の読み取りでも常に最新データが返ります。
主なユースケースは、バックアップ・アーカイブ、静的ウェブサイトホスティング、データレイク/ビッグデータ分析基盤、ログ集約、メディア配信(CloudFront連携)などです。
2. 主な特徴と機能
2.1 ストレージクラス
S3はアクセス頻度・遅延要件・保管期間に応じて複数のストレージクラスを提供します。ライフサイクルルールでクラス間を自動移行できます。
- S3 Standard: 頻繁アクセス向け。低遅延・高スループット、複数AZ冗長。
- S3 Intelligent-Tiering: アクセスパターンを監視し、自動で最適な層へ移動。アクセス傾向が読めないデータに最適(取り出し料金なし、少額のモニタリング料金)。
- S3 Standard-IA: 低頻度アクセスだが即時取り出しが必要なデータ向け。複数AZ。最低保管30日・最低課金容量128KB、取り出しにデータ取得料金。
- S3 One Zone-IA: Standard-IAより安価だが単一AZ保存のため、AZ障害時にデータ消失リスクあり。再生成可能なデータ向け。
- S3 Express One Zone: 単一AZ・1桁ミリ秒の超低遅延と高トランザクション性能を提供する高速クラス。MLトレーニングや分析の高頻度アクセスに最適。
- S3 Glacier Instant Retrieval: ミリ秒で即時取り出し可能なアーカイブ。四半期に一度程度のアクセス向け。
- S3 Glacier Flexible Retrieval(旧 S3 Glacier): 取り出しは数分〜数時間(Expedited/Standard/Bulk)。低コストのアーカイブ。
- S3 Glacier Deep Archive: 最安。取り出しは標準で約12時間。長期保管・コンプライアンス保存向け。
2.2 バケットとオブジェクト
データは「バケット」というコンテナに、キー(パス状の文字列)で識別される「オブジェクト」として格納します。バケット名はグローバルで一意であり、バケットは作成時に指定したリージョンに属します。各オブジェクトには最大2KBのメタデータやタグを付与でき、タグはアクセス制御やライフサイクル、コスト配分に活用できます。
2.3 バージョニングとライフサイクル管理
バージョニングを有効にすると、上書き・削除されたオブジェクトの履歴を保持でき、誤削除からの復旧が可能になります(削除時は削除マーカーが付与)。さらにMFA Deleteを併用すると、バージョンの完全削除に多要素認証を要求できます。 ライフサイクルルールにより、一定経過後の低コストクラスへの移行(Transition)や自動削除(Expiration)、未完了マルチパートアップロードの自動クリーンアップを設定できます。
2.4 暗号化
保存時暗号化として、SSE-S3(AES-256、S3管理キー)、SSE-KMS(AWS KMSキー、監査・キーポリシー制御が可能)、SSE-C(顧客提供キー)、DSSE-KMS(二重レイヤー暗号化)、およびクライアントサイド暗号化に対応します。 2023年1月以降、すべての新規オブジェクトはデフォルトで最低でもSSE-S3により暗号化されます。転送時はHTTPS(TLS)で保護され、バケットポリシーで非TLS接続を拒否することも可能です。
2.5 アクセス制御
アクセス制御はIAMポリシー、バケットポリシー、(レガシーの)ACL、S3 Access Points、VPCエンドポイントポリシーを組み合わせて行います。 2023年4月以降に作成する新規バケットは、既定でACLが無効(Bucket owner enforced)かつブロックパブリックアクセスが有効です。意図しない公開を防ぐため、原則ACLは使わずIAM/バケットポリシーで制御します。
2.6 イベント通知と他サービス統合
オブジェクトの作成・削除などをトリガーに、Amazon SQS・SNS・AWS Lambda・Amazon EventBridge へイベント通知できます。 サーバーアクセスログやCloudTrailデータイベントによる監査、S3 Inventory(オブジェクト一覧のレポート)、S3 Storage Lens(使用状況の可視化)、S3 Batch Operations(大量オブジェクトの一括処理)も利用できます。
2.7 データ保護とコンプライアンス
S3 Object LockはWORM(Write Once Read Many)を実現し、改ざん・削除防止が必要なコンプライアンス用途に使えます。ガバナンスモード(特権ユーザーは解除可)/コンプライアンスモード(誰も解除不可)+リーガルホールドを提供し、有効化にはバージョニングが必須です。
3. アーキテクチャおよび技術要素
- クライアントがS3 API/SDK/CLIを介してオブジェクトをPUT/GET(強整合性のため書き込み直後でも最新を取得)。
- 標準クラスはデータを複数AZに冗長保存し、イレブンナインの耐久性を確保。
- バージョニング、レプリケーション(CRR/SRR)、ライフサイクルでデータを管理。
- アクセスはIAM/バケットポリシー/Access Points/VPCエンドポイントで制御し、ブロックパブリックアクセスで公開事故を防止。
- SSE-KMS暗号化とアクセスログ/CloudTrailでセキュリティとコンプライアンスに対応。
- 大容量データはマルチパートアップロード、低遅延・高並列が必要なら複数プレフィックスやS3 Express One Zoneでスケール。
完全マネージドのため、容量やリクエスト増に対して自動でスケールします。
4. セキュリティと認証・認可
- IAMポリシー: ユーザー/ロールに対しS3操作(s3:GetObject等)を許可・制限。最小権限の原則で付与する。
- バケットポリシー: バケット単位のリソースベースポリシー。IP制限、VPCエンドポイント限定、クロスアカウント許可、非TLS拒否などを表現できる。
- ブロックパブリックアクセス(BPA): 公開設定を一括で抑止する安全装置。新規バケットでは既定で有効。意図的に公開する場合のみ無効化する。
- ACL(レガシー): 粗い粒度の権限設定で現在は非推奨。新規バケットは既定でACL無効(Bucket owner enforced)。
- 暗号化: SSE-S3(既定)、SSE-KMS(監査・キーポリシー制御)、SSE-C、DSSE-KMS、クライアントサイド暗号化。
- S3 Access Points / VPCエンドポイント: 用途別のアクセス窓口や、インターネットを経由しないプライベート接続(Gatewayエンドポイントは無料)。
- 署名付きURL(Presigned URL): 一時的かつ限定的にオブジェクトへのアクセスを許可(公開せずに期限付き共有)。
5. 料金形態
Amazon S3は主に以下に基づく従量課金モデルです:
- ストレージ使用量: GB/月単位で課金。ストレージクラスにより単価が異なる。Standard-IA/One Zone-IAは最低保管30日・最低課金容量128KB。
- リクエスト数: PUT/COPY/POST/LISTやGET/SELECTなど、種類と回数に応じて課金。低頻度クラスほどリクエスト単価は高め。
- データ取り出し料金: IAやGlacier系はデータ取り出し(Retrieval)に別途課金。Glacierは取り出し速度(Expedited/Standard/Bulk)で料金が変わる。
- データ転送料: インバウンド(アップロード)は無料。アウトバウンドや別リージョンへの転送は課金。同一リージョン内のS3↔EC2やGateway型VPCエンドポイント経由は無料。
- オプション機能: レプリケーション転送、S3 Inventory、Storage Lens(高度メトリクス)、S3 Batch Operations、Intelligent-Tieringのモニタリング料金など。
6. よくあるアーキテクチャ・設計パターン
- 静的ウェブホスティング+CDN: S3に静的サイトを置き、CloudFrontで配信。オリジンへのアクセスはOAC(Origin Access Control、旧OAIを置換)で制限し、バケットは非公開に保つ。
- データレイク/分析基盤: S3を中心にAthena・Glue・EMR・Redshift Spectrumで解析。S3 Selectで必要データのみ抽出しコスト削減。
- バックアップ・アーカイブ: ライフサイクルでGlacier系へ自動移行し低コスト化。Object LockでWORM保護。
- レプリケーションによるDR/低遅延: 災害対策やコンプライアンスにCRR、同一リージョン集約にSRR。RTOが厳しい場合はS3 RTCで時間SLAを付与。
- イベント駆動処理: アップロードを契機にLambda/EventBridgeで後続処理(サムネイル生成、ETL起動など)。
- 期限付き共有: 署名付きURLで、公開せずに一時的なアップロード/ダウンロードを許可。
7. 設定・デプロイ手順(ハンズオン例)
- S3コンソールで新規バケットを作成(グローバル一意な名前、リージョンを指定)。
- ブロックパブリックアクセス(既定で有効)と既定暗号化(SSE-S3またはSSE-KMS)を確認・設定。
- 必要に応じてバージョニングを有効化(レプリケーションやObject Lockを使う場合は必須)。
- オブジェクトをアップロード(コンソール/CLI/SDK。大容量はマルチパートアップロード)。
- IAM/バケットポリシーでアクセス制御。公開せず一時共有したい場合は署名付きURLを発行。
- ライフサイクルルール、イベント通知、S3 Inventory/Storage Lensを設定し、コストと運用を最適化。
8. 試験で問われやすいポイント
8.1 ストレージクラス選択
- Q: 高頻度アクセスで低遅延が必要な場合は?
A: S3 Standard。超低遅延・高TPSが必要ならS3 Express One Zone。 - Q: アクセス頻度が読めず、コストも最適化したい場合は?
A: S3 Intelligent-Tiering(取り出し料金なしで自動階層化)。 - Q: 低頻度アクセスだが即時取り出しが必要。コストは抑えたい場合は?
A: S3 Standard-IA。重要度が低く再生成可能なら単一AZのOne Zone-IA。 - Q: 即時取り出しが必要なアーカイブは?
A: S3 Glacier Instant Retrieval。 - Q: 長期保管でコスト最小、取り出しに時間を許容できる場合は?
A: S3 Glacier Flexible Retrieval、最安はGlacier Deep Archive(標準約12時間)。 - Q: Standard-IA/One Zone-IAの注意点は?
A: 最低保管期間30日・最低課金容量128KB・取り出しにデータ取得料金。小さく短命なデータには不向き。
8.2 アクセス制御とセキュリティ
- Q: 意図しない公開を防ぐには?
A: ブロックパブリックアクセス(既定で有効)を維持し、IAM/バケットポリシーで制御。新規バケットはACL無効が既定。 - Q: 暗号化の選択肢と使い分けは?
A: 既定はSSE-S3。監査やキー管理が必要ならSSE-KMS、独自キー持ち込みはSSE-C、二重暗号化はDSSE-KMS。 - Q: バケットを公開せず一時的にファイルを共有するには?
A: 署名付きURL(Presigned URL)を発行。 - Q: HTTP(非TLS)アクセスを禁止するには?
A: バケットポリシーで aws:SecureTransport=false を拒否。
8.3 バージョニング・ライフサイクル・レプリケーション
- Q: 誤削除・上書きから復旧可能にするには?
A: バージョニングを有効化(さらにMFA Deleteで保護強化)。 - Q: 一定期間後に自動で低コスト層へ移行・削除するには?
A: ライフサイクルルール(Transition/Expiration)を設定。 - Q: 別リージョン/同一リージョンへ自動コピーするには?
A: CRR(クロスリージョン)/SRR(同一リージョン)。送信元・送信先の両方でバージョニング有効が必須。時間SLAが必要ならS3 RTC。
8.4 パフォーマンスと最適化
- Q: 高スループットを得るには?
A: S3はプレフィックスあたり毎秒3,500 PUT/COPY/POST/DELETE・5,500 GET/HEADまで自動スケール。複数プレフィックスへ分散すれば線形に拡張できる(旧来のキー名ランダム化は現在は不要)。 - Q: 大容量ファイルのアップロードは?
A: マルチパートアップロード(100MB超で推奨、5GB超で必須、最大5TB)。失敗時は該当パートのみ再送。 - Q: 遠隔地からの転送を高速化するには?
A: S3 Transfer Acceleration(CloudFrontのエッジ経由)。部分取得にはByte-Range Fetch。
8.5 イベント通知と他サービス統合
- Q: オブジェクト追加のたびに処理を起動するには?
A: S3イベント通知をLambda/SQS/SNS/EventBridgeに連携。 - Q: オブジェクト一覧や使用状況を把握するには?
A: S3 Inventory(一覧レポート)、S3 Storage Lens(使用状況の可視化)、大量一括処理はS3 Batch Operations。
8.6 コスト管理
- Q: コストを下げるには?
A: ライフサイクルでIA/Glacier系へ移行、不要オブジェクト・古いバージョン・未完了マルチパートを削除、Intelligent-Tieringを活用。 - Q: VPC内のEC2からS3へ低コストにアクセスするには?
A: Gatewayエンドポイント(無料)を使い、NAT経由のデータ処理料を回避。
8.7 静的ホスティング/CloudFront連携
- Q: S3を非公開のままCloudFrontから配信するには?
A: OAC(Origin Access Control。旧OAIの後継)でCloudFrontのみにアクセス許可し、バケットは非公開に保つ。
8.8 改ざん防止・コンプライアンス
- Q: 一定期間、削除・変更を不可にしたい(WORM)には?
A: S3 Object Lock(ガバナンス/コンプライアンスモード+リーガルホールド)。有効化にはバージョニングが必須。
8.9 類似・関連サービスとの比較
- Q: S3・EBS・EFSの違いは?
A: S3はオブジェクトストレージ(HTTPアクセス、Web/データレイク向け)、EBSは単一EC2にアタッチするブロックストレージ、EFSは複数EC2で共有できるマネージドNFSファイルシステム。
8.10 その他の頻出ポイント
- 強整合性: 2020年12月以降、全操作で強い読み取り後整合性(書き込み直後でも最新を取得)。
- バケット名: グローバルで一意。DNS命名規則に準拠(小文字・ハイフン等)。
- 耐久性/可用性: 標準クラスはイレブンナインの耐久性、複数AZ冗長。One Zone系は単一AZ。
- オブジェクトサイズ: 1オブジェクト最大5TB、単一PUTは最大5GB(超える場合はマルチパート)。