HAProxy AWS OpsWorks スタックレイヤー - AWS OpsWorks

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

HAProxy AWS OpsWorks スタックレイヤー

注記

このレイヤーは、Chef 11 以前の Linux ベースのスタックでのみ使用できます。

AWS OpsWorks スタックスタックの HAProxy レイヤーは、HAProxy サーバーをホストするインスタンスのブループリントを提供する AWS OpsWorks スタックレイヤーで、信頼性の高い高性能な TCP/HTTP ロードバランスです。通常は、1 つのスモールインスタンスで、すべてのアプリケーションサーバートラフィックを十分に処理できます。

注記

スタックは 1 つのリージョンに制限されます。アプリケーションを複数のリージョンに分散させるには、リージョンごとに個別のスタックを作成する必要があります。

HAProxy レイヤーを作成するには
  1. ナビゲーションペインで、[Layers] (レイヤー) をクリックします。

  2. [Layers] (レイヤー) ページで [Add a Layer] (レイヤーの追加) または [+ Layer] (+ レイヤー) をクリックします。[Layer type] で [HAProxy] を選択します。

レイヤーには、次の設定があります。すべてがオプションです。

HAProxy statistics

レイヤーが統計を収集および表示するかどうか。デフォルト値は [Yes] です。

Statistics URL

統計ページの URL パス。完全な URL は http://DNSNameStatisticsPath で、DNSName は関連付けられたインスタンスの DNS 名です。StatisticsPath デフォルト値は /haproxy?stats で、http://ec2-54-245-151-7.us-west-2.compute.amazonaws.com/haproxy?stats. に相当します。

Statistics user name

統計ページのユーザー名。統計ページを表示するために指定する必要があります。デフォルト値は、「opsWorks」です。

Statistics password

統計ページのパスワード。統計ページを表示するには、指定する必要があります。デフォルト値はランダムに生成される文字列です。

Health check URL

ヘルスチェック URL サフィックス。HAProxy はこの URL を使用して定期的に各アプリケーションサーバーインスタンスの HTTP メソッドを呼び出し、インスタンスが機能しているかどうかを判断します。ヘルスチェックが失敗した場合、HAProxy は手動で、または自動ヒーリングによってインスタンスが再開されるまで、インスタンスへのトラフィックのルーティングを停止します。URL サフィックスのデフォルト値は "/" です。これは、サーバーインスタンスのホームページ http://DNSName/ に対応しています。

Health check method

インスタンスが機能しているかどうかを確認するために使用される HTTP メソッド。デフォルト値は OPTIONS で、GET または HEAD を指定することもできます。詳細については、「httpchk」を参照してください。

Custom security groups

この設定は、AWS OpsWorks スタックの組み込みセキュリティグループをレイヤーと自動的に関連付けないことを選択している場合に表示されます。レイヤーに関連付けるセキュリティグループを指定する必要があります。グループが正しく設定され、レイヤー間のトラフィックが許可されていることを確認します。詳細については、「新しいスタックを作成する」を参照してください。

注記

パスワードは後で必要になるのでメモしておいてください。AWS OpsWorks スタックでは、レイヤーの作成後はパスワードを表示できないようになっています。ただし、レイヤーの [Edit] (編集) ページにアクセスし、[General Settings] (一般設定) タブの [Update password] (パスワードパスワードの更新) をクリックすることによって、パスワードを更新することはできます。

HAProxyレイヤーWorks のしくみ

デフォルトで、HAProxy は以下のように動作します。

  • HTTP ポートと HTTPS ポートのリクエストをリッスンします。

    Chef 設定テンプレート (haproxy.cfg.erb) をオーバーライドすることによって、HTTP または HTTPS ポートだけをリッスンするように HAProxy を設定できます。

  • 任意のアプリケーションサーバーレイヤーのメンバーであるインスタンスに受信トラフィックをルーティングします。

    デフォルトでは、AWS OpsWorks スタックは任意のアプリケーションサーバーレイヤーのメンバーであるインスタンスにトラフィックを分散させるように HAProxy を設定します。例えば、スタックに Rails アプリケーションアプリケーションサーバー と PHP アプリケーションアプリケーションサーバーレイヤーの両方のレイヤーを持たせることができ、HAProxy マスターはトラフィックを両方のレイヤーのインスタンスに分散させます。カスタムレシピを使用すると、デフォルトルーティングを設定できます。

  • 複数のアベイラビリティーゾーンにトラフィックをルーティングします。

    1 つのアベイラビリティーゾーンがダウンした場合、ロードバランサーは他のゾーン内のインスタンスに受信トラフィックをルーティングするので、アプリケーションは中断せずに実行できます。そのため、推奨される方法は、複数のアベイラビリティーゾーンにアプリケーションサーバーを分散することです。

  • 指定されたヘルスチェックメソッドを各アプリケーションサーバーインスタンスに対して定期的に実行し、正常性を評価します。

    指定されたタイムアウト期間内にメソッドが戻らない場合は、インスタンスに障害が発生していると推定されるため、HAProxy はそのインスタンスへのルーティングリクエストを停止します。AWS OpsWorksスタックには、障害が起きたインスタンスを自動的に置き換える方法も用意されています。詳細については、「自動ヒーリングの使用」を参照してください。レイヤーを作成する際に、ヘルスチェックメソッドを変更できます。

  • 統計情報を収集し、オプションでウェブページに表示します。

