AWS
このガイドでは、軽量コネクタcloudflaredを使用して、Amazon Web Services(AWS)の仮想マシンをCloudflareに接続する方法を説明します。
デプロイする内容は以下の通りです:
- 基本的なHTTPサーバーを実行するEC2仮想マシン。
- ユーザーがパブリックホスト名またはプライベートIPアドレスを介してサービスに接続できるCloudflareトンネル。
以下の手順を完了するには、次のものが必要です:
- Cloudflareにウェブサイトを追加する
- エンドユーザーデバイスにWARPクライアントをデプロイする
-
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" ubuntu@ec2-44-202-59-16.compute-1.amazonaws.com-
sudo suを実行して、インスタンスへの完全な管理権限を取得します。 -
テスト目的で、ポート
80に基本的なApacheウェブサーバーをデプロイできます:
$ 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!**テストページが表示されるはずです。
Next, we will create a Cloudflare Tunnel in Zero Trust and run the tunnel on the AWS instance.
-
Log in to Zero Trust ↗ and go to Networks > Tunnels.
-
Select Create a tunnel.
-
Choose Cloudflared for the connector type and select Next.
-
Enter a name for your tunnel (for example,
aws-tunnel). -
Select Save tunnel.
-
Under Choose your environment, select Debian. Copy the command shown in the dashboard and run it on your AWS instance.
-
Once the command has finished running, your connector will appear in Zero Trust.
-
Select Next.
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:
- In the Public Hostname tab, enter a hostname for the application (for example,
hellocloudflare.<your-domain>.com). - Under Service, enter
http://localhost:80. - Select Save hostname.
- 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.
プライベートネットワークルートを使用すると、ユーザーはWARPクライアントを介して仮想プライベートクラウド(VPC)に接続できます。Cloudflareトンネルのプライベートネットワークルートを追加するには:
-
Private Networkタブで、AWSインスタンスのPrivate IPv4 address(例:
172.31.19.0)を入力します。必要に応じてIP範囲を後で拡張できます。 -
Split Tunnel設定で、プライベートIPがWARPを介してルーティングされていることを確認します。たとえば、ExcludeモードでSplit Tunnelsを使用している場合は、
172.16.0.0/12を削除します。AWSインスタンスで明示的に使用されていないIPを再追加することをお勧めします — この計算機 ↗を使用して再追加するIPアドレスを決定できます。 -
ユーザーデバイスでテストするには:
- WARPクライアントにログインする。
- ターミナルウィンドウを開き、プライベート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にアクセスすると、テストページはもはや読み込まれないはずです。