コンテンツにスキップ

Cloudflare R2 クライアント高速配布

AegisMesh のクライアントバイナリ(Windowsインストーラー、macOS、Linux deb/rpm、Android APK等)は、Cloudflare R2 オブジェクトストレージ と Cloudflare Pages / Workers エッジAPI を連携させたグローバルCDN基盤より配信されています。


高速配布アーキテクチャ

sequenceDiagram
    autonumber
    actor User as ユーザー / インストーラー
    participant API as AegisMesh Edge API (/api/download/linux-deb)
    participant R2 as Cloudflare R2 (Global CDN Edge)

    User->>API: GET /api/download/linux-deb
    Note over API: 最新ファイル名 (aegismesh_amd64.deb) を即時解決<br>(Worker CPU時間: 0.5ms未満)
    API-->>User: HTTP 302 Found (Location: https://pub-...r2.dev/latest/aegismesh_amd64.deb)
    User->>R2: GET /latest/aegismesh_amd64.deb (Rangeリクエスト / 高速並列ダウンロード)
    R2-->>User: 200 OK (最寄りエッジキャッシュより超高速ストリーミング)

採用された設計原則

  1. Workerストリーミングの完全排除(CPU時間0.5ms未満): 数百MBのバイナリをWorker内部でバッファリングやプロキシ中継すると、WorkerのCPU制限(50ms〜500ms)を圧迫します。AegisMesh はR2の公開CDN URLへの 即時 302 リダイレクト を採用することで、WorkerのCPU実行時間を0.5ms未満に抑えています。
  2. 完全性検証台帳(SHA256SUMS)の常時同期: バイナリのビルド完了と同時に SHA256SUMS ハッシュ台帳が自動生成され、R2に同期されます。
  3. 最新版固定URLとバージョン固定URLの並行提供:
    • 最新版: /api/download/<target> → latest/<filename>
    • バージョン指定: /api/download/<target>?version=0.79.0 → v0.79.0/<filename> 社内環境の自動展開スクリプト等でバージョンを固定したい場合でも、安全に永続URLを利用できます。

クライアント自動アップデート機能との連携仕様

AegisMesh クライアントデーモンは、起動時および定期ポーリング時に R2 配布エンドポイント上の version.txt を照合し、新バージョンが検出された場合に自動ダウンロード・更新処理を開始します。