コンテンツにスキップ

AWS

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

デプロイする内容は以下の通りです:

  • 基本的なHTTPサーバーを実行するEC2仮想マシン。
  • ユーザーがパブリックホスト名またはプライベートIPアドレスを介してサービスに接続できるCloudflareトンネル。

前提条件

以下の手順を完了するには、次のものが必要です:

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 settingsで、Create 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でインスタンスにログインするには、ターミナルを開いて次のコマンドを実行します:

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

  2. テスト目的で、ポート80に基本的なApacheウェブサーバーをデプロイできます:

Terminal window
$ 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トンネルを作成する

Next, we will create a Cloudflare Tunnel in Zero Trust and run the tunnel on the AWS instance.

  1. Log in to Zero Trust and go to Networks > Tunnels.

  2. Select Create a tunnel.

  3. Choose Cloudflared for the connector type and select Next.

  4. Enter a name for your tunnel (for example, aws-tunnel).

  5. Select Save tunnel.

  6. Under Choose your environment, select Debian. Copy the command shown in the dashboard and run it on your AWS instance.

  7. Once the command has finished running, your connector will appear in Zero Trust.

  8. Select Next.

3. パブリックホスト名を使用して接続する

Public hostname routes allow anyone on the Internet to connect to HTTP resources hosted on your virtual private cloud (VPC). To add a public hostname route for your Cloudflare Tunnel:

  1. In the Public Hostname tab, enter a hostname for the application (for example, hellocloudflare.<your-domain>.com).
  2. Under Service, enter http://localhost:80.
  3. Select Save hostname.
  4. To test, open a browser and go to http://hellocloudflare.<your-domain>.com. You should see the Hello Cloudflare! test page.

You can optionally create an Access application to control who can access the service.

4. プライベートIPを使用して接続する

プライベートネットワークルートを使用すると、ユーザーはWARPクライアントを介して仮想プライベートクラウド(VPC)に接続できます。Cloudflareトンネルのプライベートネットワークルートを追加するには:

  1. Private Networkタブで、AWSインスタンスのPrivate IPv4 address(例:172.31.19.0)を入力します。必要に応じてIP範囲を後で拡張できます。

  2. Split Tunnel設定で、プライベートIPがWARPを介してルーティングされていることを確認します。たとえば、ExcludeモードでSplit Tunnelsを使用している場合は、172.16.0.0/12を削除します。AWSインスタンスで明示的に使用されていないIPを再追加することをお勧めします — この計算機を使用して再追加するIPアドレスを決定できます。

  3. ユーザーデバイスでテストするには:

    1. WARPクライアントにログインする
    2. ターミナルウィンドウを開き、プライベートIPを使用してサービスに接続します:
    Terminal window
    $ 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インスタンスを保護するために、セキュリティグループルールを設定して、すべての受信トラフィックを拒否し、CloudflareトンネルIPアドレスへのみの送信トラフィックを許可できます。すべてのセキュリティグループルールは許可ルールです。ルールに一致しないトラフィックはブロックされます。したがって、すべての受信ルールを削除し、関連する送信ルールのみを残すことができます。

セキュリティグループルールを設定した後、Cloudflareトンネルを介してそのパブリックホスト名またはプライベートIPを介してサービスにアクセスできることを確認します。サービスはCloudflareトンネルの外部からはもはやアクセスできないはずです — たとえば、http://ec2-44-202-59-16.compute-1.amazonaws.comにアクセスすると、テストページはもはや読み込まれないはずです。