AWS S3は「多くのアプリケーションのプライマリストレージになることを目指している」

Table of Contents

AWS S3は「多くのアプリケーションのプライマリストレージになることを目指している」

re:Invent先日開催されたAWS re:Inventカンファレンスでは、AI関連の話題が盛り上がりを見せていましたが、多くのユーザーにとって特に目立ったのはS3(Simple Storage Service)Express One Zoneのリリースでした。これは、標準的なS3バケットよりもはるかに低いレイテンシを提供するS3ティアです。これにより、S3はより幅広いアプリケーションで直接利用できるようになり、ストレージコストとパフォーマンスの計算方法が変わります。

S3 Expressを新しい層と呼ぶだけでは不十分です。これは、2つ目のバケットタイプである「ディレクトリバケット」を導入する新しい種類のストレージです。「ディレクトリバケットは、汎用バケットのフラットなストレージ構造とは対照的に、データをディレクトリに階層的に整理します。ディレクトリバケットにはプレフィックスの制限はなく、個々のディレクトリは水平方向にスケールできます」とドキュメントには説明されています。

S3 Express と標準 S3 のもう 1 つの違いは、Express は単一のアベイラビリティーゾーン (通常は、一緒に使用されるコンピューティング インスタンスのローカルな 1 つ) に制限されていることです。

S3 Express ではサポートされていない S3 機能が多数あります。これには、S3 レプリケーション、S3 バージョニング、静的ウェブサイトホスティング、S3 向け PrivateLink、AWS Key Management Service またはお客様提供のキーを使用したサーバー側暗号化、S3 イベント通知などが含まれます。S3 Express は S3 API を使用し、優れたパフォーマンスを提供しますが、S3 のすべての機能を実装しているわけではありません。

アンディ・ウォーフィールド、AWS の著名なエンジニア Amazon S3

アンディ・ウォーフィールド、AWS の著名なエンジニア Amazon S3

re:Invent Las Vegas で、Amazon S3 の AWS 著名なエンジニアである Andy Warfield が、AWS の最初のサービスである S3 の変化について説明しました。

「17年前にS3がローンチされた当時、インターネットのストレージシステムのようなものになるという話がありました。しかし実際には、S3は安全で耐久性のあるアーカイブストアとして広く扱われ、人々はその上にウェブサイトを構築していました」とウォーフィールド氏は説明した。「過去5年から10年で注目すべき点は、S3上で直接実行される分析ワークロードの増加、そしてエンタープライズHDFS(Hadoop分散ファイルシステム)クラスターがMapReduceやSparkジョブに置き換えられたことです」と彼はThe Registerに語り、「これがサービスのあり方を大きく変えました」と語った。

S3は、ストレージと耐久性中心から、スループットにも重点を置くようになりました。過去5年間、スループット重視へと私たちを導いてきた同じお客様が、今ではレイテンシー重視へと私たちを導いています。開発者の観点から言えば、S3をアプリケーションにさらに統合していくことが重要です。

従来のS3のパターンでは、開発者はS3からデータを引き出し、やり取りのために中間ストアに書き込み、その後、耐久性を確保するためにS3に書き戻すというものでした。「顧客はAPIを使ってデータにアクセスしたいだけだという声が聞こえてきます」とウォーフィールド氏は述べています。「S3は多くのアプリケーションにとってプライマリストレージになることを目指しています。」

Hacker News での議論では、元 AWS エンジニアによる背景情報が紹介されています。「これは Rust で書かれた低レイテンシの S3 です。何年もかけて開発され、ついにリリースされました」とあるエンジニアは書いています。また、「かつて S3 で働いていた」別のエンジニアは、標準の S3 は SSD ではなくハードドライブを使用していること、リクエストパスでガベージコレクションを実行する Java を使用していること、そして「ストレージコストを削減するために、オブジェクトは「ワイド」に消去符号化されるため、リクエストの処理に多くのホストが関与しています。つまり、リクエストの速度を低下させるには、そのようなサブリクエストが 1 つでも遅くなればよいことになります。新しいストレージクラスは SSD を基盤としており、おそらく Java は使用されていないと思われます。また、データを多くのホストにストライプ化することもありません」と主張しています。

S3 Express が Rust での S3 バックエンドの再実装である場合、パフォーマンスの向上と、それが標準の S3 とは異なり、包括的でない理由の両方が説明されます。

  • AWSはマイクロソフトが顧客のクラウドの自由を侵害していると非難
  • AWS幹部:「オープンソースに対する我々の理解は変わり始めている」
  • AWSの信頼性を心配しているなら、クラウド大手は大規模な障害をシミュレートできるようにしました
  • AWS で AI のすべてが揃うショーが続く: テキストからの SQL 生成、ベクトル検索など

ウォーフィールド氏は詳細を明かさなかったものの、チームが「そこで行ってきたことの多くを再構築し、Rustで膨大な作業を行いました。ディスク上のレイアウトであるShardStoreを完全にRustで書き直すという論文を発表しました。置き換えるのはかなり大変なコードなので、正確性を確保するために、そのレベルで形式検証ツールを大量に導入しました。このトレンドとRustで培ってきたスキルは、Expressの開発にも活かされています」と明かした。

ウォーフィールド氏はまた、S3とExpressを最大限に活用するために、クライアントツールに多くの改良が加えられたと説明した。「CRT(Common Runtime)と呼ばれるものをリリースしました。これは、パフォーマンスに関するベストプラクティスをすべて組み込んだネイティブコードライブラリで、転送を自動的に並列化します。その目標は、NICの飽和状態を解消することです。CRTに加えて、Hadoop向けのS3との統合機能を提供し、PyTorchプラグインと、S3へのファイル接続を可能にするFUSEコネクタであるMountPointもリリースしました。これらすべてが、リリース時点でExpressをサポートしています。」

S3 Expressは標準のS3よりも高価ですが、AWSが提供する他のストレージオプションの代替として利用できます。パフォーマンスだけでなくコストも重要ですが、価値を最大化したいお客様にとってどのようなガイダンスがありますか?

ウォーフィールド氏は、S3 Expressでは多くのワークロードでリクエスト料金が約50%安くなる一方で、ストレージ容量のコストが高くなる点が重要だと説明した。「そのため、ワークロードは比較的短命になると予想しており、リクエスト側で最大50%のコスト削減が実現すれば、エンドツーエンドのワークロードコストも最大80%削減できます。これは、ジョブの完了が早くなり、コンピューティングリソースとGPUの使用時間が削減されるためです。」

開発者はジョブのためにデータをS3 Expressに転送し、ジョブを実行してからデータをS3 Expressから移動する、というパターンが考えられます。Warfield氏は、re:InventでAWS Batchの操作に関する「あまり目立たない」発表を紹介しました。これにより、ユーザーは「バケット全体、プレフィックス、サフィックス、作成日、またはストレージクラス」を指定してS3オブジェクトを1ステップで移動できるようになり、この種のデータ転送が容易になります。また、Warfield氏は、今後このような便利な機能がさらに増えていくことを示唆しました。

S3 Expressの今後の展望は?ウォーフィールド氏は、「お客様からのお問い合わせは大きく分けて2つのカテゴリーに分かれます。1つは、この単一ゾーンバケットとS3の他の部分との違いが明確で、改善が必要であり、多くの作業が必要です。もう1つは、よりインタラクティブなストレージリクエストに関するものです。今後は、S3データへのよりインタラクティブなインターフェースに注力し、お客様がこのインターフェースで実現したいことを実現していきます。」と説明しました。®

Discover More