共通項目(リバースプロキシ)
リバースプロキシのサービスはどのような運用形態でも共通で使用できます。
cloudflared(Tunnel client)について。
ngrokライクなTunnel client
Cloudflare for Teams等と組み合わせることで限定ユーザーに対してセキュアな直接公開ができる。
基本的にサーバ-を直に一台の単純な構成の時に有効 (AWSの場合elb無し 等) cloudflareならではのユニークなマルチクラウド・ハイブリッドクラウド環境が作成できる。
Cloudflare Tunnel
or Cloudflare Argo Tunnel
と言ったキーワードで紹介される事もある。
公式HPメニューではZero Trust
のカテゴリ内で扱われている。
cloudflaredと他サービスを組み合わせた実装例を下記に紹介していく。
cloudflared(Tunnel client)+ラズベリーパイ
- Cloudflare 版 ngrok な cloudflared をラズベリーパイで使う
ラズベリーパイをcloudflaredで外部公開する
cloudflared(Tunnel client)+NAS
- reenom+Cloudflare+Synology NASでhttps 独自ドメイン運用 (Let's Encrypt ワイルドカードSSL対応)
- Cloudflared docker on Synology (Synology NAS inside a docker)
cloudflared(Tunnel client)+自宅サーバー
- CloudFlare Tunnelで自宅サーバーを公開する(FreeプランOK)
- 自宅サーバーのプライベートアプリを、Cloudflare + Freenom + MyDNSでアクセスできるようにした話
cloudflared(Tunnel client) + AWS
制限
cloudflaredはALBにインストールできないので、EC2直繋ぎ時の可能の制限がある。
- 外部公開サービス 基本サーバー一台構成
- SSH接続・ストレージ系 等限定公開でのセキュアなダイレクト接続
等ALB無しの使用限定、複雑な構成にする時は別の手段を使う。
運用
- autoscaleは使えないが代替品がある。
- waitingルーム : ユーザー側に待って貰う真逆のソリューション、案件によっては代替品になる。
- AWS側はEC2を最低1つのみにして公開可能。
- ルーティング等不要、設定を大幅に簡素化。
- NAT・IGW等諸々が不要になり、大幅な料金低減が可能になる。
- フロントエンドをpagesで済ませば、AWS側の料金を大幅に抑えられる。
- フロントエンドはpages + AWS側はAPIの構成。
- セキュリティをcloudflareの他サービスを組み合わせる事で、AWS単体よりも安く簡単に向上させる事ができる。
- 限定公開をセキュアにできる。
- SSH等のみ外部からセキュアに使う事にも使用できる。
実装資料
- Fargate :
- Lambda :
- EC2 :
- Exposing resources securely with Argo Tunnel : Terraform sample付き
- How we used Cloudflare Argo Tunnels + Access to replace a VPN :
- 上記のgit : Terraform sample git
- ECS :
- Preview Environments with AWS & Cloudflare : Cloudflaredを使用し、開発環境限定公開