重要

ヘルスチェックがデフォルトの OPTIONS メソッドで正しく動作するには、アプリケーションが 2xx または 3xx ステータスコードを返す必要があります。

デフォルトでは、HAProxy レイヤーにインスタンスを追加すると、AWS OpsWorks スタックはそのアプリケーションを表す Elastic IP アドレスを割り当てます。このアドレスは、世界中に対してパブリックです。HAProxy インスタンスの Elastic IP アドレスは、アプリケーションのパブリックに公開される URL に過ぎないため、基盤となるアプリケーションサーバーインスタンスのためのパブリックドメイン名を作成および管理する必要はありません。次の図に示すように、[Instances] ページに移動し、インスタンスのパブリック IP アドレスを調べることで、アドレスを取得することもできます。"(EIP)" の前に表示されているアドレスが Elastic IP アドレスです。Elastic IP アドレスの詳細については、「Elastic IP アドレス (EIP)」を参照してください。

HAProxy インスタンスを停止すると、AWS OpsWorks スタックはその Elastic IP アドレスを保持し、再開時にインスタンスにそれを再割り当てます。HAProxy インスタンスを削除すると、デフォルトでは、AWS OpsWorks スタックはそのインスタンスの IP アドレスを削除します。アドレスを保持するには、次の図に示されているように、[Delete instance's Elastic IP] オプションをオフにします。

このオプションは、削除されたインスタンスと置き換えるために新しいインスタンスをレイヤーに追加したときに何が起こるかに影響します。

  • 削除したインスタンスの Elastic IP アドレスを保持してある場合、AWS OpsWorks スタックはそのアドレスを新しいインスタンスに割り当てます。

  • そうでない場合、AWS OpsWorks スタックはインスタンスに新しい Elastic IP アドレスを割り当てるので、そのアドレスにマップされるように DNS レジストラ設定を更新する必要があります。

アプリケーションサーバーインスタンスがオンラインになったり、オフラインになったりした場合 (手動で、または automatic scaling (自動スケーリング) または auto healing (自動ヒーリング) の結果として)トラフィックを現在のオンラインインスタンスのセットにルーティングするには、ロードバランサー設定を更新する必要があります。このタスクは、レイヤーの組み込みレシピによって自動的に処理されます。

  • 新しいインスタンスがオンラインになると、AWS OpsWorks スタックは Configure ライフサイクルイベントをトリガーします。HAProxy レイヤーの組み込み設定レシピは、リクエストを任意の新しいアプリケーションサーバーインスタンスにも分散するようにロードバランサー設定を更新します。

  • インスタンスがオフラインになるか、インスタンスがヘルスチェックに失敗した場合も、AWS OpsWorks スタックは Configure ライフサイクルイベントをトリガーします。HAProxy Configure レシピはロードバランサー設定を更新して、トラフィックを残りのオンラインインスタンスのみにルーティングします。

最後に、HAProxyレイヤーでカスタムドメインを使用することもできます。詳細については、「カスタムドメインの使用」を参照してください。

統計ページ

統計ページを有効にした場合、HAProxy は指定された URL のさまざまなメトリックスを含むページを表示します。

HAProxy 統計を表示するには
  1. HAProxy インスタンスの Public DNS (パブリックDNS) の名前をインスタンスの [Details] (詳細) ページから取得し、それをコピーします。

  2. [Layers] (レイヤー) ページの [HAProxy] をクリックし、そのレイヤーの詳細ページを開きます。

  3. レイヤーの詳細から統計の URL を取得し、それをパブリック DNS 名に追加します。例えば、http://ec2-54-245-102-172.us-west-2.compute.amazonaws.com/haproxy?stats とします。

  4. 前の手順の URL をブラウザに貼り付け、レイヤーを作成したときに指定したユーザー名とパスワードを使用して統計ページを開きます。