ディレクトリバケットの違い
Amazon S3 を使用する場合、アプリケーションとパフォーマンスの要件に最適なバケットタイプを選択できます。ディレクトリバケットは、低レイテンシーやデータレジデンシーのユースケースに最適なタイプのバケットです。ディレクトリバケットの詳細については、「ディレクトリバケットの使用」を参照してください。
ディレクトリバケットの相違点の詳細については、以下のトピックを参照してください。
ディレクトリバケットの違い
-
ディレクトリバケット名
-
ディレクトリバケット名は、ユーザーが指定するベース名と、バケットがあるゾーン (アベイラビリティゾーン) の ID を示すサフィックスで構成されます。ディレクトリバケット名は、次の形式を使用し、ディレクトリバケットの命名規則に従う必要があります。ディレクトリバケット名に関するルールのリストと例については、「ディレクトリバケットの命名規則」を参照してください。
-
-
ListObjectsV2
の動作-
ディレクトリバケットの場合、
ListObjectsV2
は辞書順 (アルファベット順) にオブジェクトを返すわけではありません。さらに、プレフィックスは区切り文字で終わる必要があり、区切り文字として指定できるのは「/」のみです。 -
ディレクトリバケットの場合、
ListObjectsV2
レスポンスには、進行中のマルチパートアップロードにのみ関連するプレフィックスが含まれます。
-
-
削除動作 – ディレクトリバケット内のオブジェクトを削除すると、Amazon S3 はオブジェクトパス内の空のディレクトリをすべて再帰的に削除します。例えば、オブジェクトキー
dir1/dir2/file1.txt
を削除した場合、Amazon S3 はfile1.txt
を削除します。dir1/
とdir2/
のディレクトリが空で、その他のオブジェクトが含まれていない場合、Amazon S3 はこれらのディレクトリも削除します。 -
ETag とチェックサム – ディレクトリバケットのエンティティタグ (ETag) はオブジェクトに一意のランダムな英数字文字列であり、MD5 チェックサムではありません。ディレクトリバケットで追加のチェックサムを使用する方法の詳細については、「S3 の追加のチェックサムのベストプラクティス」を参照してください。
-
DeleteObjects
リクエスト内のオブジェクトキー-
DeleteObjects
リクエストのオブジェクトキーには、空白以外の文字を 1 つ以上含める必要があります。すべての空白文字を含む文字列はDeleteObjects
リクエストではサポートされていません。 -
DeleteObjects
リクエストのオブジェクトキーには、改行 (\n
)、タブ (\t
) とキャリッジリターン (\r
) 文字を除き、Unicode 制御文字を含めることはできません。
-
-
リージョンエンドポイントとゾーンエンドポイント – ディレクトリバケットのバケット管理 API オペレーションは、リージョンエンドポイントを介して利用可能であり、リージョンエンドポイント API オペレーションと呼ばれます。リージョンエンドポイント API オペレーションの例は、CreateBucket や DeleteBucket です。ディレクトリバケットを作成した後、ゾーンエンドポイント API オペレーションを使用して、ディレクトリバケット内のオブジェクトをアップロードして管理できます。ゾーンエンドポイント API オペレーションは、ゾーンエンドポイントを通じて実行できます。ゾーン別エンドポイント API オペレーションの例には、
PutObject
、CopyObject
があります。ディレクトリバケットを使用する場合は、すべてのリクエストでリージョンを指定する必要があります。リージョンエンドポイントの場合は、s3express-control.us-west-2.amazonaws.com
などのリージョンを指定します。ゾーンエンドポイントの場合は、s3express-usw2-az1.us-west-2.amazonaws.com
など、リージョンとアベイラビリティーゾーンの両方を指定します。詳細については、「ディレクトリバケットのリージョンエンドポイントとゾーンエンドポイント」を参照してください。 -
マルチパートアップロード – マルチパートアップロードプロセスを使用して、ディレクトリバケットに保存されている大きなオブジェクトをアップロードおよびコピーできます。ただし、ディレクトリバケットに保存されているオブジェクトでマルチパートアップロードプロセスを使用する場合は、以下のような違いがあります。詳細については、「ディレクトリバケットでのマルチパートアップロードの使用」を参照してください。
-
オブジェクトの作成日はマルチパートアップロードの完了日となります。
-
マルチパート番号には連続したパート番号を使用する必要があります。連続しないパーツ番号を使用してマルチパートアップロードリクエストを実行しようとすると、Amazon S3 は HTTP
400 (Bad Request)
エラーを生成します。 -
マルチパートアップロードを開始するユーザーは、
s3express:CreateSession
アクセス許可を通じて明示的にAbortMultipartUpload
へのアクセス許可が付与されている場合にのみ、マルチパートアップロードリクエストを中止できます。詳細については、「IAM を使用したリージョンエンドポイント API オペレーションの承認」を参照してください。
-
-
ディレクトリバケットを空にする – AWS Command Line Interface (CLI) による
s3 rm
コマンド、Mountpoint によるdelete
オペレーション、AWS Management Console による空のバケットオプションボタンでは、ディレクトリバケット内の進行中のマルチパートアップロードを削除できません。こうした進行中のマルチパートアップロードを削除するには、ListMultipartUploads
オペレーションを使用してバケット内の進行中のマルチパートアップロードを一覧表示し、AbortMultipartUpload
オペレーションを使用して進行中のすべてのマルチパートアップロードを中止します。 AWS Local Zones – Local Zones は、汎用バケットではなくディレクトリバケットでのみサポートされます。
-
既存のオブジェクトへのデータの追加は、Local Zones に存在するディレクトリバケットではサポートされていません。アベイラビリティーゾーンに存在するディレクトリバケット内の既存のオブジェクトにのみデータを追加できます。
-
S3 ライフサイクルは、Local Zones のディレクトリバケットではサポートされていません。
-
ディレクトリバケットでサポートされている API オペレーション
ディレクトリバケットは、リージョン (バケットレベル、またはコントロールプレーン) とゾーン (オブジェクトレベル、またはデータプレーン) の両方のエンドポイント API オペレーションをサポートします。詳細については、ディレクトリバケットのネットワークおよびエンドポイントとゲートウェイ VPC エンドポイントを参照してください。
リージョンエンドポイント API オペレーション
ディレクトリバケット用に、以下のリージョンエンドポイント API オペレーションがサポートされています。
ゾーンエンドポイント API オペレーション
ディレクトリバケット用として、以下のゾーンエンドポイント API オペレーションがサポートされています。
ディレクトリバケットでサポートされていない Amazon S3 の機能
以下の Amazon S3 の機能は、ディレクトリバケットでサポートされていません。
-
AWS マネージドポリシー
-
S3 向け AWS PrivateLink
-
MD5 チェックサム
-
多要素認証 (MFA) Delete
-
S3 オブジェクトロック
-
リクエスタ支払い
-
S3 Access Grants
-
S3 アクセスポイント
-
バケットのタグ
-
Amazon CloudWatch のリクエストメトリクス
-
S3 イベント通知
-
S3 ライフサイクルの移行アクション
-
S3 マルチリージョンアクセスポイント
-
S3 Object Lambda アクセスポイント
-
S3 バージョニング
-
S3 インベントリ
-
S3 レプリケーション
-
オブジェクトタグ
-
S3 Select
-
サーバーアクセスログ
-
静的ウェブサイトホスティング
-
S3 Storage Lens
-
S3 Storage Lens グループ
-
S3 Transfer Acceleration
-
AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-KMS)
-
顧客提供のキーを用いたサーバー側の暗号化 (SSE-C)。
-
Amazon S3 コンソールで新しいバケットを作成する際に、既存のバケットの設定をコピーするオプション
-
拡張アクセス拒否 (HTTP
403 Forbidden
) エラーメッセージ