Amazon S3

Amazon S3(Simple Storage Service)は、ファイルをほぼ無制限に保存できるオブジェクトストレージです。SAA では「アクセス頻度と取り出し時間の要件から、最もコストの低いストレージクラスを選ぶ」問題が繰り返し出ます。

ひとことで言うと: 容量無制限で、置き場所(料金プラン)を選べる巨大な倉庫です。

たとえるなら、よく使う物は出し入れしやすい手前の棚(Standard)に、めったに使わない物は安い奥の倉庫(Glacier)に置きます。奥の倉庫ほど保管料は安いですが、取り出すのに時間や手数料がかかります。

このページで押さえる論点

オブジェクトストレージの基本

S3 では、データをオブジェクト(ファイル本体 + メタデータ)としてバケット(保存先の入れ物)に保存します。フォルダのような階層はなく、オブジェクトはキー(ファイル名にあたる文字列)で区別します。キーの先頭部分(例: logs/2026/ の部分)をプレフィックスと呼び、ルールの対象指定や性能の単位に使われます。

S3 Standard は、1 年間に 99.999999999%(イレブンナイン)の耐久性(データが失われにくさ)と、99.99% の可用性(使える時間の割合)を提供するよう設計されています。耐久性と可用性は別の指標なので混同しないようにしましょう。

S3 は、すべてのリージョンで強力な書き込み後の読み取り整合性を提供します。新しいオブジェクトを書き込んだ直後、既存のオブジェクトを上書きした直後、削除した直後に読み取っても、必ず最新の結果が返ります(一覧表示にもすぐ反映されます)。同じキーへの同時書き込みは、最後に書いたものが優先されます。

1 回の PUT でアップロードできるのは 5 GB まで、マルチパートアップロードを使うと 1 オブジェクト最大 50 TB まで保存できます。

ストレージの種類サービス特徴と使いどころ
オブジェクトAmazon S3HTTP(API)でオブジェクト単位に読み書き。容量の上限を気にせず、静的ファイル・バックアップ・データレイクに使う
ブロックAmazon EBSEC2 にディスクとして接続する。OS 領域やデータベース
ファイルAmazon EFS複数の EC2 から同時にマウントできる共有ファイルシステム

ストレージクラスの選び方

オブジェクトごとにストレージクラスを選べます。保存料金が安いクラスほど、取り出しに料金や時間がかかります。判断の軸は「どれくらいの頻度で読むか」「読むときにどれだけ待てるか」「1 つの AZ が失われても再作成できるか」の 3 つです。まずは下のフローチャートで試してみましょう。

比較・選択フローチャート

質問に答えてストレージクラスを選ぶ

