このトピックでは、Classic Load Balancer (CLB) サービスを使用する前に完了する必要がある準備について説明します。 たとえば、CLBサービスを使用する前に、ビジネスに必要なリスナーのタイプとCLBインスタンスをデプロイするネットワークのタイプを決定する必要があります。
CLBインスタンスをデプロイするリージョンを選択する
リージョンを選択するときは、次の項目に注意してください。
- デフォルトでは、CLBインスタンスを複数のリージョンにデプロイすることはできません。 CLBインスタンスと、CLBインスタンスに追加するElastic Compute Service (ECS) インスタンスが同じリージョンに属していることを確認します。
たとえば、サービスをホストするECSインスタンスが中国 (杭州) リージョンにデプロイされている場合、中国 (杭州) リージョンにCLBインスタンスを作成する必要があります。 これにより、ECSインスタンスをCLBインスタンスに追加できます。
- CLBは、ほとんどのリージョンでプライマリ /セカンダリゾーンのデプロイをサポートしています。 ゾーン間にCLBインスタンスをデプロイして、同じリージョンのデータセンター間でディザスタリカバリを実現できます。 これにより、サービスの安定性と信頼性が保証されます。 プライマリ /セカンダリゾーンの展開をサポートするリージョンを選択することを推奨します。
CLBインスタンスをデプロイするネットワークのタイプを選択します
CLBは、インターネットと内部ネットワークを介して負荷分散サービスを提供します。
- CLBを使用してインターネットからのリクエストを配信する場合は、インターネットに対応するCLBインスタンスを作成します。
インターネット接続CLBインスタンスには、インターネットからのリクエストを受信するためのパブリックIPアドレスが割り当てられています。
- CLBを使用して内部ネットワークからのリクエストを配信する場合は、内部対応のCLBインスタンスを作成します。
内部対応のCLBインスタンスは、Alibaba CloudのIPアドレスプールのプライベートIPアドレスを使用して、Alibaba Cloudの内部ネットワーク内でリクエストを配信します。 内部対応のCLBインスタンスは、インターネット経由でリクエストを配信できません。
CLBインスタンスの仕様を選択する
- ワークロードでわずかな変動しかない場合は、[ペイバイスペック] を選択することを推奨します。 1時間ごとに仕様料金が請求されます。
- ワークロードで定期的または大きな変動が予想される場合は、[従量課金] を選択することを推奨します。 Pay-by-LCU CLBインスタンスは、リソースをオンデマンドで自動的にスケーリングできます。 また、仕様を指定する必要はありません。 消費されたLCUに対して1時間ごとに課金されます。
リスニングプロトコルの選択
CLBは、TCPとUDPでのレイヤー4の負荷分散と、HTTPとHTTPSでのレイヤー7の負荷分散をサポートしています。
- レイヤー4リスナーは、リクエストをバックエンドサーバーに直接転送します。 CLBインスタンスがリクエストを受信すると、CLBインスタンスはリスナーポートに基づいてデータパケットの宛先IPアドレスと宛先ポートを変更します。 次に、CLBインスタンスはリクエストをバックエンドサーバーに転送します。 クライアントとバックエンドサーバーの間にTCP接続が確立されます。
- レイヤー7リスナーはリバースプロキシとして機能します。 クライアント要求がCLBのレイヤー7リスナーに到達すると、CLBは、要求をバックエンドサーバーに直接転送するのではなく、HTTP経由でバックエンドサーバーへの新しいTCP接続を確立します。
レイヤー4リスナーと比較して、レイヤー7リスナーはTengine処理の追加ステップを必要とします。 レイヤー7リスナーのスループット容量は、クライアントポートの枯渇やバックエンドサーバーの過剰なワークロードなどの要因によって制限される場合があります。 ビジネスでより高いパフォーマンスが必要な場合は、レイヤー4リスナーを使用することを推奨します。
詳細については、プロトコルを参照してください。
バックエンドサーバーの作成
CLBサービスを使用する前に、ECSインスタンスを作成し、ECSインスタンスにアプリケーションをデプロイし、ECSインスタンスをCLBインスタンスに追加してクライアントリクエストを処理する必要があります。
- ECSインスタンスとCLBインスタンスが同じリージョンにデプロイされていることを確認します。 さらに、CLBインスタンスとECSインスタンスが同じ仮想プライベートクラウド (VPC) に属していることを確認します。 サービスの可用性を向上させるために、複数のゾーンにECSインスタンスをデプロイすることを推奨します。 ECSインスタンスの作成方法の詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
この例では、ECS01という名前のECSインスタンスとECS02という名前のECSインスタンスが中国 (杭州) リージョンに作成されます。
- ECSインスタンスにアプリケーションをデプロイする必要があります。 この例では、Apacheを使用して2つの静的webページがECS01とECS02でホストされています。
- ECS01に関連付けられているelastic IPアドレス (EIP) をブラウザのアドレスバーに入力します。
- ブラウザのアドレスバーにECS02に関連付けられているEIPを入力します。
ECSインスタンスにアプリケーションをデプロイした後、追加の設定は必要ありません。 ただし、レイヤー4リスナー (TCPまたはUDP) を設定し、ECSインスタンスがLinuxを使用する場合は、次の手順を実行します。- ECSインスタンスにログインし、
grep rp_filter /etc/sysctl.conf
コマンドを実行します。 /etc/sysctl.conf設定ファイルの次のパラメーターの値が0に設定されていることを確認してください:net.ipv4.conf.de fault.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0
- /etc/sysctl.d/ ディレクトリにファイルを追加します。 たとえば、/etc/sysctl.d/90-net-common.confという名前のファイルを追加できます。 次に、ECSインスタンスのポートに基づいて、次のパラメーターをファイルに追加します。
net.ipv4.conf.eth0.rp_filter = 0
- ファイルを追加したら、
sysctl -p
コマンドを実行して設定を有効にします。