yuj1osm's tech blog

クラウド、セキュリティ、AIなど

Amazon CloudFront が VPC オリジンをサポート

Amazon CloudFrontVPC オリジンをサポートしたので、検証してみました。

aws.amazon.com

aws.amazon.com

アップデート概要

VPCとALBを作成

以下のVPCを作成します。
プライベートサブネットを2つ持ち、インターネットゲートウェイをアタッチしています。

内部ALBを作成します。

ターゲットタイプはインスタンスを選択します。

プライベートサブネットにはApache2を起動したEC2インスタンスを配置しておきます。

Apache2の設定として、以下のコマンドでindex.htmlを作成しておきます。

# echo "<html><head><title>Test Page</title></head><body>Hello World</body></html>" > /var/www/html/index.html
# curl localhost:80
<html><head><title>Test Page</title></head><body>Hello World</body></html>

ターゲットグループにはそのEC2インスタンスを登録します。

リスナールールで先ほどのターゲットグループを指定します。

ALBのセキュリティグループは、CloudFrontのマネージドプレフィックスリストからの80/HTTPインバウンドを許可します。

EC2インスタンスのセキュリティグループは、ALBのセキュリティグループからの80/HTTPインバウンドを許可します。

ここまでの設定でうまくいけば、ALBのリソースマップから正常性確認ができます。

CLoudFrontを設定する

CloudFrontの画面から「VPCオリジン」を作成します。
オリジンARNは、事前準備で作成したALBを選択します。

ネットワークインターフェースを確認してみると、各プライベートサブネットにCloudFrontが管理するENIが作成されていることが分かります。

ディストリビューションのオリジンを先ほど作成したVPCオリジンを選択して作成します。

アクセスしてみる

CloudFrontのディストリビューションドメイン名にアクセスすると、プライベートサブネットに配置したEC2インスタンスで稼働しているApache2に接続できました。

まとめ

VPCオリジンを使うことで、簡単にCloudFront経由でプライベートサブネットのコンテンツを提供することができました。