データの使い方を思い浮かべて「はい / いいえ」で答えてください。答えた経路が上から順に表示されます。

    ※簡略化しています: 最低保存期間・最小オブジェクトサイズ・料金の細かい差は分岐に含めていません。S3 Express One Zone など一部のクラスは省いています。

    クラス想定するアクセス取り出し時間保存先の AZ
    Standard頻繁(月 2 回以上)ミリ秒3 つ以上
    Intelligent-Tiering不明・変化する(自動で階層を移動)ミリ秒(オプションのアーカイブ階層を除く)3 つ以上
    Standard-IA低頻度(月 1 回程度)ミリ秒3 つ以上
    One Zone-IA低頻度・再作成できるデータミリ秒1 つ
    Glacier Instant Retrieval四半期に 1 回程度ミリ秒3 つ以上
    Glacier Flexible Retrieval年 1 回程度数分〜12 時間(復元が必要)3 つ以上
    Glacier Deep Archive年 1 回未満12 時間以内(大容量取り出しは 48 時間以内)3 つ以上

    Intelligent-Tiering は、オブジェクトごとのアクセス状況を監視して自動で階層を移します。30 日間連続でアクセスがないと低頻度アクセス階層へ、90 日間連続でアクセスがないとアーカイブインスタントアクセス階層へ移り、アクセスされると高頻度アクセス階層に戻ります。取り出し料金はかからない代わりに、監視と自動化の月額料金がかかります。128 KB 未満のオブジェクトは監視されず、常に高頻度アクセス階層に置かれます。

    フローチャートで省いた S3 Express One Zone は、1 つの AZ に保存するクラスです。One Zone-IA と同じく、AZ が失われるとデータも失われる前提で選びます。

    最低保存期間・最小サイズ・取り出し料金

    安いクラスには「この日数分は必ず課金する」という最低保存期間があります。期間より前に削除したり別のクラスへ移したりしても、残りの日数分の料金がかかります。短期間で消すデータを安いクラスに置くと、かえって高くつくことがあります。

    クラス最低保存期間最小課金サイズ取り出し料金(GB 単位)
    Standardなしなしなし
    Intelligent-Tieringなしなしなし(監視・自動化料金あり)
    Standard-IA30 日128 KBあり
    One Zone-IA30 日128 KBあり
    Glacier Instant Retrieval90 日128 KBあり
    Glacier Flexible Retrieval90 日—あり
    Glacier Deep Archive180 日—あり

    最小課金サイズとは、それより小さいオブジェクトでもそのサイズ分の料金がかかる、という意味です。小さなファイルが大量にある場合は IA 系のクラスが割高になります。

    Glacier Flexible Retrieval と Deep Archive の取り出し時間

    この 2 つのクラスのオブジェクトは、そのままでは読めません。先に復元(一時的なコピーを作る操作)が必要で、速さを 3 つのオプションから選びます。

    取り出しオプションGlacier Flexible RetrievalGlacier Deep Archive
    迅速(Expedited)1〜5 分利用できない
    標準(Standard)3〜5 時間12 時間以内
    大容量(Bulk)5〜12 時間48 時間以内

    ライフサイクルルール

    ライフサイクルルールは、「作成から何日たったオブジェクトをどうするか」を決めておく仕組みです。移行アクション(安いクラスへ移す)と有効期限アクション(削除する)の 2 種類があります。ルールはプレフィックスやタグで対象を絞って適用できます。

    再生型アニメ図解

    日数の経過とともにオブジェクトが移動する

    S3 Standard 0 日 Standard-IA 30 日 Glacier Flexible Retrieval 90 日 削除 365 日 ✓ 完了

    ※簡略化しています: 1 つのオブジェクトだけを動かしています。実際はルールの対象(プレフィックスやタグで指定)に当てはまるすべてのオブジェクトが非同期で処理されるため、日数ぴったりに移るとは限りません。最低保存期間や移行時のリクエスト料金は省略しています。

    図で省いた点のうち、試験で問われるものを補足します。

    データ保護(バージョニング・Object Lock・レプリケーション)

    バージョニングと MFA Delete

    バージョニングを有効にすると、同じキーのオブジェクトを上書き・削除しても以前のバージョンが残り、誤操作から復元できます。バージョニングを有効にしたバケットで削除すると、オブジェクトは消されず削除マーカー(「削除済み」という目印)が最新バージョンになります。一度有効にすると無効の状態には戻せず、一時停止だけができます。

    MFA Delete を有効にすると、バージョニングの状態を変える操作と、オブジェクトのバージョンを完全に削除する操作に、多要素認証(MFA)が必要になります。MFA Delete を有効にできるのはバケット所有者(ルートアカウント)だけです。

    Object Lock(ガバナンスモードとコンプライアンスモード)

    Object Lock は、オブジェクトを一定期間(または無期限に)削除・上書きできなくする機能です。一度書いたら読むだけにする WORM(Write Once Read Many)方式で保存します。バージョニングが有効なバケットでのみ使えます。

    種類削除・上書きできる人向いている場面
    ガバナンスモード特別な権限(s3:BypassGovernanceRetention)を持つユーザーだけが、明示的に指定して解除できる誤削除を防ぎたいが、管理者による例外対応は残したい
    コンプライアンスモードルートユーザーを含め誰もできない。保持期間の短縮やモードの変更もできない法令で改ざん不可の保管が求められる記録
    リーガルホールド保持期間と同じ保護だが期限がなく、明示的に外すまで続く訴訟などで期限を決めずに保全したい

    レプリケーション

    レプリケーションは、オブジェクトを別のバケットへ自動でコピーする機能です。別リージョンへコピーするクロスリージョンレプリケーション(CRR)と、同じリージョン内でコピーする同一リージョンレプリケーション(SRR)があります。CRR は災害対策や遠くの利用者への低遅延化、SRR はログの集約や本番・テストアカウント間のコピーに使います。

    暗号化

    2023 年 1 月 5 日以降、S3 にアップロードされるすべての新しいオブジェクトは、追加料金なしで自動的に暗号化されます(既定は SSE-S3)。問題文で「キーの管理」「監査」の要件が出たら、方式の違いで選び分けます。

    方式キーを管理するのは特徴と使いどころ
    SSE-S3S3既定の暗号化。AES-256 で自動的に暗号化し、利用者はキーを意識しない
    SSE-KMSAWS KMS(利用者がキーのポリシーを制御)キーごとにアクセスを制御でき、キーの使用を CloudTrail で監査できる。「キーの使用履歴を記録」「キーへのアクセスを分離」の要件に
    DSSE-KMSAWS KMS独立した 2 層の暗号化をかける。二重の暗号化が求められる場合に
    SSE-C利用者(リクエストのたびにキーを渡す)暗号化・復号の処理は S3 が行い、キーは利用者が自社で管理する。2026 年 4 月以降、新しいバケットでは既定で無効になっており、使うには明示的に有効にする
    クライアント側の暗号化利用者アップロード前に利用者側で暗号化する。暗号化の処理・キー・ツールをすべて利用者が管理する。「AWS に平文を渡さない」要件に

    ここまでは保存時の暗号化です。転送中のデータは SSL/TLS(HTTPS)で保護します。

    アクセス制御

    パブリックアクセスブロック

    新しいバケットとオブジェクトは、既定でパブリック(インターネットの誰でも)アクセスを許可しません。パブリックアクセスブロックは、ACL やバケットポリシーでうっかり公開してしまうのを防ぐ安全装置で、次の 4 つの設定があります。アクセスポイント・バケット・アカウント・組織の単位で設定でき、複数の単位で設定したときは最も厳しい組み合わせが適用されます。

    バケットポリシーと ACL

    バケットポリシーは、バケットに付ける JSON 形式のリソースベースのポリシーです。「どのアカウント・ユーザーに、どの操作を許可するか」を書き、他のアカウントとの共有にも使います。ACL(アクセスコントロールリスト)は古い仕組みで、オブジェクト単位で権限を付けます。

    新しいバケットはオブジェクト所有者の設定が「バケット所有者の強制」になっており、ACL は無効です。AWS は、オブジェクトごとに個別の制御が必要な場合を除き、ACL を無効のままにしてバケットポリシーで権限を管理することを推奨しています。

    署名付き URL

    署名付き URL は、非公開のオブジェクトを、期限付きで他の人にダウンロードさせるための URL です。バケットを公開せずに、特定のファイルだけを一時的に共有できます。有効期限は、S3 コンソールで作ると最大 12 時間、AWS CLI で作ると最大 7 日です。

    イベント通知

    イベント通知は、「オブジェクトが作られた」「削除された」などの出来事を、他のサービスに知らせる機能です。たとえば画像がアップロードされたら Lambda 関数でサムネイルを作る、といった処理を自動化できます。

    パフォーマンス

    S3 は、プレフィックスごとに 1 秒あたり PUT/COPY/POST/DELETE を 3,500 回以上、GET/HEAD を 5,500 回以上処理できます。プレフィックスの数に上限はないので、プレフィックスを分けて並列に読み書きすれば性能を伸ばせます(例: 10 個のプレフィックスに分けて読み取ると、1 秒あたり 55,000 回の読み取り)。

    課題使う機能ポイント
    大きなファイルのアップロードが遅い・途中で失敗するマルチパートアップロードファイルを分割して並列に送り、失敗したパートだけ再送できる。100 MB 以上なら使うのがベストプラクティス。パート番号は 1〜10,000
    世界中の拠点から 1 つのバケットへのアップロードが遅いTransfer AccelerationCloudFront のエッジロケーションで受け取り、最適化された経路で S3 へ送る
    同じオブジェクトが何度も読まれて遅いCloudFront(または ElastiCache)S3 の前にキャッシュを置いて、遅延を減らしスループットを上げる
    リクエスト数が多すぎるプレフィックスの分散プレフィックスごとの上限を、プレフィックスを増やして並列化することで超える

    リクエスタ支払い

    通常、バケットの保存料金とデータ転送料金はすべてバケット所有者が払います。リクエスタ支払いを有効にすると、リクエストとダウンロードの料金を、データを取りに来た側(リクエスタ)が払います。保存料金は引き続きバケット所有者が払います。大きなデータセットを他の組織に配るときに、配る側の費用を抑えられます。リクエスタ支払いのバケットには匿名アクセスできず、リクエストには認証が必要です。

    問題文のキーワード → 選ぶべき答え

    問題文によく出る言い回し選ぶべき答えと理由
    「アクセスパターンが予測できない」「運用の手間をかけずにコスト最適化」Intelligent-Tiering。アクセス状況を見て自動で階層を移し、取り出し料金もない
    「まれにしか使わないが、すぐに(ミリ秒で)取り出す」「AZ 障害に耐える」Standard-IA(四半期に 1 回程度なら Glacier Instant Retrieval)
    「再作成できるデータ」「低頻度」「コストを最小に」One Zone-IA。1 つの AZ にだけ保存する分安い
    「数分以内に取り出せればよいアーカイブ」Glacier Flexible Retrieval の迅速取り出し(1〜5 分)
    「長期保管」「ほぼ参照しない」「48 時間以内に取り出せればよい」「最安」Glacier Deep Archive
    「○日後に安いクラスへ」「○日後に削除」「手作業なしで」ライフサイクルルール
    「誤って削除・上書きしたデータを戻したい」バージョニング(完全削除に MFA を求めるなら MFA Delete も)
    「ルートユーザーを含め誰も削除できない」「WORM」「規制対応」Object Lock のコンプライアンスモード
    「キーの使用を監査したい」「キーへのアクセスを制御したい」SSE-KMS。KMS のキーポリシーで制御し、CloudTrail に記録される
    「AWS に平文のデータを渡さない」クライアント側の暗号化
    「非公開のファイルを期限付きで外部の人に共有」署名付き URL
    「誤ってバケットを公開しないようにしたい」「アカウント全体で公開を防ぐ」パブリックアクセスブロック(アカウント単位で設定)
    「アップロードされたら自動で処理」イベント通知で Lambda / SQS / SNS / EventBridge へ
    「別リージョンに自動でコピー」「災害対策」クロスリージョンレプリケーション(両方のバケットでバージョニングが必要)
    「大きなファイルのアップロードを速く・確実に」マルチパートアップロード
    「世界中から 1 つのバケットへ速くアップロード」Transfer Acceleration
    「ダウンロードする側に転送料金を払わせたい」リクエスタ支払い

    引っかけポイント

    まとめ: SAA 試験で押さえるポイント

    確認問題

    参考リンク

    AWS 公式ドキュメント(外部サイトが開きます)。