3 ポイント 投稿者 GN⁺ 2024-04-20 | 1件のコメント | WhatsAppで共有

Supabase StorageのS3互換性とResumable Uploadsの正式リリース

  • Supabase StorageがS3互換のストレージプロバイダーになった。これは最も要望の多かった機能の1つで、現在はパブリックアルファ版として利用できる。
  • Resumable Uploadsもベータ版から正式版へ移行した。
  • Supabase Storageエンジンは完全なオープンソースであり、ファイル管理のために3つの相互運用可能なプロトコルを提供する数少ないストレージソリューションの1つである。
    • Standard uploads: 始めやすい
    • Resumable uploads: 大容量アップロード向けの再開可能なアップロード
    • S3 uploads: さまざまなツールとの互換性のため

S3互換性

  • Supabaseは常に業界標準の採用に努めている。標準をサポートすることでワークロードを移植可能にできるため、これは主要な製品原則となっている。
  • S3 APIは間違いなくストレージの標準であり、私たちはこれをさまざまな経験レベルの開発者が使えるようにしている。
  • S3プロトコルは他のAPIと後方互換性がある。すでにRESTまたはTUS API経由でStorageを使っているなら、今日からS3クライアントを使ってバケットやファイルとやり取りできる: TUSでアップロードし、RESTで配信し、S3プロトコルで管理する。
  • このプロトコルはクラウド、ローカル開発、セルフホスティングで動作する。ドキュメントでAPI互換性を確認してください。

Supabase S3認証

  • Supabase S3で認証するには2つの選択肢がある:
    1. 標準のaccess_keyおよびsecret_key認証情報。ストレージ設定ページで生成できる。この認証方式はS3プロトコルをサポートするツールと幅広く互換性がある。Storageリソースへのすべてのアクセス権を提供するため、サーバー側でのみ使用するよう設計されている。
      • 今後は、特定のバケットへのアクセス権を持てるスコープ付きアクセスキー認証情報を追加する予定である。
    2. RLS付きのユーザースコープ認証情報。これは、すべてのSupabaseサービスで広く採用されている概念であるRow Level Securityを活用する。既存のRLSポリシーを尊重しながら、特定の認証済みユーザーまたはロールにストレージ操作をスコープしてS3プロトコルとやり取りできる。この方法は、S3プロトコルがサポートするSessionトークンヘッダーを使って実現される。Sessionトークンメカニズムの使い方の詳細はドキュメントで確認できる。

S3互換統合

  • S3プロトコルをサポートしたことで、Supabase Storageを多くのサードパーティ製ツールやサービスに接続できるようになった。いつでも取り消せる認証情報のペアを提供するだけでよい。
  • AWS CLI、rclone、Cyberduckなど、バックアップや移行のための人気ツールを利用できる。
  • Cyberduckガイドを確認してください。

データエンジニア向けS3

  • S3互換性はデータエンジニアにとって優れた基盤を提供する。ClickHouseのようなデータウェアハウス、DuckDB、Spark、Trino、Snowflake External Tableのようなクエリエンジン、FivetranやAirbyteのようなデータローダーなど、多くの人気ツールと併用できる。
  • 例では、素晴らしいデータアナリストであるTylerが、Supabase StorageにParquetファイルを保存し、DuckDBを使って直接クエリする方法を紹介している。

S3のマルチパートアップロード

  • 標準アップロードおよび再開可能なアップロードに加えて、S3プロトコル経由のマルチパートアップロードもサポートするようになった。これにより、チャンクを並列にアップロードしてアップロードスループットを最大化し、最後に結合できる。

Resumable Uploadsの正式リリース

  • プラットフォームGAの発表とあわせて、Resumable Uploadsも正式リリースされたことをお伝えできてうれしい。
  • Resumable UploadsはTUSプロトコルによって駆動されている。このプロセスはTUSチームと緊密に協力して進められ、非常に実り多いものだった。TUSプロトコルのメンテナーである@murderlonと@acconutに、オープンソースに対する協力的なアプローチへの大きな感謝を表したい。

