CDP:Multi Load Balancerパターン

提供:AWS-CloudDesignPattern
移動: 案内, 検索
寄贈したアーキテクト

複数ロードバランサーの設置

目次

解決したい課題

 Webアプリケーションをマルチデバイスに対応させる場合、PCや携帯、スマートフォンからのアクセスが行なわれる。その際に、アクセスデバイスごとにSSLやセッション振り分けなどの設定を行なう必要がある場合、EC2インスタンス自体にその設定を行なってしまうと、サーバ台数が増加するにつれて、設定の変更が非常に面倒な作業となる。

クラウドでの解決/パターンの説明

 Webアプリケーションをホストしている仮想サーバー群において、設定が異なる複数の仮想ロードバランサーを割り当てることで問題を解決できる。つまり、サーバーに手を入れることなく、各デバイスからのアクセスに対する挙動を仮想ロードバランサー経由で変更することが可能となる。例えば、セッションやヘルスチェック、HTTPSなどの設定がそれに当たる。

実装

 一つのEC2に複数のELB(仮想ロードバランサ―)を割り当てる。ELBのSSL Termination機能を用いれば、HTTPS(SSL)の処理を行うこともできる。

  • ELBの配下にEC2をぶら下げる。
  • セッションやヘルスチェック、HTTPSの設定などが異なるELBを用意し、同一のEC2がぶら下がるようにする。

構造

6wNg0ISJczU5Pz1m-941F5.png

利点

  • 同一のEC2で携帯サイトやPCサイトへの挙動(ロードバランサーレベル)を変更できる。
  • 同一のEC2で複数のSSL(HTTPS)を利用する場合も、SSL(HTTPS)ごとにELBを用意することで可能となる。
    • 現在、一つのEC2に複数のネットワークインターフェース(ENI)、一つのENIに複数のIPアドレスを利用できるため、Multi Load Balancerパターン を利用しなくても同一のEC2で複数のSSL(HTTPS)を利用することは可能となっている。(Kraken SSLパターン)[関連ブログ 1]
    • ワイルドカード証明書が利用できる場合はELBは一つにまとめることができる。場合によっては直下にHAProxyサーバなどを配置しL7での振り分けを行う。[関連ブログ 2]

注意点

  • メンテナンスなどで手動でEC2をELBから切り離す場合は、すべてのELBから切り離す必要があるので注意が必要である。
  • ELBのSSL Termination機能を用いるとEC2側はHTTPでリクエストを受けることになるのでアプリケーションでのHTTPS接続の判定が難しくなる。[関連ブログ 3]

その他

  • Multi-Serverパターンを参照。

関連ブログ

  1. log4moto の「1つのインスタンスで240個のSSLサイトをホストしてみた」( http://d.hatena.ne.jp/j3tm0t0/20121204/1354621074 )
  2. suz-lab - blog の「(ELBとからめて)Hostヘッダでの振り分けをHAProxyでやってみる」( http://blog.suz-lab.com/2012/12/elbhosthaproxy.html )
  3. suz-lab - blog の「"SSL Termination"(ELB)でアプリ(EC2)がHTTPSのチェックを行えない場合」( http://blog.suz-lab.com/2012/09/ssl-terminationelbec2https_17.html )
個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス