S3のバケット・オブジェクト・キー
バケット命名、オブジェクト構成、プレフィックスとキー、URL、マルチパート、Transfer Accelerationの制約を試験向けに整理します。
オブジェクトストレージとしての位置づけ
S3 は HTTP API で操作する オブジェクトストレージ です。OS がブロックデバイスとしてマウントする EBS とは役割が異なり、バケット に キー 付きでオブジェクトを格納します。複数 AZ に冗長化された設計が前提で、ウェブ静的コンテンツ、ログ、アーカイブ、データレイク に広く使われます。
バケット
- リージョンを指定して作成。データはそのリージョンに置かれる。
- 名前はグローバルに一意(パーティション内の全アカウントで重複不可)。削除されるまで他アカウントが同名を使えない場合がある、という説明が出ます。
- 命名規則(試験でそのまま出る) … おおむね 3〜63 文字、小文字・数字・ドット・ハイフン、IP アドレス形式は不可、先頭末尾は文字または数字 など。公式のルール一覧を参照。
Transfer Acceleration との関係
Transfer Acceleration を有効にするバケットでは、バケット名にドット(.)を含めない などの追加制約がある、という問題が出ます。
オブジェクトの構成要素
オブジェクトはざっくり次で構成されます。
- キー … バケット内での論理パス。一意の識別子。
- 値(ボディ) … 実データ。
- メタデータ … ユーザー/システムメタデータ。
- バージョン ID … バージョニング有効時。
- ACL(任意) … レガシーな共有表現。新規は バケットポリシー+IAM が推奨されがち。
プレフィックスと「フォルダの誤解」
コンソール上の photos/2024/cat.jpg は フォルダ階層ではなく、キー文字列です。プレフィックス(photos/2024/)で一覧やライフサイクル、S3 Inventory の単位として論理分割します。プレフィックスごとにスループットが分散しやすい、というパフォーマンスの話は別トピック。
オブジェクト URL
アクセスには REST エンドポイント、静的ウェブサイトエンドポイント、CloudFront、S3 アクセスポイント など、用途に応じた URL が使われます。HTTPS 終端や OAC は CloudFront の文脈でセットで問われます。
サイズとマルチパート
- 単一 PUT にはサイズ上限があり、大きなファイルはマルチパートアップロードが標準。
- マルチパートは 並列アップロードと 失敗パートの再送に強い。完了していないアップロードはストレージを占有しうるため、ライフサイクルで不完全マルチパートを掃除する、というのが試験の定番です。
スケールの前提
バケットあたりのオブジェクト数・総容量は実質無制限に近いスケールを前提にしています。アプリ側は 429/503 のスロットリングに備えて指数バックオフやキー分散を行います(パフォーマンストピック)。
既存トピックとの関係
ストレージ同士の比較は S3, EBS, EFS。クラス別の料金・特性は S3ストレージクラス。暗号化・権限はセキュリティ系トピックへ。
公式ドキュメント(深掘り)
重要ポイント
- ▸バケット名は3〜63文字・小文字数字ハイフンドット・グローバル一意
- ▸フォルダは存在せずキー文字列のプレフィックスで論理整理
- ▸単一オブジェクトは大容量まで。マルチパートで分割アップロード
- ▸Transfer Acceleration利用時はバケット名にドットを含めない等の制約あり
- ▸静的WebサイトエンドポイントとRESTエンドポイントは用途が異なる
このトピックの学習を完了しますか?
完了状態はいつでも切り替えられます
この試験ドメイン内で次の学習に進む
同じサービスの関連トピック
S3 / EBS / EFS ストレージ に関連するトピックを続けて確認できます。