このガイドでは、cloudflared を使って Amazon Web Services(AWS)の EC2 インスタンスを Cloudflare に接続し、Cloudflare Tunnel 経由でウェブアプリケーションを公開します。
-
AWS コンソールで Compute > EC2 > Instances を開きます。
-
Launch instance を選びます。
-
VM インスタンスに名前を付けます。この例では
http-test-serverとします。 -
Amazon Machine Image (AMI) で、希望するオペレーティングシステムと仕様を選びます。この例では Ubuntu Server 24.04 LTS (HVM), SSD Volume Type を使います。
-
Instance type: では、無料枠で使える t2.micro を選べます。
-
Key pair (login) で、SSH 用の新しいキーペアを作成します。
.pemファイルをローカルマシンにダウンロードする必要があります。 -
Network settings で Create security group を選びます。
-
次のセキュリティグループルールをオンにします。
- Allow SSH traffic from My IP — インスタンスが一般公開されないようにします。
- Allow HTTPS traffic from the internet
- Allow HTTP traffic from the internet
-
Launch instance を選びます。
-
インスタンスが起動したら、Instances の概要ページを開き、Public IPv4 DNS ホスト名をコピーします(例:
ec2-44-202-59-16.compute-1.amazonaws.com)。 -
SSH でインスタンスにログインするには、ターミナルを開き、次のコマンドを実行します。
cd Downloadschmod 400 "YourKeyPair.pem"ssh -i "YourKeyPair.pem" [email protected]-
sudo suを実行し、インスタンスの管理者権限を取得します。 -
テスト用に、ポート
80で基本的な Apache Web サーバーをデプロイできます。
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- Apache サーバーが動作していることを確認するには、ブラウザーで
http://ec2-44-202-59-16.compute-1.amazonaws.comを開きます(httpsではなくhttpで接続してください)。Hello Cloudflare! のテストページが表示されます。
- Cloudflare ダッシュボード ↗ で、Networking > Tunnels を開きます。
- Create Tunnel を選択し、名前を入力します(例:
aws-tunnel)。 - Create Tunnel を選択します。
- Setup Environment で Debian 64-bit を選択します。
- インストールコマンドをコピーし、EC2 インスタンスで実行します。
- トンネルが接続されたら、Continue を選択します。
- Routes で、Add route > Published application を選択します。
- ホスト名を入力します(例:
hellocloudflare.<your-domain>.com)。 - Service に
http://localhost:80を入力します。 - Add route を選択します。
確認するには、ブラウザーで設定したホスト名を開きます。ウェブサーバーのページが表示されます。
AWS インスタンスを保護するには、Security Group のルール ↗ で、インバウンドトラフィックをすべて拒否し、アウトバウンドは Cloudflare Tunnel の IP アドレス への通信だけを許可できます。Security Group のルールはすべて許可ルールです。ルールに一致しないトラフィックはブロックされます。そのため、インバウンドルールをすべて削除し、必要なアウトバウンドルールだけを残せます。
Security Group のルールを設定したあと、Cloudflare Tunnel の 公開ホスト名 経由で、引き続きサービスにアクセスできることを確認します。Cloudflare Tunnel の外からはアクセスできなくなります。たとえば http://ec2-44-202-59-16.compute-1.amazonaws.com を開いても、テストページは読み込まれません。