このガイドでは、cloudflared を使って Google Cloud Platform(GCP)の仮想マシンを Cloudflare に接続し、Cloudflare Tunnel 経由で Web アプリケーションを公開する手順を説明します。
-
Compute Engine > VM instances を開きます。
-
Create instance を選択します。
-
VM インスタンスに名前を付けます。この例では
http-test-serverとします。 -
希望するオペレーティングシステムとスペックを選びます。この例では、次の設定を使えます。
- Machine family: General Purpose
- Series: E2
- Machine type: e2-micro
- Boot disk image: Debian GNU/Linux 12
- Firewalls: Allow HTTP and HTTPS traffic
-
Advanced options > Management > Automation で、次のスタートアップスクリプトを追加します。この例では、ポート
80に基本的な Apache Web サーバーをデプロイします。#!/bin/bash apt update apt -y install apache2 cat <<EOF > /var/www/html/index.html <html><body><h1>Hello Cloudflare!</h1> <p>This page was created for a Cloudflare demo.</p> </body></html> EOF -
Create を選択します。
-
オペレーティングシステムは Apache HTTP サーバーを自動で起動します。サーバーが動作していることを確認するには:
- VM インスタンスの External IP をコピーします。
- ブラウザーを開き、
http://<EXTERNAL IP>にアクセスします。Hello Cloudflare! のテストページが表示されます。
-
VM インスタンスにログインするには、SSH の横のドロップダウンを開き、Open in browser window を選びます。
- Cloudflare ダッシュボード ↗ で Networking > Tunnels を開きます。
- Create Tunnel を選び、名前(例:
gcp-tunnel)を入力します。 - Create Tunnel を選びます。
- Setup Environment で Debian 64-bit を選びます。
- VM に SSH し、ダッシュボードに表示されるインストールコマンドを実行します。
- トンネルが接続されたら、Continue を選びます。
- Routes で Add route > Published application を選びます。
- ホスト名(例:
hellocloudflare.<your-domain>.com)を入力します。 - Service に
http://localhost:80を入力します。 - Add route を選びます。
テストするには、ブラウザーで設定したホスト名を開きます。
任意で Cloudflare Access を追加し、サービスへアクセスできるユーザーを制御できます。
VM インスタンスを保護するには、VPC ファイアウォール規則 ↗ を設定し、すべての受信トラフィックを拒否して、Cloudflare Tunnel の IP アドレス への送信トラフィックだけを許可できます。GCP は 既定 ↗ で受信トラフィックを拒否するため、受信規則はすべて削除し、必要な送信規則だけを残して構いません。
VPC ファイアウォール規則を設定したあと、Cloudflare Tunnel 経由で 公開ホスト名 からサービスにアクセスできることを確認します。Cloudflare Tunnel の外からはサービスにアクセスできないはずです。たとえば、http://<EXTERNAL IP> を開いてもテストページは表示されなくなります。