Supabaseの貢献

  • Supabaseは、分散ロック、最大ファイルサイズ、有効期限延長、そして数多くのバグ修正を含め、TUS仕様のNode実装にいくつかの高度な機能を貢献した。
  • これらの機能はSupabaseに不可欠であり、TUS Nodeサーバーがオープンソースであるため利用可能になっている。これはもう1つの中核原則でもある: 可能な場合はゼロから開発するのではなく、既存のツールを使い、支援する。

その他の改善点

  • バケット間転送: 以前は同一のSupabaseバケット内でしか行えなかった操作が、今ではバケット間でオブジェクトをコピーおよび移動できるようになった。
  • 標準化されたエラーコード: エラーコードがStorageサーバー全体で標準化され、特定のエラーに対する分岐ロジックをはるかに使いやすくなった。
  • マルチテナント移行: すべてのテナントで実行中の移行処理を大幅に改善した。これによりフリート全体での移行エラーが減少し、長時間実行される移行を非同期方式で実行できるようになった。
  • 依存関係の分離: Storageが他のSupabase製品から完全に分離され、Storageをスタンドアロンサービスとして実行できる。docker-composeファイルから始めよう。

はじめに

  • ドキュメントでS3 API互換性を確認する
  • S3認証について学ぶ
  • CyberduckでS3を試す: 統合ガイドに従う
  • DuckDBでS3を試す: YouTubeのガイドに従う

GN⁺の見解

  • S3互換性により、Supabase Storageはクラウドストレージ標準にさらに一歩近づいた。多くの企業がすでにS3を使っているため、Supabaseへの移行は非常に容易になる。
  • ただし、S3はもともとAWSのサービスであるため、長期的にはSupabase独自のプロトコルを開発することも検討に値する。Amazonへの依存は避けるべきだろう。
  • Resumable Uploadの正式リリースにより、大容量ファイル転送はさらに容易になりそうだ。従来方式の限界を克服し、使い勝手を高めた点が際立っている。
  • S3を活用したデータエンジニアリングパイプラインの構築は魅力的な事例である。これをうまく活用すれば、企業のデータインフラのモダナイゼーションに役立つだろう。
  • SupabaseがTUSプロトコルの改善に直接貢献し、それが再びオープンソースエコシステムへ還元される好循環の構造は印象的である。単なるオープンソース利用者ではなく、貢献者としての役割を着実に果たしている。

1件のコメント

 
GN⁺ 2024-04-20
Hacker Newsのコメント
  • SupabaseのCEOが、新しいStorage製品アップデートについて紹介している。この製品は大容量ファイルを保存でき、S3互換性が追加されたことで、既存の数千のツールと併用できるようになった。特にデータサイエンティストやエンジニア向けの可能性が注目されている。

  • あるユーザーは、S3をサポートするCDNプロバイダーを活用できるようになったことを歓迎する一方で、Supabaseにはまだ改善が必要な部分があると指摘している。全体としては、Supabaseの発展の方向性を前向きに評価している。

  • DuckDBが、S3プロトコルをサポートするようになったSupabase Storage上で、parquetファイルを直接クエリできる例が共有されている。

  • PostgreSQLのLarge Object保存方式を好むユーザーの意見もある。

  • Supabaseのセルフホスティングのしやすさについての質問が出ている。コストの問題から、セルフホスティングへ移行するのがどれほど簡単かを知りたがっている。

  • SupabaseがOrioleチームを迎え入れたという話題とともに、Cloudflare R2との連携を検討しているユーザーの意見もある。

  • Supabase Storageの実装方式、特に実際にデータがPostgreSQLに保存されるのか、トランザクション更新をサポートするのかといった点についての質問がある。

  • Supabaseへの信頼と愛着を示しつつ、買収されて台無しにならないでほしいと願うユーザーの思いも伝えられている。

  • AWS S3の独自APIが事実上の業界標準になっていることへの違和感を示す意見もある。

  • 事前署名付きURL(pre-signed URL)をサポートしているかどうかについての質問も出ている。