

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

# HAProxy OpsWorks スタックレイヤー
<a name="layers-haproxy"></a>

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

 OpsWorks スタック HAProxy レイヤーは、信頼性の高い高性能 OpsWorks TCP/HTTP ロードバランスである [HAProxy](http://haproxy.1wt.eu/) サーバーをホストするインスタンスの設計図を提供する スタックレイヤーです。通常は、1 つのスモールインスタンスで、すべてのアプリケーションサーバートラフィックを十分に処理できます。

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

**HAProxy レイヤーを作成するには**

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

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

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

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

**Statistics URL**  
統計ページの URL パス。完全な URL は、http://*DNSName**StatisticsPath* の形式になっています (*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 は手動で、または[自動ヒーリング](workinginstances-autohealing.md)によってインスタンスが再開されるまで、インスタンスへのトラフィックのルーティングを停止します。URL サフィックスのデフォルト値は "/" です。これは、サーバーインスタンスのホームページ http://*DNSName*/ に対応しています。

**Health check method**  
インスタンスが機能しているかどうかを確認するために使用される HTTP メソッド。デフォルト値は **OPTIONS** で、**GET** または **HEAD** を指定することもできます。詳細については、「[httpchk](http://cbonte.github.io/haproxy-dconv/configuration-1.5.html)」を参照してください。

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

![\[HAProxy layer configuration form with options for statistics and health check settings.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/add_layer_haproxy.png)


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

![\[HAProxy layer settings interface with options for statistics, health checks, and auto healing.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/haproxy_update_password.png)


## HAProxyレイヤーWorks のしくみ
<a name="w2ab1c14c71b9c21c13c19"></a>

デフォルトで、HAProxy は以下のように動作します。
+ HTTP ポートと HTTPS ポートのリクエストをリッスンします。

  Chef 設定テンプレート (`haproxy.cfg.erb`) をオーバーライドすることによって、HTTP または HTTPS ポートだけをリッスンするように HAProxy を設定できます。
+ 任意のアプリケーションサーバーレイヤーのメンバーであるインスタンスに受信トラフィックをルーティングします。

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

  1 つのアベイラビリティーゾーンがダウンした場合、ロードバランサーは他のゾーン内のインスタンスに受信トラフィックをルーティングするので、アプリケーションは中断せずに実行できます。そのため、推奨される方法は、複数のアベイラビリティーゾーンにアプリケーションサーバーを分散することです。
+ 指定されたヘルスチェックメソッドを各アプリケーションサーバーインスタンスに対して定期的に実行し、正常性を評価します。

  メソッドが指定されたタイムアウト期間内に返らない場合、インスタンスは失敗したと見なされ、HAProxy はインスタンスへのリクエストのルーティングを停止します。 OpsWorks スタックは、失敗したインスタンスを自動的に置き換える方法も提供します。詳細については、「[自動ヒーリングの使用](workinginstances-autohealing.md)」を参照してください。レイヤーを作成する際に、ヘルスチェックメソッドを変更できます。
+ 統計情報を収集し、オプションでウェブページに表示します。

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

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

![\[HAProxy instance table showing hostname, status, size, type, AZ, and public IP address.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/load_balancer_elastic_ip.png)


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

![\[HAProxy instance deletion confirmation dialog with option to retain Elastic IP address.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/delete_lb.png)


このオプションは、削除されたインスタンスと置き換えるために新しいインスタンスをレイヤーに追加したときに何が起こるかに影響します。
+ 削除されたインスタンスの Elastic IP アドレスを保持した場合、 OpsWorks スタックはそのアドレスを新しいインスタンスに割り当てます。
+ それ以外の場合、 OpsWorks スタックはインスタンスに新しい Elastic IP アドレスを割り当てます。新しいアドレスにマッピングするように DNS レジストラ設定を更新する必要があります。

アプリケーションサーバーインスタンスがオンラインになったり、オフラインになったりした場合 (手動で、または [automatic scaling](workinginstances-autoscaling.md) (自動スケーリング) または [auto healing](workinginstances-autohealing.md) (自動ヒーリング) の結果として)トラフィックを現在のオンラインインスタンスのセットにルーティングするには、ロードバランサー設定を更新する必要があります。このタスクは、レイヤーの組み込みレシピによって自動的に処理されます。
+ 新しいインスタンスがオンラインになると、 OpsWorks スタックは Configure [ライフサイクルイベント](workingcookbook-events.md)をトリガーします。HAProxy レイヤーの組み込み設定レシピは、リクエストを任意の新しいアプリケーションサーバーインスタンスにも分散するようにロードバランサー設定を更新します。
+ インスタンスがオフラインになるか、インスタンスがヘルスチェックに失敗すると、 OpsWorks スタックは Configure ライフサイクルイベントもトリガーします。HAProxy Configure レシピはロードバランサー設定を更新して、トラフィックを残りのオンラインインスタンスのみにルーティングします。

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

## 統計ページ
<a name="w2ab1c14c71b9c21c13c21"></a>

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

**HAProxy 統計を表示するには**

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

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

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

1. 前の手順の URL をブラウザに貼り付け、レイヤーを作成したときに指定したユーザー名とパスワードを使用して統計ページを開きます。  
![\[HAProxy statistics report showing process information and session data for frontend and backend servers.\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/haproxy_stats.png)