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

Health check method

インスタンスが機能しているかどうかを確認するために使用されるHTTP方法。デフォルト値は OPTIONSで、 GETまたは を指定することもできます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 レイヤーと PHP App Server レイヤーの両方を持つスタックがあるとします。HAProxyマスターは両方のレイヤーのインスタンスにトラフィックを分散します。カスタムレシピを使用すると、デフォルトルーティングを設定できます。

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

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

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

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

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

重要

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

デフォルトでは、HAProxyレイヤーにインスタンスを追加すると、 AWS OpsWorks Stacks によってアプリケーションを表す 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 Layer の組み込み Configure レシピは、リクエストを任意の新しいアプリケーションサーバーインスタンスにも分散するようにロードバランサー設定を更新します。

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

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

統計ページ

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

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

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

  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.