ディレクトリバケットの使用 - Amazon Simple Storage Service

ディレクトリバケットの使用

Amazon S3 バケットには、汎用バケットとディレクトリバケットの 2 種類があります。アプリケーションとパフォーマンス要件に最適なバケットタイプを選択します。

  • 汎用バケット はオリジナルの S3 バケットタイプであり、ほとんどのユースケースやアクセスパターンに推奨されます。汎用バケットでは、AWS アベイラビリティーゾーンの S3 Express One Zone と AWS Local Zones の S3 One Zone-IA を除く、すべてのストレージクラスに保存されているオブジェクトも使用できます。

  • ディレクトリバケットは、アベイラビリティーゾーンまたは Local Zone のバケット場所タイプでバケットの作成をサポートしています。低レイテンシーのユースケースでは、単一のアベイラビリティーゾーンにディレクトリバケットを作成してデータを保存できます。アベイラビリティーゾーンのディレクトリバケットは、S3 Express One Zone ストレージクラスをサポートしています。アプリケーションがパフォーマンスの影響を受けやすく、1 桁ミリ秒の PUTGET のレイテンシーから利点が得られる場合は、S3 Express One Zone ストレージクラスをお勧めします。データレジデンシーのユースケースでは、単一の AWS 専有ローカルゾーン (DLZ) にディレクトリバケットを作成してデータを保存できます。Local Zones のディレクトリバケットは、S3 One Zone-Infrequent Access (S3 One Zone-IA、Z-IA) ストレージクラスをサポートしています。アベイラビリティーゾーンでのディレクトリバケットの作成の詳細については、「高性能ワークロード」を参照してください。Local Zones でのディレクトリバケットの作成の詳細については、「データレジデンシーワークロード」を参照してください。

ディレクトリバケットは、汎用バケットのフラットなストレージ構造とは対照的に、データを階層的にディレクトリにまとめます。ディレクトリバケットにはプレフィックスの制限はなく、個々のディレクトリは水平方向にスケールできます。

AWS アカウントごとに最大 100 のディレクトリバケットを作成できます。バケット内に保存できるオブジェクトの数には制限がありません。バケット クォータは、AWS アカウント の各リージョンに適用されます。アプリケーションでこの制限を増やす必要がある場合は、サポート にお問い合わせください。

重要

少なくとも 90 日間リクエストアクティビティがないディレクトリバケットは、非アクティブ状態に移行します。非アクティブ状態の場合、ディレクトリバケットは一時的に読み取りと書き込みが利用できなくなります。非アクティブなバケットには、ストレージ、オブジェクトメタデータ、バケットメタデータがすべて保持されます。非アクティブなバケットには既存のストレージ料金が適用されます。非アクティブなバケットへのアクセスをリクエストすると、バケットは通常数分以内にアクティブな状態に移行します。この移行期間中に読み取りと書き込みを行うと HTTP 503 (Service Unavailable) エラーコードが返されます。

次のトピックでは、ディレクトリバケットについて説明します。汎用バケットの詳細については、「バケットの概要」を参照してください。

ディレクトリバケットの詳細については、以下のトピックを参照してください。

ディレクトリバケット名

ディレクトリバケット名は、ユーザーが指定するベース名と、バケットがあるゾーン (アベイラビリティゾーンまたは Local Zone) の ID を示すサフィックスで構成されます。ディレクトリバケット名は次の形式を使用し、ディレクトリバケットの命名規則に従う必要があります。

bucket-base-name--zone-id--x-s3

例えば、次のディレクトリバケット名にはアベイラビリティーゾーン ID usw2-az1 が含まれています。

bucket-base-name--usw2-az1--x-s3

詳細については、「ディレクトリバケットの命名規則」を参照してください。

ディレクトリ

ディレクトリバケットは、汎用バケットのフラットなストレージ構造とは対照的に、データを階層的にディレクトリにまとめます。

階層型名前空間では、オブジェクトキーの区切り文字が重要です。ただし、サポートされている唯一の区切り文字はスラッシュ (/) です。ディレクトリは区切り文字の境界で定義されます。例えば、dir1/dir2/file1.txt オブジェクトキーを使用すると、ディレクトリ dir1/ と dir2/ が自動的に作成され、file1.txt オブジェクトが dir1/dir2/file1.txt パス内の /dir2 ディレクトリに追加されます。

ディレクトリバケットインデックスモデルは、ListObjectsV2 API オペレーションに対して並べ替えされていない結果を返します。結果をバケットのサブセクションに限定する必要がある場合は、prefix=dir1/ など、prefix パラメータにサブディレクトリパスを指定できます。

キー名

ディレクトリバケットの場合、複数のオブジェクト キーに共通のサブディレクトリが最初のオブジェクト キーで作成されます。同じサブディレクトリの追加のオブジェクトキーは、以前に作成したサブディレクトリを使用します。このモデルでは、アプリケーションに最適なオブジェクトキーを柔軟に選択でき、疎ディレクトリと密ディレクトリが同等にサポートされます。

アクセス管理

ディレクトリバケットでは、バケットレベルですべての S3 ブロックパブリックアクセス設定がデフォルトで有効になっています。S3 オブジェクト所有者はバケット所有者の強制に設定され、アクセスコントロールリスト (ACL) が無効になっています。上記の設定は変更できません。

デフォルトでは、ユーザーにはディレクトリバケットへのアクセス許可はありません。ディレクトリバケットへのアクセス権限を付与するには、IAM を使用してユーザー、グループ、またはロールを作成し、それらのアイデンティティにアクセス許可をアタッチします。詳細については、「IAM を使用したリージョンエンドポイント API オペレーションの承認」を参照してください。

ディレクトリバケットの作成と使用

ディレクトリバケットのオペレーションの詳細については、以降のトピックを参照してください。