Server Load Balancer はトラフィック分散制御サービスで、転送ポリシーに基づきトラフィックを複数のバックエンド ECS インスタンスに分配します。
シナリオ
以下のシナリオでは、Server Load Balancer を利用し、ECS インスタンスの高可用性を大きく向上させることができます。
- ハイトラフィックサービス
アプリケーションのトラフィックが多い場合、モニタリングルールを設定し、トラフィックを異なる ECS インスタンスに分配できます。 加えて、セッション維持機能を使用し、同じクライアントから同じバックエンド ECS インスタンスへのリクエストを転送し、アクセス効率を向上させることができます。
- システム拡張機能
ビジネスのデプロイメントの要件に応じて、いつでも ECS インスタンスの追加または削除を行うことができます。これにより、アプリケーションシステムのサービス容量の拡張や、さまざまな Web サービスやアプリケーションサービスへの適用を行うことができます。 詳しくは、「バックエンドサーバーの追加」をご参照ください。
- 単一障害点の除去
Server Load Balancer インスタンスを支える複数の ECS インスタンスを追加できます。 一部の ECS インスタンスに問題がある場合、Server Load Balancer が自動的に問題のある ECS インスタンスを保護し、正常な ECS インスタンスにリクエストを分散します。これにより、アプリケーションシステムが正常に機能することが保証されます。
- リージョン内の耐障害性 (マルチゾーン耐障害性)
1 つのリージョンで複数のゾーンに Server Load Balancer インスタンスをデプロイし、リージョン内の耐障害性を実装できます。 この機能により、1 つのデータセンターに問題がある場合、Server Load Balancer により素早くフロントエンドトラフィックを同一リージョンの他のゾーンに切り替え、サービス機能を復元します。
注 少なくとも 1 つの ECS インスタンスがそれぞれのゾーンに対して追加された場合、Server Load Balancer の効率はこのデプロイモードで最も高くなります。 - リージョン間耐障害性
異なるリージョンに Server Load Balancer インスタンスをデプロイし、対応するリージョンで異なるゾーンの ECS インスタンスを接続することができます。 上位レイヤーは、インテリジェント DNS として Alibaba Cloud DNS を使用し、異なるリージョンの Server Load Balancer インスタンスのサービスアドレスドメイン名を解決します。これにより、グローバルな負荷分散が実装されます。 あるリージョンでシステムが利用できない場合、DNS を一時的に停止することで、すべてのユーザーのアクセスに影響を与えません。
準備
Server Load Balancer を使用する前に、以下の準備を行います。
- Server Load Balancer をデプロイするリージョンの計画
Alibaba Cloud により、すべてのリージョンで Server Load Balancer が提供されます。
注- レイテンシを削減し、ダウンロード速度を加速するため、顧客に対して最も近いリージョンを選択することを推奨します。
- Server Load Balancer はリージョンをまたいだデプロイをサポートしていないため、リージョンを計画し、バックエンド ECS インスタンスと同じリージョンを選択します。
- Server Load Balancer instance のタイプ (パブリックネットワークまたはプライベートネットワーク) の選択
お使いのサービスタイプを基に、Server Load Balancer インスタンスタイプを決定します。 Server Load Balancer インスタンスの作成後、システムにより、パブリック IP アドレスまたはプライベート IP アドレスが、Server Load Balancer インスタンスのタイプを基に割り当てられます。
- パブリックネットワーク Server Load Balancer インスタンスには、パブリック IP アドレスのみ割り当てられます。 これらの Server Load Balancer はインターネットを介してアクセスできます。
- プライベートネットワーク Server Load Balancer インスタンスには、プライベート IP アドレスのみ割り当てられます。 Server Load Balancer は Alibaba Cloud イントラネット上でのみアクセスでき、インターネットを介したアクセスはできません。 プライベートネットワーク Server Load Balancer インスタンスは無料です。
-
リスニングプロトコルの選択
Server Load Balancer は、レイヤー 4 (TCP および UDP)、およびレイヤー 7 (HTTP および HTTPS) のリスニングをサポートしています。
- レイヤー 4 リスニング中、リクエストは直接バックエンドサーバーに転送され、ヘッダーは変更されません。 クライアントのリクエストが Server Load Balancer リスナーに届いた後、Server Load Balancer サーバーは、リスニングに対して設定したバックエンドポートを通じてバックエンド ECS インスタンスと TCP 接続を確立します。
- 原則では、レイヤー 7 リスニングはリバースプロキシの実装方法です。 クライアントのリクエストが Server Load Balancer リスナーに到着後、Server Load Balancer サーバーは、バックエンド ECS インスタンスを TCP 接続を確立します。つまり、バックエンド ECS インスタンスへ直接パケットを転送する代わりに、新しい TCP 接続を通じて再度 HTTP バックエンドサーバーにアクセスします。
レイヤー 4 リスニングと比較すると、レイヤー 7 リスニングは Tengine 処理の追加手順が必要になります。 そのため、レイヤー 7 リスニングのパフォーマンスはレイヤー 4 リスニングのパフォーマンスと同等ではありません。 加えて、レイヤー 7 リスニングパフォーマンスは、クライアントポート数の不足やバックエンドサーバーの接続過多のような要因により、悪化する恐れがあります。 ハイパフォーマンス要件が挙がった場合、レイヤー 4 リスニングを推奨します。
- バックエンドサーバーの準備
Server Load Balancer を支える ECS インスタンスを追加し、フロントエンドリスナーにより転送されたリクエストを処理します。 Server Load Balancer インスタンスの作成前に、ECS インスタンスを作成し、関連するアプリケーションをデプロイします。 ECS インスタンスの作成時は、以下の項目に注意してください。
- ECS インスタンスのリージョンおよびゾーン
ECS インスタンスのリージョンが Server Load Balancer インスタンスのリージョンと同じリージョンであることを確認します。 加えて、ECS インスタンスを異なるゾーンにデプロイし、ローカルの可用性を向上させることを推奨します。
- ECS 設定
ECS インスタンスへのアプリケーションのデプロイ後、特別な設定を行う必要はありません。ただし、Linux ECS インスタンスへレイヤー 4 リスナー (TCP または UDP) を設定するには、net.ipv4.conf ファイルの以下のパラメーターの値が "0s" に設定されていることを確認してください。
net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0
- ECS インスタンスのデプロイ
Server Load Balancer インスタンス用に設定できるバックエンド ECS インスタンスに設定されるクォータはありません。 ただし、お使いの外部サービスの安定性や効率を保証するため、サービスタイプまたはアプリケーションモジュールに基づいたさまざまな Server Load Balancer インスタンスに対して異なるサービスを提供したり異なるタスクを実行するアプリケーションサーバーのECS インスタンスを追加することを推奨します。
- ECS インスタンスのリージョンおよびゾーン
手順
- ECS インスタンスを作成します。 Server Load Balancer サービスのために少なくとも 2 つの ECS インスタンスが必要です。 詳しくは、「ECS インスタンスの作成」をご参照ください。
- ECS インスタンスの作成後、ECS インスタンスに関連するアプリケーションをデプロイします。 詳しくは、「静的 Web ページのインストール」をご参照ください。
- Server Load Balancer インスタンスを作成します。 Server Load Balancer インスタンスは、複数のリスナーおよびバックエンドサーバーにマッピングできます。 詳しくは、「SLB インスタンスの設定」をご参照ください。
- Server Load Balancer インスタンスの作成後、少なくとも 1 つのリスナーおよび 1 つのバックエンドサーバーグループを Server Load Balancer インスタンスに対して追加します。 詳しくは、「SLB インスタンスの設定」をご参照ください。
課金に関する説明
Server Load Balancer は "PayByTraffic" をサポートしています。 特定の請求項目は、インスタンスタイプおよびパフォーマンスタイプに応じて異なります。 詳しくは、「価格」をご参照ください。