レイヤーの負荷分散 - AWS OpsWorks

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

レイヤーの負荷分散

重要

- AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 にお問い合わせください。 AWS Support でのチーム AWS re:Post または through AWS プレミアムサポート

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を含む を特定のサーバーに指示できます。で URLベースのマッピングを使用するには AWS OpsWorks スタックでは、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。この場合、最善のアプローチは、Elastic Load Balancing をフロントエンドロードバランサーとして使用して、受信トラフィックを一連のHAProxyサーバーに分散させることです。これを実行するには:

  • 各スタックのアベイラビリティーゾーンにHAProxyインスタンスを設定し、ゾーンのアプリケーションサーバーにリクエストを分散します。

  • HAProxy インスタンスを Elastic Load Balancing ロードバランサーに割り当て、ロードバHAProxyランサーに受信リクエストを分散します。

このアプローチにより、 HAProxyの URLベースのマッピングを使用して、さまざまなタイプのリクエストを適切なアプリケーションサーバーに配信できます。ただし、いずれかのHAProxyサーバーがオフラインになっても、Elastic Load Balancing ロードバランサーは受信トラフィックを正常なHAProxyサーバーに自動的に分散するため、サイトは引き続き機能します。フロントエンドロードバランサーとして Elastic Load Balancing を使用する必要があります。HAProxyサーバーは他のHAProxyサーバーにリクエストを分散できないことに注意してください。