share facebook facebook facebook twitter twitter menu hatena pocket slack

2020.04.22 WED

CloudFrontで作るリバースプロキシ

新川 貴章

WRITTEN BY 新川 貴章

概要

  • 今回はCloudFrontを応用したリバースプロキシの構築方法を紹介します。CloudFrontに複数のオリジンを設定し、パスパターンに応じてリクエストをオリジンに転送する方法となります。
  • リバースプロキシとは、クライアントとサーバーを仲介するプロキシサーバーであり、負荷分散や異なるWebサイトを1つに統合する用途で使用します。リバースプロキシの説明は、@IT の記事をご覧ください。

CloudFrontを使ったリバースプロキシ構築

  • 先ずCloudFront のコンソールを開きます。
  • 下記の記事を参考に、CloudFrontにディストリビューションを作成し、ディストリビューションに代替ドメイン名(CNAME)を設定します。
概要はじめに今回は、CloudFront のディストリビューションに代替ドメイン名(CNAME)を設定する方法をまとめます。代替ドメイン名の設定によって、ディストリビューションにデフォルトで割り当てられたドメイン名ではなく独自のドメイン名 (例: www.example.com) が...
  • CloudFront のディストリビューション選択し、[Origins and Origin Groups]タブを開きます。既に設定済みのオリジンが表示されていることを確認し、2つ目のオリジンを設定するため、[Create Origin]を押します。

  • 1つ目に設定したオリジンと同じように、2つ目のオリジンを設定します。オリジン設定の詳細は、こちらの記事を参照ください。

  • 以下の通り、2つ目のオリジンが追加され、一覧に2つのELB が表示されています。

  • 次に、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を選択します。

  • 以下のパスパターンが設定されました。必要に応じて、Precedence(優先順位)を指定します。

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

参考資料

概要はじめに今回は、CloudFront のディストリビューションに代替ドメイン名(CNAME)を設定する方法をまとめます。代替ドメイン名の設定によって、ディストリビューションにデフォルトで割り当てられたドメイン名ではなく独自のドメイン名 (例: www.example.com) が...
新しいディストリビューションの作成や、既存のディストリビューションの更新を行う場合、以下の値を指定します。CloudFront コンソールを使用してディストリビューションを作成または更新する方法については、「 」または「 」を参照してください。

元記事はこちら

CloudFrontで作るリバースプロキシ

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。