Amazon Web Services ブログ

新しいハイパフォーマンスストレージクラス「Amazon S3 Express One Zone」の発表

新しい Amazon S3 Express One Zone ストレージクラスは、S3 標準ストレージクラスの最大 10 倍のパフォーマンスを実現しながら、一貫した 1 桁ミリ秒のレイテンシーで毎秒数十万のリクエストを処理できるように設計されています。そのため、最も頻繁にアクセスされるデータや最も要求の厳しいアプリケーションに最適です。オブジェクトは単一の AWS アベイラビリティーゾーン内の専用ハードウェアに保存および複製されるため、ストレージとコンピューティング (Amazon EC2、Amazon ECS、Amazon EKS) リソースを同じ場所に配置してレイテンシーをさらに短縮できます。

Amazon S3 Express One Zone
Amazon S3 Express One Zone ストレージクラスはコンピュートとストレージ間のレイテンシーが非常に低いため、データ集約型アプリケーションの実行時間を大幅に短縮できます。これは、AI/ML トレーニング、金融モデリング、メディア処理、リアルタイム広告配信、高性能コンピューティングなど、数百または数千の並列コンピューティングノードを使用して大量のデータを処理するアプリケーションで特に有効です。これらのアプリケーションは通常、比較的短期間データを保持しますが、その間のアクセスは非常に頻繁になります。

この新しいストレージクラスはあらゆるサイズのオブジェクトを処理できますが、特に小さいオブジェクトに最適です。小さいオブジェクトの場合、最初のバイトまでの時間が最後のバイトまでの時間に非常に近いからです。どのストレージシステムでも、オブジェクトが大きいほど、転送中にダウンロードするデータが多くなるため、ストリーミングに時間がかかります。したがって、ストレージレイテンシーが、オブジェクトを読み取る合計時間に与える影響は小さくなります。その結果、小さいオブジェクトほど大きいオブジェクトよりも低レイテンシーのメリットが大きくなります。S3 Express One Zone は一貫した超低レイテンシーを保つため、小さいオブジェクトの読み取りは S3 標準と比較して最大 10 倍高速になります。

Amazon S3 Express One Zone は超低レイテンシーを実現し、リクエストコストが S3 標準ストレージクラスよりも 50% 低いことから、スポットおよびオンデマンドのコンピューティングリソースがより効率的に使用されて早期にシャットダウンできるため、全体的な処理コストの削減につながります。

Amazon S3 Express One Zone の各ディレクトリバケットは、選択された単一のアベイラビリティーゾーンに存在し、通常の S3 API 関数 (CreateBucketPutObjectGetObjectListObjectsV2 など) を使用してアクセスできます。バケットは、バイト範囲のフェッチマルチパートアップロードマルチパートコピー署名付き URLAccess Analyzer for S3 など、厳選された S3 機能をサポートしています。オブジェクトを直接アップロードしたり、CopyObject を使用するコードを記述したり、S3 バッチオペレーションを使用したりすることができます。

レイテンシーを短縮し、このストレージクラスを可能な限り効率的かつスケーラブルにするために、次のような新しいバケットタイプ、新しい認証モデル、およびバケット命名規則を導入しています。

新しいバケットタイプ – 新しいディレクトリバケットはこのストレージクラスに固有のもので、毎秒数十万のリクエストをサポートします。階層的な名前空間を持ち、オブジェクトのキー名をディレクトリのように格納します。パス区切り文字は「/」でなければならず、ListObjectsV2 に指定するプレフィックスはすべて区切り文字で終わる必要があります。また、リスト操作では、結果を最初にソートしないで返すため、「start after (次のあと開始)」検索を行うことはできません。

新しい認証モデル – 新しい CreateSession 関数は、特定のバケットへのアクセスを 5 分間許可するセッショントークンを返します。このトークンは、バケットまたはその中のオブジェクトを操作する他の S3 API 関数へのリクエストに含める必要があります。ただし、IAM 認証情報を必要とする CopyObject を除きます。AWS SDK の最新バージョンでは、セッションの作成が自動的に処理されます。

バケットの命名 – ディレクトリバケット名は AWS リージョン内で一意でなければならず、特殊な形式のサフィックスでアベイラビリティーゾーン ID を指定する必要があります。ベースバケット名が jbarr で、それがアベイラビリティーゾーン use1-az5 (米国東部 (バージニア北部) リージョンのアベイラビリティーゾーン 5) に存在する場合、CreateBucket に提供する名前は jbarr--use1-az5--x-s3 になります。バケットは特定のアベイラビリティーゾーン内に存在しますが、リージョンの他のゾーンからアクセス可能であり、あるアベイラビリティーゾーンのコンピュートリソースから同じリージョンの別のアベイラビリティーゾーンのディレクトリバケットへにリクエストする場合はデータ転送料金はかかりません。

