Upgrade to Pro — share decks privately, control downloads, hide ads and more …

tusで受けて、SFTPで流す: ファイル転送を支える構成と実装

tusで受けて、SFTPで流す: ファイル転送を支える構成と実装

Road to SRE NEXT@福岡
ロリポップ! for Gamers のファイルマネージャ機能において、大容量ファイル転送を実現する構成と実装について紹介します。 採用している connect-web の制約により client-streaming が使えず、初期案としてユーザーインスタンス内にバイナリを配置する方式を検討しましたが、認証・TLS・バイナリのデプロイといった課題に直面しました。 最終的には tus でアップロードを受け、SFTP で転送する proxy アプリを構築。本発表ではその選定理由と構成、Kubernetes との組み合わせなど、裏側を支える設計と工夫を共有します。

Avatar for homirun

homirun

May 09, 2025
Tweet

More Decks by homirun

Other Decks in Technology

Transcript

  1. 2 ⾃⼰紹介 ロリポップ‧ムームードメイン事業部 forGamersチーム 2021年 新卒⼊社 新宮 隆太 Shingu Ryuta ECサービスのSREを経て、2024/4からロリポップ

    ‧ムームードメイン事業部でアプリケーションエン ジニアに。 • 趣味はポータブルオーディオ • 家ではLXDとk8sを飼っています • あだ名: ほみるん • X: @h0mirun_deux
  2. 5

  3. 6

  4. 1. ロリポップ! for Gamersの紹介 8 技術スタック- Webアプリケーション • connect-go ◦

    gRPC 互換の RPC 実装ライブラリで、HTTP/1.1 上でも動作するのが特徴 ◦ Protobuf を使った スキーマ駆動開発が可能 ◦ connect-web を使えば、フロントエンドから直接 RPC を呼び出せる
  5. 3. ファイル転送に関する課題 15 技術的な課題 • connect-webの制約によりclient-streamingが利⽤でき ない ◦ フロントエンド -

    バックエンド間はconnect-webを利⽤している ▪ connect-webはproxyなしで直接RPCを呼び出せるJSのライブラリ ◦ client-streamingが利⽤できないと通信が途切れたときの再送制御が難しい