AWSは先日開催されたPi DayでMountpoint for Amazon S3を発表した。これはAmazon S3で高スループットのアクセスを実現するオープンソースのファイルクライアントである。現在アルファ版としてリリースされ、単一インスタンスに対して高速転送が可能となっており、主としてデータレイクアプリケーションを対象としている。
Mountpoint for Amazon S3は、ローカルファイルシステムAPIコールをS3オブジェクトAPIコール(GETやLISTなど)に変換する。クライアントはファイルとディレクトリのランダムおよびシーケンシャルな読み取り操作とファイルとディレクトリのリスト表示をサポートしている。アルファ版は書き込み(PUT)をサポートしておらず、今後は新しいオブジェクトへのシーケンシャルな書き込みのみをサポートすることが予想される。
AWSの研究員であり、テキサス大学の助教であるJames Bornholt氏、AWSのシニアプロダクトマネージャであるDevabrat Kumar氏、およびAWSのディスティングイッシュドエンジニアであるAndy Warfield氏は、クライアントが汎用のネットワークファイルシステムではなく、ファイル操作および書き込みに制約があることを認めている。
Mountpoint for Amazon S3は、既存のオブジェクトの途中に書き込む能力を必要としない、大量のS3データを並列して読み取りおよび生成する大規模な分析アプリケーション向けに設計されています。これを使用することでS3バケットやプレフィックスをファイルシステムの名前空間にマッピングし、バケットの内容をローカルファイルのように操作し、オブジェクトへの高スループットアクセスを実現できます。
オープンソースのクライアント※ は、大量のS3 APIコールを必要とするディレクトリ名称の変更や、S3 APIでサポートされていないPOSIXファイルシステムの機能をエミュレートをサポートしていない。
※ 訳注:3rdパーティのクライアント。
ファイルシステムとしてS3を表示するクライアントとしては、すでにGoofysやs3fsといったFUSE経由でバケットをマウントするオープンソースのツールが知られている。一部の開発者はRedditで新しいクライアントの必要性を疑問視し、データレイク領域外での使用を懸念しているが、Bornholt氏、Kumar氏、およびWarfield氏は次のように述べている。
今回のマウントポイントはS3用クライアントとして初出ではありません。オープンソースのファイルクライアントはすでにいくつかあります。しかしユーザーはこれらのクライアントがS3のREST APIやAWS SDKと同レベルの安定性、パフォーマンス、サポート品質であってほしいとみんな思っています。
ほとんどのAWS SDKで使用されるCommon Runtime (CRT)上にRustで構築されたこの新しいクライアントは、ファイルシステムのセマンティクスを検証するために自動推論を利用している。The Duckbill GroupのチーフクラウドエコノミストであるCorey Quinn氏は、ツイートで次のように述べている。
おぉ、どうしたAWS?S3をファイルシステムとして使わないようにと15年間叫んできたのに、まさかS3チーム自身によって覆されるなんて!
クラウド専門家であり、AWS Serverless HeroであるBen Kehoe氏は、警告している。
S3をファイルの概念で考えると、APIのセマンティクスについて誤解を招き、間違った仮定をしてしまい、その仮定が成立しないためにシステムが常に少し壊れた状態になってしまいます。
Apache License 2.0でリリースされたマウントポイントは、まだ本番ワークロードには適していない。初期のアルファ版リリースおよび公開されているロードマップは、GitHubで利用可能である。