Amazon S3 Express One Zone の実際の動作
この新しいストレージクラスを使ってみましょう。コマンドラインに焦点を当てますが、AWS マネジメントコンソールと API アクセスも利用できます。

EC2 インスタンスは us-east-1f アベイラビリティーゾーンで実行されています。jq を使用してこの値をアベイラビリティーゾーン ID にマップします。

$ aws ec2 describe-availability-zones --output json | \
  jq -r  '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'
use1-az5

バケット設定 (s3express-bucket-config.json) を作成し、その ID を含めました。

{
        "Location" :
        {
                "Type" : "AvailabilityZone",
                "Name" : "use1-az5"
        },
        "Bucket":
        {
                "DataRedundancy" : "SingleAvailabilityZone",
                "Type"           : "Directory"
        }
}

最新バージョンの AWS コマンドラインインターフェイス (AWS CLI) をインストールした後、ディレクトリバケットを作成します。

$ aws s3api create-bucket --bucket jbarr--use1-az5--x-s3 \
  --create-bucket-configuration file://s3express-bucket-config.json \
  --region us-east-1
-------------------------------------------------------------------------------------------
|                                       CreateBucket                                      |
+----------+------------------------------------------------------------------------------+
|  Location|  https://jbarr--use1-az5--x-s3.s3express-use1-az5.us-east-1.amazonaws.com/   |
+----------+------------------------------------------------------------------------------+

これで、通常どおりディレクトリバケットを他の CLI コマンドの宛先として使用できます (2 つ目の aws は、AWS CLI を解凍したディレクトリです)。

$ aws s3 sync aws s3://jbarr--use1-az5--x-s3

ディレクトリバケットの内容を一覧表示すると、StorageClassEXPRESS_ONEZONE であることがわかります。

$ aws s3api list-objects-v2 --bucket jbarr--use1-az5--x-s3 --output json | \
  jq -r '.Contents[] | {Key: .Key, StorageClass: .StorageClass}'
...
{
  "Key": "install",
  "StorageClass": "EXPRESS_ONEZONE"
}
...

S3 用のマネジメントコンソールでは、汎用バケットとディレクトリバケットが別々のタブに表示されます。

前述のように、[インポート] ボタンを使用して、既存のバケットのコンテンツ (またはプレフィックス付きのコンテンツのサブセット) をディレクトリバケットにインポートできます。ソースバケットを選択し、[インポート] をクリックして、ソースバケットのインベントリを生成し、S3 バッチオペレーションジョブを作成するために使用するパラメータを入力します。

ジョブが作成され、実行が開始されます。

知っておくべきこと
この新しい S3 ストレージクラスについて知っておくべき重要な点は、次のとおりです。

リージョン – Amazon S3 Express One Zone は、米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (東京)、欧州 (ストックホルム) の各リージョンで利用でき、今後他のリージョンにも拡大する予定です。

その他の AWS サービス – Amazon S3 Express One Zone を、Amazon SageMaker Model TrainingAmazon AthenaAmazon EMRAWS Glue データカタログなどの他の AWS サービスと併用して、機械学習や分析ワークロードを高速化することができます。また、Mountpoint for Amazon S3 を使用して、S3 オブジェクトをファイル指向で処理することもできます。

料金 – 料金は、他の S3 ストレージクラスと同様に従量課金制です。米国東部 (バージニア北部) リージョンでは、0.16 USD/GB (月間) でご利用いただけます。各オブジェクトの最低請求時間は 1 時間で、特定のリクエストタイプには追加料金がかかります。リクエストのうち 512 KB を超える部分については、GB 単位の追加料金がかかります。詳細については、Amazon S3 の料金ページを参照してください。

耐久性 – 万が一、AWS アベイラビリティーゾーンの全部または一部が消失または損傷した場合、One Zone ストレージクラスのデータが失われる可能性があります。例えば、火災や水害などの発生時には、データが失われる可能性があります。しかし、これらの事象を除けば、One Zone ストレージクラスは、独立したディスクやホスト、ラックレベルの障害からデータを保護するために、リージョナルストレージクラスと同等のエンジニアリング設計が採用されており、それぞれ 99.999999999% のデータ耐久性を実現します。

SLA – Amazon S3 Express One Zone は、99.95% の可用性と 99.9% の可用性 SLA を実現するように設計されています。詳細については、「Amazon S3 Service Level Agreement」のページを参照してください。

この新しいストレージクラスは今すぐご利用いただけます。

詳細はこちら
Amazon S3 Express One Zone

Jeff

原文はこちらです。