翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
レイヤーの負荷分散
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
AWS OpsWorks スタックには、Elastic Load Balancing と の 2 つの負荷分散オプションが用意されています。これらは、通常HAProxy
- SSL 終了
-
組み込みHAProxyレイヤーはSSL終了を処理しません。サーバーSSLで終了する必要があります。このアプローチの利点は、トラフィックがサーバーに到達するまで暗号化されることです。ただし、サーバーによる復号の処理が必要であり、それによりサーバーの負荷が増えます。さらに、ユーザーがよりアクセスしやすいアプリケーションサーバーにSSL証明書を配置する必要があります。
Elastic Load Balancing を使用すると、ロードバランサーSSLで終了できます。これにより、アプリケーションサーバーの負荷は低減されますが、ロードバランサーとサーバーとの間のトラフィックは暗号化されません。Elastic Load Balancing では、サーバーSSLで終了することもできますが、セットアップは少し複雑です。
- スケーリング
-
受信トラフィックが HAProxyロードバランサーの容量を超える場合は、その容量を手動で増やす必要があります。
Elastic Load Balancing は、着信トラフィックを処理するように自動的にスケーリングされます。最初にオンラインになったときに想定負荷を処理するための容量を十分に確保するには、Elastic Load Balancing ロードバランサーを事前ウォーミング
します。 - ロードバランサーの障害
-
HAProxy サーバーをホストしているインスタンスに障害が発生した場合、インスタンスを再起動できるようになるまでサイト全体がオフラインになる可能性があります。
Elastic Load Balancing は、 よりも耐障害性に優れていますHAProxy。例えば、EC2インスタンスを登録した各アベイラビリティーゾーンにロードバランシングノードをプロビジョニングします。1 つのゾーンでサービスが中断された場合は、他のノードで受信トラフィックの処理が継続されます。詳細については、「Elastic Load Balancing Concepts」(Elastic Load Balancing のコンセプト) を参照してください。
- アイドルタイムアウト
-
指定したアイドルタイムアウト値よりも長い時間アイドル状態になった場合、両方のロードバランサーによって接続が終了されます。
-
HAProxy – アイドルタイムアウト値には上限がありません。
-
Elastic Load Balancing – デフォルトのアイドルタイムアウト値は 60 秒で、最大値は 3600 秒 (60 分) です。
Elastic Load Balancing のアイドル時間の制限は、ほとんどの目的に対して十分たります。より長いアイドルタイムアウトHAProxyが必要な場合は、 を使用することをお勧めします。以下に例を示します。
-
プッシュ通知に使用される長時間実行されるHTTP接続。
-
管理インターフェイスを使用して、60 分を超える可能性のあるタスクを実行する場合。
-
- URLベースのマッピング
-
ロードバランサーに、リクエストの に基づいて受信リクエストを特定のサーバーに転送させることもできますURL。たとえば、オンラインコマースアプリケーションをサポートする 10 台のアプリケーションサーバーのグループがあるとします。そのうちの 8 台のサーバーではカタログを処理し、2 台のサーバーでは支払いを処理します。HTTP リクエスト に基づいて、すべての支払い関連のリクエストを支払いサーバーに転送しますURL。この場合、「支払い」または「チェックアウト」を含むすべての URLs を支払いサーバーの 1 つに転送します。
ではHAProxy、 URLベースのマッピングを使用して、指定された文字列を特定のサーバーにURLs含むように に指示できます。 AWS OpsWorks スタックで URLベースのマッピングを使用するには、
haproxy
組み込みクックブックのhaproxy-default.erb
テンプレートを上書きしてカスタムHAProxy設定ファイルを作成する必要があります。詳細については、HAProxy「設定マニュアル」および「」を参照してくださいカスタムテンプレートの使用。HTTPS リクエストに URLベースのマッピングを使用することはできません。HTTPS リクエストは暗号化されているため、 HAProxyはリクエスト を調べる方法がありませんURL。 Elastic Load Balancing では、URLマッピングのサポートが制限されています。詳細については、「Listener Configurations for Elastic Load Balancing」(Elastic Load Balancing のリスナー設定) を参照してください。
推奨事項: でのみ処理できる要件がない限り、ロードバランシングには Elastic Load Balancing を使用することをお勧めしますHAProxy。この場合、受信トラフィックを一連のHAProxyサーバーに分散するフロントエンドのロードバランサーとして Elastic Load Balancing を使用することで、この 2 つを組み合わせるのが最善の方法です。これを実行するには:
-
各スタックのアベイラビリティーゾーンにHAProxyインスタンスをセットアップして、ゾーンのアプリケーションサーバーにリクエストを分散します。
-
HAProxy インスタンスを Elastic Load Balancing ロードバランサーに割り当て、ロードバHAProxyランサーに受信リクエストを分散します。
このアプローチにより、 HAProxyの URLベースのマッピングを使用して、さまざまなタイプのリクエストを適切なアプリケーションサーバーに分散できます。ただし、いずれかのHAProxyサーバーがオフラインになっても、Elastic Load Balancing ロードバランサーは受信トラフィックを正常なHAProxyサーバーに自動的に分散するため、サイトは引き続き機能します。Elastic Load Balancing をフロントエンドロードバランサーとして使用する必要があることに注意してください。 HAProxyサーバーは他のHAProxyサーバーにリクエストを分散できません。