Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

AWS

最終更新 Markdown で表示Agent セットアップ

このガイドでは、軽量コネクター cloudflared を使い、Amazon Web Services(AWS)の仮想マシンを Cloudflare に接続します。

デプロイするものは次のとおりです。

  • 基本的な HTTP サーバーを動かす EC2 仮想マシン。
  • パブリックホスト名またはプライベート IP アドレスのいずれかで、ユーザーがサービスへ接続できる Cloudflare Tunnel。

前提条件

次の手順を完了するには、次が必要です。

1. AWS で VM インスタンスを作成する

  1. AWS コンソールで Compute > EC2 > Instances を開きます。

  2. Launch instance を選びます。

  3. VM インスタンスに名前を付けます。この例では http-test-server とします。

  4. Amazon Machine Image (AMI) で、希望するオペレーティングシステムと仕様を選びます。この例では Ubuntu Server 24.04 LTS (HVM), SSD Volume Type を使います。

  5. Instance type: では、無料枠で使える t2.micro を選べます。

  6. Key pair (login) で、SSH 用の新しいキーペアを作成します。.pem ファイルをローカルマシンにダウンロードする必要があります。

  7. Network settingsCreate security group を選びます。

  8. 次のセキュリティグループルールをオンにします。

    • Allow SSH traffic from My IP — インスタンスが一般公開されないようにします。
    • Allow HTTPS traffic from the internet
    • Allow HTTP traffic from the internet
  9. Launch instance を選びます。

  10. インスタンスが起動したら、Instances の概要ページを開き、Public IPv4 DNS ホスト名をコピーします(例: ec2-44-202-59-16.compute-1.amazonaws.com)。

  11. SSH でインスタンスにログインするには、ターミナルを開き、次のコマンドを実行します。

cd Downloads
chmod 400 "YourKeyPair.pem"
ssh -i "YourKeyPair.pem" ubuntu@ec2-44-202-59-16.compute-1.amazonaws.com
  1. sudo su を実行し、インスタンスの管理者権限を取得します。

  2. テスト用に、ポート 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
  1. Apache サーバーが動作していることを確認するには、ブラウザーで http://ec2-44-202-59-16.compute-1.amazonaws.com を開きます(https ではなく http で接続してください)。Hello Cloudflare! のテストページが表示されます。

2. Cloudflare Tunnel を作成する

Cloudflare Tunnel を作成し、AWS instance 上で実行します。

  1. Cloudflare ダッシュボードにログインし、Networking > Tunnels を開きます。

    Tunnels を開く ↗
  2. Create a tunnel を選択します。

  3. トンネル名を入力します(例: aws-tunnel)。

  4. Create Tunnel を選択します。

  5. OS を選びます(AWS instance では Debian を選択)。インストールコマンドをコピーし、AWS instance 上で実行します。

  6. トンネルの接続を待ちます。接続できたら Continue を選択します。

3. パブリックホスト名で接続する

公開アプリケーション を使うと、インターネット上の誰でも、仮想プライベートクラウド (VPC) 上でホストしている HTTP リソースに接続できます。Cloudflare Tunnel に公開アプリケーションを追加する手順は次のとおりです。

  1. Routes タブで Add route を選び、Published application を選択します。
  2. アプリケーションのホスト名を入力します(例: hellocloudflare.<your-domain>.com)。
  3. Servicehttp://localhost:80 を入力します。
  4. Add route を選択します。
  5. 動作確認として、ブラウザーで http://hellocloudflare.<your-domain>.com を開きます。Hello Cloudflare! のテストページが表示されます。

必要に応じて Access アプリケーションを作成 し、サービスへアクセスできるユーザーを制御できます。

4. プライベート IP で接続する

プライベートネットワークルート を使うと、ユーザーは Cloudflare One Client 経由で virtual private cloud (VPC) に接続できます。Cloudflare Tunnel にプライベートネットワークルートを追加する手順です。

  1. Cloudflare ダッシュボードで Networking > Routes を開きます。

    Routes を開く ↗
  2. Create route > Tunnel CIDR を選びます。作成したトンネルを選び、AWS instance の Private IP address を入力して(例: 172.31.19.0)、Create route を選びます。必要に応じて、あとから IP 範囲を広げられます。

  3. Split Tunnel の設定 で、プライベート IP が Cloudflare One Client 経由でルーティングされていることを確認します。たとえば、Split Tunnels が Exclude モードの場合は、172.16.0.0/12 を削除します。AWS instance が明示的に使っていない IP は、リストへ戻すことを推奨します。

    戻す IP アドレスを決めるには、172.16.0.0/12 から AWS instance の IP を差し引きます。

    結果を Split Tunnel の Exclude モードのリストに戻します。

  4. ユーザーデバイスでテストする手順です。

    1. Cloudflare One Client にログイン します。
    2. ターミナルを開き、プライベート IP でサービスに接続します。
    curl 172.31.19.0
    <html><body><h1>Hello Cloudflare!</h1>
    <p>This page was created for a Cloudflare demo.</p>
    </body></html>

任意で Gateway のネットワークポリシーを作成 し、プライベート IP 経由で AWS instance にアクセスできるユーザーを制御できます。

ファイアウォールの設定

AWS インスタンスを保護するには、Security Group ルール を設定し、すべてのインバウンドトラフィックを拒否して、Cloudflare Tunnel の IP アドレス へのアウトバウンドトラフィックだけを許可できます。Security Group ルールはすべて Allow ルールです。ルールに一致しないトラフィックはブロックされます。そのため、インバウンドルールをすべて削除し、必要なアウトバウンドルールだけを残せます。

Security Group ルールを設定したあと、パブリックホスト名 または プライベート IP で、Cloudflare Tunnel 経由でサービスにアクセスできることを確認します。サービスは Cloudflare Tunnel の外からは到達できなくなります。たとえば http://ec2-44-202-59-16.compute-1.amazonaws.com を開いても、テストページは読み込まれません。

役に立ちましたか?