S3 Express One Zone の違いを理解する - Amazon Simple Storage Service

S3 Express One Zone の違いを理解する

Amazon S3 Express One Zone は、最もレイテンシーの影響を受けやすいアプリケーションに 1 桁のミリ秒単位で一貫したデータアクセスを提供することを目的として構築された、高パフォーマンスのシングルアベイラビリティーゾーンの Amazon S3 ストレージ クラスです。S3 Express One Zone は、オブジェクトストレージをコンピュートリソースと同じ場所に配置するオプションを備えた単一のアベイラビリティーゾーンを選択できる最初の S3 ストレージクラスです。これにより、最高レベルのアクセス速度を実現できます。また、アクセス速度をさらに向上し、1 秒あたり数十万のリクエストをサポートするために、S3 Express One Zone はデータを新しいバケットタイプである Amazon S3 ディレクトリバケットに保存します。

詳細については、「ディレクトリバケットと S3 Express One Zone」を参照してください。

Amazon S3 API を使用して、ディレクトリバケットを作成し、S3 Express One Zone のデータにアクセスできます。Amazon S3 API は S3 Express One Zone やディレクトリバケットと互換性がありますが、いくつか大きな違いがあります。S3 Express One Zone の違いの詳細については、次のトピックを参照してください。

S3 Express One Zone の違い

  • サポートされているバケットタイプ – S3 Express One Zone ストレージクラスのオブジェクトは、ディレクトリバケットにのみ保存できます。詳細については、「ディレクトリバケットの概要」を参照してください。

  • 永続性 – S3 Express One Zone では、データは単一のアベイラビリティーゾーン内で冗長的に複数のデバイスに保存されます。S3 Express One Zone は、単一のアベイラビリティーゾーン内で 99.95% の可用性を実現するように設計されており、Amazon S3 サービスレベル契約に基づいています。詳細については、「単一のアベイラビリティーゾーン」を参照してください。

  • ListObjectsV2 の動作

    • ディレクトリバケットの場合、ListObjectsV2 は辞書順 (アルファベット順) にオブジェクトを返すわけではありません。さらに、プレフィックスは区切り文字で終わる必要があり、区切り文字として指定できるのは「/」のみです。

    • ディレクトリバケットの場合、ListObjectsV2 レスポンスには、進行中のマルチパートアップロードにのみ関連するプレフィックスが含まれます。

  • 削除動作 – ディレクトリバケット内のオブジェクトを削除すると、Amazon S3 はオブジェクトパス内の空のディレクトリをすべて再帰的に削除します。例えば、オブジェクトキー dir1/dir2/file1.txt を削除した場合、Amazon S3 は file1.txt を削除します。 dir1/dir2/ のディレクトリが空で、その他のオブジェクトが含まれていない場合、Amazon S3 はこれらのディレクトリも削除します。

  • ETag とチェックサム – S3 Express One Zone のエンティティタグ (ETag) はランダムな英数字文字列であり、MD5 チェックサムではありません。S3 Express One Zone での追加のチェックサムの詳細については、「S3 の追加のチェックサムのベストプラクティス」を参照してください。

  • DeleteObjects リクエスト内のオブジェクトキー

    • DeleteObjects リクエストのオブジェクトキーには、空白以外の文字を 1 つ以上含める必要があります。すべての空白文字を含む文字列は DeleteObjects リクエストではサポートされていません。

    • DeleteObjects リクエストのオブジェクトキーには、改行 (\n)、タブ (\t) とキャリッジリターン (\r) 文字を除き、Unicode 制御文字を含めることはできません。

  • リージョンエンドポイントとゾーンエンドポイント – S3 Express One Zone を使用する場合、すべてのクライアントリクエストでリージョンを指定する必要があります。リージョンエンドポイントの場合は、s3express-control.us-west-2.amazonaws.com などのリージョンを指定します。ゾーンエンドポイントの場合は、s3express-usw2-az1.us-west-2.amazonaws.com など、リージョンとアベイラビリティーゾーンの両方を指定します。詳細については、「リージョンエンドポイントとゾーンエンドポイント」を参照してください。

  • マルチパートアップロード – Amazon S3 に保存されているその他のオブジェクトと同様に、マルチパートアップロードプロセスを使用して S3 Express One Zone ストレージクラスに保存されているサイズの大きいオブジェクトをアップロードしてコピーできます。ただし、S3 Express One Zone に保存されているオブジェクトでマルチパートアップロードプロセスを使用する場合は次のような違いがあります。詳細については、「ディレクトリバケットでのマルチパートアップロードの使用」を参照してください。

    • オブジェクトの作成日はマルチパートアップロードの完了日となります。

    • マルチパート番号には連続したパート番号を使用する必要があります。連続しないパーツ番号を使用してマルチパートアップロードリクエストを実行しようとすると、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 オペレーションを使用して進行中のすべてのマルチパートアップロードを中止します。

  • サーバー側の暗号化

    • ディレクトリバケットの場合、サーバー側の暗号化でデータを暗号化するには、Amazon S3 マネージドキーを使用したサーバ側の暗号化 (SSE-S3)(デフォルト) または AWS Key Management Service (AWS KMS) キーを使用したサーバー側の暗号化 (SSE-KMS) のいずれかを使用できます。バケットのデフォルトの暗号化では、必要な暗号化設定を使用することをお勧めします。CreateSession リクエストまたは PUT オブジェクトリクエストでは、バケットのデフォルトの暗号化を上書きしないことをお勧めします。その後、新しいオブジェクトは必要な暗号化設定で自動的に暗号化されます。ディレクトリバケットの暗号化の上書き動作の詳細については、「新しいオブジェクトのアップロードに AWS KMS を使用してサーバー側の暗号化を指定する」を参照してください。

    • SSE-KMS 設定では、バケットの存続期間中、ディレクトリバケットごとに 1 つのカスタマーマネージドキーしかサポートできません。AWS マネージドキー (aws/s3) はサポートされていません。また、SSE-KMS のカスタマーマネージドキーを指定した後は、バケットの SSE-KMS 設定のカスタマーマネージドキーを上書きすることはできません。

      バケットの SSE-KMS 設定に指定したカスタマーマネージドキーは、次のように識別できます。

      • HeadObject API オペレーションリクエストを実行して、レスポンス内の x-amz-server-side-encryption-aws-kms-key-id の値を検索します。

      データに新しいカスタマーマネージドキーを使用するには、新しいカスタマーマネージドキーを使用して既存のオブジェクトを新しいディレクトリバケットにコピーすることをお勧めします。

    • CopyObject および UploadPartCopy を除くゾーンエンドポイント (オブジェクトレベル) API オペレーションでは、CreateSession を介してリクエストを認証および承認することで低レイテンシーを実現します。バケットのデフォルトの暗号化では、必要な暗号化設定を使用することをお勧めします。CreateSession リクエストまたは PUT オブジェクトリクエストでは、バケットのデフォルトの暗号化を上書きしないことをお勧めします。その後、新しいオブジェクトは必要な暗号化設定で自動的に暗号化されます。SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトを暗号化するには、KMS キー (特にカスタマーマネージドキー) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります。その後、ゾーンエンドポイント API オペレーションのセッションが作成されると、セッション中に新しいオブジェクトが SSE-KMS および S3 バケットキーで自動的に暗号化および復号されます。ディレクトリバケットの暗号化の上書き動作の詳細については、「新しいオブジェクトのアップロードに AWS KMS を使用してサーバー側の暗号化を指定する」を参照してください。

    • CopyObject の場合、SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトコピーを暗号化するには、KMS キー (特にカスタマーマネージドキー) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります。次に、SSE-KMS で新しいオブジェクトコピーにサーバー側の暗号化設定を指定するときは、暗号化キーがディレクトリバケットのデフォルトの暗号化設定に指定したカスタマーマネージドキーと同じであることを確認する必要があります。UploadPartCopy では、SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトパーツコピーを暗号化するには、KMS キー (特にカスタマーマネージドキー) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります。UploadPartCopy リクエストヘッダーで SSE-KMS を使用して新しいオブジェクトパートコピーのサーバー側の暗号化設定を指定することはできません。また、CreateMultipartUpload リクエストで指定する暗号化設定は、送信先バケットのデフォルトの暗号化設定と一致する必要があります。

    • S3 バケットキーは、ディレクトリバケット内の GET および PUT オペレーションで常に有効になっており、無効にすることはできません。SSE-KMS で暗号化されたオブジェクトを、CopyObjectUploadPartCopyバッチオペレーションの Copy オペレーション、または import ジョブを使用して、汎用バケットからディレクトリバケットへ、ディレクトリバケットから汎用バケットへ、またはディレクトリバケット間でコピーする場合、S3 バケットキーはサポートされません。この場合、KMS で暗号化されたオブジェクトのコピーリクエストが実行されるたびに、Amazon S3 は AWS KMS を呼び出します。

    • ディレクトリバケットで暗号化に AWS KMS カスタマーマネージドキーを指定する場合は、キー ID またはキー ARN のみを使用します。KMS キーのキーエイリアス形式はサポートされていません。

S3 Express One Zone がサポートする API オペレーション

Amazon S3 Express One Zone ストレージクラスは、リージョン (バケットレベル、またはコントロールプレーン) とゾーン (オブジェクトレベル、またはデータ プレーン) の両方のエンドポイント API オペレーションをサポートします。詳細については、S3 Express One Zone のネットワークおよびエンドポイントとゲートウェイ VPC エンドポイントを参照してください。

リージョンエンドポイント API オペレーション

S3 Express One Zone では、次のリージョンエンドポイント API オペレーションがサポートされています。

ゾーンエンドポイント API オペレーション

S3 Express One Zone では、次のゾーンエンドポイント API オペレーションがサポートされています。

S3 Express One Zone がサポートしていない Amazon S3 の機能

S3 Express One Zone では、次の 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) エラーメッセージ