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

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

HAProxy AWS OpsWorks スタックレイヤー

注記

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

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

注記

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

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

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

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

HAProxy 統計

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

統計 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

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

ヘルスチェック URL

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

Health check method

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

Custom security groups

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

HAProxy layer configuration form with options for statistics and health check settings.
注記

後で使用するためにパスワードを記録します。 AWS OpsWorks スタックでは、レイヤーの作成後にパスワードを表示することはできません。ただし、レイヤーの [Edit] (編集) ページにアクセスし、[General Settings] (一般設定) タブの [Update password] (パスワードパスワードの更新) をクリックすることによって、パスワードを更新することはできます。

HAProxy layer settings interface with options for statistics, health checks, and auto healing.

HAProxy Layer のしくみ

デフォルトでは、 HAProxyは以下を実行します。

  • HTTP および HTTPS ポートでのリクエストをリッスンします。

    Chef 設定テンプレート を上書きすることで、 HTTPまたは HTTPS ポートのみをリッスンHAProxyするように を設定できますhaproxy.cfg.erb

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

    デフォルトでは、 AWS OpsWorks スタックはHAProxy、任意のアプリケーションサーバーレイヤーのメンバーであるインスタンスにトラフィックを分散するように を設定します。例えば、Rails App Server レイヤーと App PHP Server レイヤーの両方を持つスタックがあるとします。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 instance table showing hostname, status, and public IP address with EIP highlighted.

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

HAProxy instance deletion confirmation dialog with option to retain Elastic IP address.

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

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

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

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

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

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

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

統計ページ

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

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

  2. レイヤーページで、レイヤーの詳細ページHAProxyをクリックして開きます。

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

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

    HAProxy statistics report showing process information and session data for frontend and backend servers.