S3のバケット・オブジェクト・キー

バケット命名、オブジェクト構成、プレフィックスとキー、URL、マルチパート、Transfer Accelerationの制約を試験向けに整理します。

学習順Step 26 / 61サービスStorage試験ドメイン弾力性

オブジェクトストレージとしての位置づけ

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 エンドポイント静的ウェブサイトエンドポイントCloudFrontS3 アクセスポイント など、用途に応じた URL が使われます。HTTPS 終端OAC は CloudFront の文脈でセットで問われます。

サイズとマルチパート

  • 単一 PUT にはサイズ上限があり、大きなファイルはマルチパートアップロードが標準。
  • マルチパート並列アップロード失敗パートの再送に強い。完了していないアップロードはストレージを占有しうるため、ライフサイクルで不完全マルチパートを掃除する、というのが試験の定番です。

スケールの前提

バケットあたりのオブジェクト数・総容量は実質無制限に近いスケールを前提にしています。アプリ側は 429/503スロットリングに備えて指数バックオフキー分散を行います(パフォーマンストピック)。

既存トピックとの関係

ストレージ同士の比較は S3, EBS, EFS。クラス別の料金・特性は S3ストレージクラス。暗号化・権限はセキュリティ系トピックへ。

公式ドキュメント(深掘り)

重要ポイント

  • バケット名は3〜63文字・小文字数字ハイフンドット・グローバル一意
  • フォルダは存在せずキー文字列のプレフィックスで論理整理
  • 単一オブジェクトは大容量まで。マルチパートで分割アップロード
  • Transfer Acceleration利用時はバケット名にドットを含めない等の制約あり
  • 静的WebサイトエンドポイントとRESTエンドポイントは用途が異なる

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます