CloudFrontで作るリバースプロキシ
概要
- 今回はCloudFrontを応用したリバースプロキシの構築方法を紹介します。CloudFrontに複数のオリジンを設定し、パスパターンに応じてリクエストをオリジンに転送する方法となります。
- リバースプロキシとは、クライアントとサーバーを仲介するプロキシサーバーであり、負荷分散や異なるWebサイトを1つに統合する用途で使用します。リバースプロキシの説明は、@IT の記事をご覧ください。
CloudFrontを使ったリバースプロキシ構築
- 先ずCloudFront のコンソールを開きます。
- 下記の記事を参考に、CloudFrontにディストリビューションを作成し、ディストリビューションに代替ドメイン名(CNAME)を設定します。
- CloudFront のディストリビューション選択し、[Origins and Origin Groups]タブを開きます。既に設定済みのオリジンが表示されていることを確認し、2つ目のオリジンを設定するため、[Create Origin]を押します。
![](http://oji-cloud.net/wp-content/uploads/2020/04/2020-04-09_15h53_22-1-725x260.png.pagespeed.ce.u6gGGMfZy6.png)
- 1つ目に設定したオリジンと同じように、2つ目のオリジンを設定します。オリジン設定の詳細は、こちらの記事を参照ください。
![](http://oji-cloud.net/wp-content/uploads/2020/04/2020-04-09_15h54_22-1-725x393.png.pagespeed.ce.OVpGYXFa0l.png)
- 以下の通り、2つ目のオリジンが追加され、一覧に2つのELB が表示されています。
![](http://oji-cloud.net/wp-content/uploads/2020/04/2020-04-09_15h54_35-1-725x345.png)
- 次に、Behaviorsタブを開きます。初期は、Default (*)のPath Pattern(パスパターン)が設定されていますので、今回は下記のパスパターンを追加する設定を行います。
- Path Pattern: test1/* → Origin: ELB-niikawa-test-nlb1-xxxxxxxxxxxxxxxx.elb.ap-northeast-1.amazonaws.com
- Path Pattern: test2/* → Origin: ELB-niikawa-test-nlb2-yyyyyyyyyyyyyyyy.elb.ap-northeast-1.amazonaws.com
- [Create Behavior]を押して、Path Patternを入力し、Origin or Origin Groupを選択します。
![](http://oji-cloud.net/wp-content/uploads/2020/04/2020-04-09_15h56_44-1-725x584.png)
- 以下のパスパターンが設定されました。必要に応じて、Precedence(優先順位)を指定します。
![](http://oji-cloud.net/wp-content/uploads/2020/04/2020-04-09_16h03_13-1-725x220.png)
CloudFrontリバースプロキシの動作確認
- クライアントより、CloudFront のドメイン名にパスを指定してリクエストを投げます。
- なお、オリジン側Webサーバーのパス構成は、CloudFront のBehaviorsに設定したPath Patternと一致させる必要があります。例えば、WebサーバーのDocumentRootが “/var/www/html" であれば、Webサーバーのコンテンツは"/var/www/html/test1″、"/var/www/html/test2″ に配置されています。
- 以下の通り、curlコマンドでリクエストを投げた結果、各パスパターンに応じたレスポンスが返りました。
niikawa@niikawa1:~$ curl https://niikawa-test.example.com/test1/
backend web1
niikawa@niikawa1:~$ curl https://niikawa-test.example.com/test2/
backend web2