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 インスタンスを追加することを推奨します。

手順

  1. ECS インスタンスを作成します。 Server Load Balancer サービスのために少なくとも 2 つの ECS インスタンスが必要です。 詳しくは、「ECS インスタンスの作成」をご参照ください。
  2. ECS インスタンスの作成後、ECS インスタンスに関連するアプリケーションをデプロイします。 詳しくは、「静的 Web ページのインストール」をご参照ください。
  3. Server Load Balancer インスタンスを作成します。 Server Load Balancer インスタンスは、複数のリスナーおよびバックエンドサーバーにマッピングできます。 詳しくは、「SLB インスタンスの設定」をご参照ください。
  4. Server Load Balancer インスタンスの作成後、少なくとも 1 つのリスナーおよび 1 つのバックエンドサーバーグループを Server Load Balancer インスタンスに対して追加します。 詳しくは、「SLB インスタンスの設定」をご参照ください。

課金に関する説明

Server Load Balancer は "PayByTraffic" をサポートしています。 特定の請求項目は、インスタンスタイプおよびパフォーマンスタイプに応じて異なります。 詳しくは、「価格」をご参照ください。