レガシートンネルの移行
元々、Cloudflare Tunnel接続はあなたのアカウント内のDNSレコードに対応していました。そのホスト名へのリクエストは最初にCloudflareのネットワークに到達し、エッジがそれらのリクエストをトンネルを介してオリジンに送信します。しかし、アウトバウンド専用の接続をリバースプロキシに適合させることは、いくつかの使い勝手や安定性の課題を生み出します。元のCloudflare Tunnelアーキテクチャは、DNSレコードの管理と接続の作成の両方を試みていました。接続が中断されると、トンネルは全体のデプロイメントを再作成しました。さらに、Argo Tunnel接続はCloudflareのコントロールプレーン内で通常のオリジンサーバーのように扱うことができず、サーバー側のソフトウェアから直接管理する必要がありました。
現在、Cloudflare Tunnelのアーキテクチャは、永続的なオブジェクト(DNSレコード、cloudflared)と一時的なオブジェクト(接続)を区別します。これを実現するために、トンネルに永続的な名前とUUIDを割り当て、より安定し、使いやすくしています。トンネルの名前とUUIDは変更されないため、Cloudflare Tunnelが再起動してもDNSレコードをクリーンアップしたり再作成したりする必要はありません。再起動が発生した場合、登録されたcloudflaredインスタンスはそのUUIDアドレスに再接続します。
レガシートンネルがまだ存在するか確認するには:
- Cloudflareダッシュボード ↗にログインし、ゾーンを選択します。レガシートンネルはアカウントではなくゾーンに関連付けられています。
- トラフィック > Cloudflare Tunnelに移動します。
何も表示されない場合、これはそのゾーンに関連付けられたレガシートンネルがないことを示しています。レガシートンネルが表示される場合は、以下の移行手順に従ってください。
レガシートンネルを名前付きトンネルアーキテクチャに移行するには:
-
cloudflared loginを実行して新しいオリジン証明書を取得します。名前付きトンネルはアカウントにスコープされていますが、レガシーの理由からログインページではゾーンを選択する必要があります。 -
トンネルを作成します。
Terminal window cloudflared tunnel create <TUNNEL-NAME> -
トンネルにトラフィックをルーティングして、トンネルが提供するルートを作成します。
-
レガシートンネルが
tunnel.example.comを提供していた場合、このコマンドを実行して名前付きトンネルもtunnel.example.comを提供するように設定します。詳細については、DNSレコードのルーティングセクションを参照してください。Terminal window cloudflared tunnel route dns <TUNNEL-NAME> tunnel.example.com -
レガシートンネルを
--lb-poolフラグで実行していた場合、このコマンドを実行して名前付きトンネルをロードバランサーオリジンとして設定します。詳細については、ロードバランサーのルーティングセクションを参照してください。Terminal window cloudflared tunnel route lb <TUNNEL-NAME> <LOAD-BALANCER-NAME> <LOAD-BALANCER-POOL>
-
-
次に、構成ファイルを作成し、インバウンドルールを設定します。インバウンドルールは、ホスト名とパスに基づいてリクエストをオリジンに配信する方法を説明します。たとえば、過去に
cloudflared tunnel --hostname tunnel.example.com --url https://localhost:3000を実行していた場合、構成ファイルに同等のインバウンドルールを追加する必要があります:ingress:- hostname: tunnel.example.comservice: https://localhost:3000- service: http_status:404# 最後のルールはキャッチオールルールであり、必須です。 -
トンネルを実行します。
移行が完了したら、新しい名前付きトンネルを検証します:
- トンネルの背後にあるリソースにアクセスできることを確認します。
cloudflared tunnel info <NAME-or-UUID>を実行して、名前付きトンネルが存在することを確認します。