ディレクトリバケットは、汎用バケットのフラットなストレージ構造とは対照的に、データを階層的にディレクトリにまとめます。ディレクトリバケットにはプレフィックスの制限はなく、個々のディレクトリは水平方向にスケールできます。
AWS アカウントごとに最大 100 のディレクトリバケットを作成できます。バケット内に保存できるオブジェクトの数には制限がありません。バケット クォータは、AWS アカウント の各リージョンに適用されます。アプリケーションでこの制限を増やす必要がある場合は、サポート にお問い合わせください。
重要
アベイラビリティゾーンで少なくとも 90 日間リクエストアクティビティがないディレクトリバケットは、非アクティブ状態に移行します。非アクティブ状態の場合、ディレクトリバケットは一時的に読み取りと書き込みが利用できなくなります。非アクティブなバケットには、ストレージ、オブジェクトメタデータ、バケットメタデータがすべて保持されます。非アクティブなバケットには既存のストレージ料金が適用されます。非アクティブなバケットへのアクセスをリクエストすると、バケットは通常数分以内にアクティブな状態に移行します。この移行期間中に読み取りと書き込みを行うと HTTP 503 (Service Unavailable)
エラーコードが返されます。これは Local Zones のバケットには適用されません。
Amazon S3 バケットにはいくつかのタイプがあります。バケットを作成する前に、アプリケーションとパフォーマンス要件に最適なバケットタイプを選択していることを確認します。さまざまなバケットタイプとそれぞれの適切なユースケースの詳細については、「バケット」を参照してください。
次のトピックでは、ディレクトリバケットについて説明します。汎用バケットの詳細については、「バケットの概要」を参照してください。
ディレクトリバケットの詳細については、以下のトピックを参照してください。
ディレクトリバケット名
ディレクトリバケット名は、ユーザーが指定するベース名と、バケットがあるゾーン (アベイラビリティゾーンまたは 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 オペレーションの承認」を参照してください。
アクセスポイントを介してディレクトリバケットへのアクセスを制御することもできます。アクセスポイントは、Amazon S3 の共有データセットへの大規模なデータアクセスの管理を簡素化します。アクセスポイントは、アクセスポイントを介して行われたすべてのリクエストに対して個別のアクセス許可とネットワークコントロールを適用するために作成する一意のホスト名です。詳細については、「アクセスポイントを使用したディレクトリバケット内の共有データセットへのアクセスの管理」を参照してください。
ディレクトリバケットのクォータ
クォータ (制限とも呼ばれます) は、AWS アカウントのサービスリソースまたはオペレーションの最大数です。ディレクトリバケットのクォータは次のとおりです。Amazon S3 でのクォータの詳細については、「Amazon S3 クォータ」を参照してください。
名前 | デフォルト | 引き上げ可能 | 説明 |
---|---|---|---|
ディレクトリバケット | 各アカウント: 100 | あり |
アカウントで作成できる Amazon S3 ディレクトリバケットの数。 |
ディレクトリバケットあたりの読み取り TPS | 各ディレクトリバケット: 最大 200,000 読み取り TPS | クォータの引き上げをリクエストするには、 サポート |
ディレクトリバケットあたりの 1 秒あたりの GET/HEAD リクエストの数。 |
ディレクトリバケットあたりの書き込み TPS | 各ディレクトリバケット: 最大 100,000 書き込み TPS | クォータの引き上げをリクエストするには、 サポート |
ディレクトリバケットあたりの 1 秒あたりの PUT/DELETE リクエストの数。 |
ディレクトリバケットの作成と使用
ディレクトリバケットのオペレーションの詳細については、以降のトピックを参照してください。