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

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

HAProxy AWS OpsWorks スタックレイヤー

注記

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

AWS OpsWorks スタック HAProxy レイヤーは、HAProxy AWS OpsWorks サーバーをホストするインスタンスの設計図を提供する スタックレイヤーです。信頼性の高い高性能 TCP/HTTP ロードバランスです。 HAProxy 通常は、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./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 の スタックセキュリティグループをレイヤーに自動的に関連付けないことを選択した場合に表示されます。レイヤーに関連付けるセキュリティグループを指定する必要があります。グループが正しく設定され、レイヤー間のトラフィックが許可されていることを確認します。詳細については、「新しいスタックを作成する」を参照してください。

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レイヤー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 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 レイヤーの組み込み設定レシピは、リクエストを任意の新しいアプリケーションサーバーインスタンスにも分散するようにロードバランサー設定を更新します。

  • インスタンスがオフラインになるか、インスタンスがヘルスチェックに失敗すると、 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 をブラウザに貼り付け、レイヤーを作成したときに指定したユーザー名とパスワードを使用して統計ページを開きます。

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