🎃

最近知ったCloudflareで実はこんなこともできる集

2021/05/01に公開

Argo Tunnel Client(cloudflared)をngrokの代替として使う

cloudflaredというArgo Tunnelクライアントを使えば、ngrokのようにローカルサーバを外部に公開することができる。

# localhost:8080 を公開する。実行後に表示されるURLを使ってどこからでもアクセスできる。
cloudflared tunnel --url http://localhost:8080

これだけならばわざわざ乗り換える理由にはならないが、ngrokでは有料でしか使えない機能も無料プランで使える。

  • カスタムドメインの割り当て
  • SSOによる認証
  • TCPのプロキシ

セキュアでDDNSのいらないVPNの構築

例えば個人で自宅にVPNの環境を作る場合、ルーターのVPN機能を使うか、VPNサーバを立ててDDNSでドメインを自宅のグローバルIPに紐付けるといったやり方になってくる。
CloudflareのArgo TunnelとWARPを使えば、DDNS不要でSSOで認証できるVPNを作るといったことができる。これらは無料プランで実現できる。
なぜDDNSが不要かというと、Cloudflare側にあるプロキシが接続を受けてLAN内で起動するプロセス(cloudflared)と通信してパケットを流すという仕組みだからだ。
認証はTeamsの設定に従って行われるので、Googleアカウントやパスワード認証、SAMLなどさまざまな方法が使える。

Connect from WARP to a private network on Cloudflare using Argo Tunnel

Cloudflare Pagesで非公開ドキュメントをホストする

Cloudflare PagesはNetlifyみたいなやつだ。Cloudflare Teamsと連携できるため無料でシングルサインオン認証などを設定できる。Cloudflare Pagesでは無料でプレビュー環境にもプロダクション環境にも認証をかけられる。会社のGSuiteのドメインで認証をかければ、社内ドキュメントをホストするといった使い方もできる。

Cloudflare Pagesで /api/* のアクセスをAPIサーバーにプロキシする

Cloudflare Pagesでアプリケーションを公開する場合、パスベースで接続先を振り分けたいということが発生するかもしれない。例えば同じドメインのまま、/api/*だけをAPIサーバーに振り分けたいという要求があった場合、Cloudflare Workerと連携することで実現できる。

Cloudflare Workersを使ってパスベースでリクエストをルーティングする

Cloudflare PagesでXXXしたい

とにかくCloudflareの他の機能とは基本的にうまく連携できる。下記のあたりとの連携は非常に便利そう。

  • Teams(Access)
  • Workers
  • Page Rules
  • Image Resizing

Discussion