すべてのプロダクト
Search
ドキュメントセンター

Cloud Network Well-architected Design Guidelines:ECS のアプリケーション配信ネットワーク設計

最終更新日:Feb 07, 2025

概要

概要

アプリケーション配信ネットワークは、アプリケーションのリリース、ディザスタリカバリの実装、および保護の提供に使用されます。Server Load Balancer (SLB) は、アプリケーション配信ネットワークの主要コンポーネントです。SLB ファミリーには、レイヤー 4 ロードバランサー Network Load Balancer (NLB)、レイヤー 7 ロードバランサー Application Load Balancer (ALB)、および Classic Load Balancer (CLB) が含まれます。Alibaba Cloud のクラウドネイティブゲートウェイとして、SLB はアプリケーション配信ネットワークの最も重要なコンポーネントの 1 つです。このトピックでは、高効率なアプリケーション配信ネットワークを構築するために SLB を選択、デプロイ、および使用する方法について説明します。

用語

  • Virtual Private Cloud (VPC): VPC は、Alibaba Cloud 上で作成できるカスタムプライベートネットワークです。VPC は、レイヤー 2 で論理的に分離されています。VPC 内で、Elastic Compute Service (ECS)、Server Load Balancer (SLB)、ApsaraDB RDS などのクラウドサービスインスタンスを作成および管理できます。

  • 仮想 IP アドレス (VIP): VIP は、特定のコンピューターまたはネットワークインターフェースに割り当てられていない IP アドレスです。VIP は、負荷を分散し、高可用性と冗長性を実装するために、さまざまな物理サーバーまたはデバイスに動的に割り当てることができます。

  • DNS カットオーバー: ネットワークの移行またはスイッチオーバー中に、DNS カットオーバーにより、更新された DNS レコードに基づいて、既存のサーバーから新しいサーバーまたはサービスにネットワークトラフィックを移行できます。DNS カットオーバーは、移行中のサービスの継続性を確保するために使用されます。

  • CNAME: CNAME レコード は、ドメイン名を別のドメイン名にマッピングする DNS レコードの一種です。CNAME レコードが構成されると、DNS サーバーはエイリアスドメイン名の宛先ドメイン名 (CNAME) にリクエストをリダイレクトし、A レコードで構成された宛先ドメイン名の IP アドレスを返します。

  • Application Load Balancer (ALB): ALB は、アプリケーション層で実行され、HTTP、HTTPS、および Quick UDP Internet Connections (QUIC) 経由のトラフィックの負荷分散に最適化された Alibaba Cloud サービスです。ALB は非常に柔軟性が高く、必要に応じて大量のレイヤー 7 トラフィックを処理できます。ALB は複雑なルーティングをサポートします。ALB は他のクラウドネイティブサービスと深く統合されており、Alibaba Cloud のクラウドネイティブイングレスゲートウェイとして機能するように設計されています。

  • Network Load Balancer (NLB): NLB は、Internet of Everything (IoE) 時代向けのレイヤー 4 ロードバランシングサービスです。NLB は超高性能を提供し、必要に応じて自動的にスケーリングできます。NLB インスタンスは最大 1 億の同時接続をサポートしており、高い同時実行性を必要とするサービスに最適です。

  • Classic Load Balancer (CLB): CLB は、転送ルールに基づいて、受信ネットワークトラフィックを複数のバックエンドサーバーに分散します。CLB は、アプリケーションのパフォーマンスと可用性を向上させるのに役立ちます。

  • Network Intelligence Service (NIS): NIS は、ネットワーク計画からネットワーク運用保守まで、クラウドネットワークのライフサイクル全体を管理するための一連の AIOps ツールを提供します。たとえば、NIS を使用して、トラフィック分析、ネットワーク検査、ネットワークパフォーマンス監視、ネットワーク診断、パス解析、およびトポロジー作成を実行できます。NIS は、ネットワークアーキテクチャの最適化、ネットワーク運用保守効率の向上、ネットワーク運用コストの削減に役立ちます。

  • CloudMonitor: CloudMonitor は、リソースとインターネットアプリケーションを監視するサービスです。

  • インターネット共有帯域幅: インターネット共有帯域幅 は、リージョン内での帯域幅の共有と多重化をサポートします。リージョンにインターネット共有帯域幅インスタンスを作成した後、そのリージョンにあるエラスティック IP アドレス (EIP) をインターネット共有帯域幅インスタンスに追加できます。EIP は、インターネット共有帯域幅インスタンスを共有できます。これにより、インターネット帯域幅のコストが削減されます。

設計原則

高速で信頼性が高く安全なアプリケーションリリースを確実にするために、アプリケーション配信ネットワークを設計する際には、次の原則を考慮することをお勧めします。

  • パフォーマンス: アプリケーション配信ネットワークのパフォーマンスが、ピーク時のスループット、新規接続数、同時接続数、およびクエリ/秒 (QPS) に耐えられることを確認します。

  • スケーラビリティ: アプリケーション配信ネットワークがビジネスボリュームに基づいて自動的にスケールインまたはスケールアウトできることを確認し、適切な料金モデルを設計します。

  • 安定性: アプリケーション配信ネットワークに堅牢なアーキテクチャと強力なディザスタリカバリメカニズムが備わっており、安定したアプリケーションリリースが保証されていることを確認します。

  • セキュリティ: アプリケーション配信ネットワークが、アプリケーション層、伝送層、およびネットワーク層での保護をサポートしていることを確認します。

  • 可観測性: アプリケーション配信ネットワークが、ネットワークをリアルタイムで監視し、分析とトラブルシューティングを実行するのに役立つ、完全な次元メトリックとロギングをサポートしていることを確認します。

上記の設計原則と、アプリケーションシステムとビジネスシナリオで必要な SLB のパフォーマンスと機能を組み合わせて、適切なサービスとデプロイメントソリューションを選択することをお勧めします。

主要な設計

SLB サービスを選択する

SLB サービスを選択する際は、パフォーマンス (容量と機能)、安定性、スケーラビリティ、およびセキュリティという主要な機能に焦点を当てます。

前提条件

アプリケーションシステムに必要なロードバランサーの種類 (レイヤー 4 ロードバランサーまたはレイヤー 7 ロードバランサーなど) を決定します。

比較項目

ALB

NLB

CLB

サービスポジショニング

  • 超高レイヤー 7 処理能力と高度なルーティング機能

  • アプリケーション層の HTTP、HTTPS、QUIC などのプロトコル向け

  • アプリケーション指向

  • 超高レイヤー 4 処理能力と大規模 SSL オフロード機能

  • TCP、UDP、および TCP over SSL 向け

  • ネットワーク指向

  • 堅牢なレイヤー 4 およびレイヤー 7 処理能力

  • TCP、UDP、HTTP、および HTTPS プロトコル向け

  • アプリケーションシステムでレイヤー 4 での負荷分散が必要な場合は、NLB または CLB を選択します。

  • アプリケーションシステムでレイヤー 7 での負荷分散が必要な場合は、ALB または CLB を選択します。

主要なパフォーマンスメトリック

アプリケーションシステムに必要なパフォーマンスメトリックを決定し、適切な SLB サービスを選択します。

比較項目

ALB

NLB

CLB

アーキテクチャとパフォーマンス

  • ネットワーク機能仮想化 (NFV) プラットフォーム上に開発され、自動スケーリングをサポート

  • インスタンスあたり最大 100 万 QPS

  • 物理マシンではなく NFV プラットフォーム上に開発され、高速で自動的なスケーリングをサポート

  • インスタンスあたり最大 1 億の同時接続

  • 物理マシンのアーキテクチャ上に開発

  • インスタンスあたり最大 100 万の同時接続と 50,000 QPS

転送機能

  • 複数のレイヤー 7 機能とコンテンツベースのルーティングを提供

  • HTTP の書き換え、リダイレクト、上書き、およびスロットリングをサポート

  • 高度なレイヤー 4 機能と TCP トラフィックの SSL オフロードを提供

  • トラフィック急増時のスロットリング、接続ドレイン、ポート範囲によるリスニングなどの機能をサポート

  • 基本的なレイヤー 4 およびレイヤー 7 の負荷分散機能を提供

  • ドメイン名ベースおよび URL ベースの転送のみをサポート

バックエンドサーバータイプ

  • Elastic Compute Service (ECS) インスタンス

  • エラスティックネットワークインターフェース (ENI)

  • エラスティックコンテナインスタンス

  • IP アドレス

  • Function Compute

  • ECS インスタンス

  • ENI

  • エラスティックコンテナインスタンス

  • IP アドレス

  • ECS インスタンス

  • ENI

  • エラスティックコンテナインスタンス

運用保守機能

  • 自動スケーリング

  • 手動設定なしでトラフィックボリュームに基づいて自動的にスケーリング

  • 自動スケーリング

  • 手動設定なしでトラフィックボリュームに基づいて自動的にスケーリング

  • 従量制インスタンスの仕様管理が必要

  • トラフィック急増の推定が必要

クラウドネイティブ統合

  • クラウドネイティブゲートウェイとして機能

  • トラフィック分割、ミラーリング、カナリアリリース、およびブルーグリーンデプロイメントをサポート

Container Service for Kubernetes (ACK) および ACK Serverless ( 1.24 以降のバージョン) との統合をサポート

Container Service for Kubernetes (ACK) や Serverless Kubernetes (ASK) などのコンテナサービスと組み合わせて使用する必要がある

一般的なシナリオ

  • レイヤー 7 のインターネットアプリケーション向けに高パフォーマンスの自動スケーリングを提供

  • 高トラフィックシナリオでオーディオおよびビデオアプリケーションのネットワーク遅延を低く維持

  • クラウドネイティブアプリケーションのカナリアリリースとブルーグリーンデプロイメントをサポート

  • 高同時実行シナリオでのレイヤー 4 トラフィックの急増に耐える

  • Internet of Vehicles (IoV) などの IoT サービスのイングレスとして機能

  • クロスゾーンディザスタリカバリをサポートし、オンプレミスとクラウドサービスの両方でイングレスとエグレスとして機能

  • CLB がレイヤー 4 で Web サイトとシステムにリクエストを分散する際の高い信頼性を確保

  • 高同時実行性をサポートし、トラフィック分散シナリオで高パフォーマンスを確保

  • ゾーンディザスタリカバリとリージョン間ディザスタリカバリをサポート

  • 容量

    • アプリケーションシステムでレイヤー 4 の負荷分散、高いスケーラビリティ、および多数の新規接続または同時接続が必要な場合は、NLB を選択することをお勧めします。

    • アプリケーションシステムでレイヤー 7 の負荷分散、高いスケーラビリティ、および多数の QPS が必要な場合は、ALB を選択することをお勧めします。

    • アプリケーションシステムでレイヤー 4 またはレイヤー 7 での適度な負荷分散パフォーマンスが必要な場合は、CLB を選択することをお勧めします。

  • サポートされている機能

    • アプリケーションシステムでレイヤー 4 での TCP トラフィックの SSL オフロード、トラフィック急増時のスロットリング、およびクラウドネイティブサポートに対する高い要件がある場合は、NLB を選択することをお勧めします。

    • アプリケーションシステムでレイヤー 7 でのルーティングとクラウドネイティブイングレスゲートウェイに対する高い要件がある場合は、ALB を選択することをお勧めします。

    • アプリケーションシステムでレイヤー 4 またはレイヤー 7 の機能に対する適度な要件がある場合は、CLB を選択することをお勧めします。

主要な安定性メトリック

ALB、NLB、および CLB は、異なるディザスタリカバリアーキテクチャとメカニズムを使用します。SLB サービスを選択する前に、アプリケーションシステムに必要なディザスタリカバリ機能を決定することをお勧めします。

  • 複数のアクティブゾーン

    ALB と NLB は マルチゾーンデプロイメントをサポートしています。アプリケーションシステムのリージョンが 2 つ以上のゾーンをサポートしている場合は、サービスの高可用性を確保するために少なくとも 2 つのゾーンを選択することをお勧めします。 ALB と NLB は、ドメイン名を使用してサービスを提供します。 エイリアスドメイン名は、CNAME レコードに基づいて NLB または ALB ドメイン名にマッピングされます。 ビジネストラフィックは、選択したゾーンの ALB または NLB インスタンスの VIP にスケジュールされます。 ゾーンに障害が発生した場合、そのゾーンで DNS カットオーバーがトリガーされ、トラフィックが別のゾーンに移行されてディザスタリカバリが実装されます。 このメカニズムにより、いずれかのゾーンに障害が発生した場合、トラフィックが正常なゾーンに自動的に切り替えられます。ディザスタリカバリにより、サービスの継続性と高可用性が確保されます。

  • プライマリ/セカンダリゾーン

    CLB デュアルゾーンデプロイメントは、ほとんどのリージョンでサポートされています。このような CLB インスタンスは、2 つのゾーンにデプロイされます。デフォルトでは、プライマリゾーンが有効になっています。プライマリゾーンに障害が発生した場合、CLB は 30 秒以内にセカンダリゾーンに切り替えてサービスを復元できます。プライマリゾーンが回復すると、CLB は自動的にプライマリゾーンに切り替わります。

    説明

    CLB のゾーンディザスタリカバリは、プライマリゾーンとセカンダリゾーンの間で実装されます。CLB は、プライマリゾーンの停電や接続障害などの要因により、プライマリゾーン内の CLB クラスタ全体が完全に使用できなくなった場合にのみ、セカンダリゾーンに切り替わります。プライマリゾーン内の単一のインスタンスにのみ障害が発生した場合、スイッチオーバーはトリガーされません。

結論として、NLB と ALB は複数のゾーンにデプロイされ、2 つのゾーンにデプロイされる CLB よりも高いディザスタリカバリ機能をサポートします。単一の SLB インスタンスを少なくとも 2 つのゾーンにデプロイして、システムの高可用性とディザスタリカバリ機能を向上させることができます。さらに、高速なスイッチオーバーがサポートされています。障害のあるゾーンの DNS レコードを削除して、障害に迅速に対応し、問題を処理できます。アプリケーションシステムに必要なパフォーマンスと安定性に基づいて SLB サービスを選択することをお勧めします。アプリケーションシステムに高可用性に対する高い要件がある場合は、NLB と ALB はマルチゾーンデプロイメントをサポートしているため、より適しています。

主要なスケーラビリティメトリック

スケーラビリティの最も直接的なメリットは、ピーク時の迅速なスケールアウトです。消費されたリソースの実際の量に対して課金されるため、リソースの浪費による高コストを防ぎます。提案:

  • ALB と NLB は、高容量と高パフォーマンスをサポートしています。アプリケーションシステムに ALB または NLB を選択する場合は、LCU 課金 測定方法を使用して、実際に使用したリソースに対して支払うことをお勧めします。

  • CLB は、従量制と LCU 課金測定方法をサポートしています。アプリケーションシステムに CLB を選択する場合は、LCU 課金 測定方法を使用して、実際に使用したリソースに対して支払うことをお勧めします。

主要なセキュリティメトリック

ALB、NLB、および CLB は、異なる機能をサポートしています。SLB サービスを選択する前に、アプリケーションシステムのセキュリティ要件を決定することをお勧めします。

  • レイヤー 7 負荷分散: Web 攻撃からの保護

    Web 攻撃からアプリケーションシステムを保護するために、ALB を選択することをお勧めします。WAF 対応 ALB インスタンスは、サービスレベルで Web Application Firewall (WAF) 3.0 と統合されています。

    WAF 3.0 は SDK モジュールを介して ALB と統合されており、SDK を使用して検出と保護のためのトラフィックを抽出します。この統合方法には、次の利点があります。

    • 転送: WAF はトラフィックを転送しません。これは、追加の転送レイヤーが原因で非互換性または不安定性の問題が発生した場合、またはネットワーク遅延が増加した場合に備えています。

    • デプロイメント: DNS 設定、証明書、ポート、または原点復帰アルゴリズムを変更する必要はありません。WAF と統合するプロセスは簡単です。

  • レイヤー 4 負荷分散: 伝送層での暗号化

    アプリケーションシステムでレイヤー 4 の負荷分散と TCP over SSL トラフィックの暗号化が必要な場合は、NLB を選択することをお勧めします。

    NLB は、TCP トラフィックで SSL オフロードを実行できる TCP/SSL リスナーをサポートしています。暗号化されたトラフィックはプレーンテキストに復号化され、バックエンドサーバーに転送されます。これにより、バックエンドサーバーの構成が簡素化され、ワークロードが削減され、作業効率が向上します。

SLB サービスをデプロイする

SLB サービスを選択した後、SLB サービスをデプロイする際には、パフォーマンス、安定性、およびセキュリティに焦点を当てる必要があります。

主要なパフォーマンスメトリック

  • インスタンス容量

    ALB と NLB インスタンスは、高パフォーマンスとスケーラビリティをサポートしています。アプリケーションシステムが、プロモーション活動などの予期されるトラフィックの急増に耐える必要がある場合は、事前にアカウントマネージャーに連絡して、インスタンスのパフォーマンスとスケーラビリティがトラフィックの急増に耐えられるかどうかを評価することをお勧めします。

    従量制 または LCU 課金 測定方法のどちらを使用する場合でも、CLB インスタンスは S3.large インスタンスタイプと同じ仕様をサポートしており、最大 1,000,000 接続、100,000 新規接続、および 50,000 QPS をサポートしています。アプリケーションシステムのトラフィックパターンとビジネス規模に基づいて、測定方法、インスタンスタイプ、およびインスタンス数を選択することをお勧めします。

  • インターネット帯域幅

    インターネット向け ALB および NLB インスタンスは、EIP を使用してインターネットサービスを提供します。

    • アプリケーションシステムのトラフィックパターンが比較的安定している場合は、帯域幅課金インターネット共有帯域幅インスタンスを使用し、最大帯域幅値を指定することをお勧めします。

    • アプリケーションシステムでトラフィックの変動が大きい場合は、トラフィック課金インターネット共有帯域幅インスタンスを使用し、最大帯域幅値を指定することをお勧めします。トラフィック課金測定方法では、課金サイクル内の主要方向のデータ転送のみが課金されます。

    説明

    トラフィック課金 EIP の最大帯域幅は 200 Mbit/s です。アプリケーションシステムに十分な帯域幅リソースを確保するために、SLB インスタンスをインターネット共有帯域幅インスタンスに追加することをお勧めします。

    CLB を使用する場合は、EIP を内部向け CLB インスタンスに関連付けるか、インターネット向け CLB インスタンスを使用できます。ただし、複数の SLB インスタンスの帯域幅多重化を有効にし、各 SLB インスタンスの排他的 IP アドレスを保持する場合は、内部向け CLB インスタンスを作成して EIP に関連付けることをお勧めします。次に、CLB インスタンスをインターネット共有帯域幅インスタンスに追加します。

主要な安定性メトリック

  • インスタンスゾーン

    • ALB を使用する場合は、少なくとも 2 つのゾーンを選択し、ALB インスタンスと同じゾーンにバックエンドサーバーをデプロイします。ただし、ALB はクロスゾーン転送の無効化をサポートしていません。ALB インスタンスの VIP がクライアントリクエストを受信した後、ALB インスタンスは、VIP のゾーンではなく、すべてのゾーンのバックエンドサーバーにリクエストを転送します。

    • NLB を使用する場合は、少なくとも 2 つのゾーンを選択し、NLB インスタンスと同じゾーンにバックエンドサーバーをデプロイします。NLB インスタンスのクロスゾーン転送を無効にすることができます。NLB インスタンスの VIP がクライアントリクエストを受信した後、NLB インスタンスは、NLB インスタンスのゾーンのバックエンドサーバーにリクエストを転送します。

    • CLB を使用する場合は、クロスゾーン転送を防ぐために、CLB インスタンスとバックエンドサーバーを同じプライマリゾーンにデプロイします。

  • バックエンドサーバーのヘルスチェック

    バックエンドサーバーの可用性を監視するために、SLB インスタンスのヘルスチェックを有効にすることをお勧めします。バックエンドサーバーが異常と宣言されると、SLB はバックエンドサーバーへのリクエストの転送を停止し、後続のリクエストを正常なバックエンドサーバーに分散します。異常なバックエンドサーバーが回復すると、ALB はリクエストをバックエンドサーバーに分散します。ヘルスチェック機能は、異常なバックエンドサーバーによって引き起こされる単一障害点 (SPOF) を防ぎ、サービスの可用性を向上させます。ALB、NLB、および CLB は、TCP および HTTP ヘルスチェックをサポートしています。

  • リスナーのトラフィック調整

    バックエンドサーバーの容量を超える予期しないトラフィックの急増によって引き起こされる雪崩効果を防ぐために、SLB リスナーのトラフィック調整を有効にすることをお勧めします。トラフィックの急増が発生した場合、トラフィック調整では、バックエンドサーバーの容量を超えないリクエストのみが許可されます。

    • ALB QPS 調整

      ALB リスナーの合計 QPS またはクライアントごとの QPS を調整できます。クライアントごとの QPS 調整は、送信元クライアント IP アドレスに基づいてクエリを制限します。 両方の調整方法または一方の調整方法を有効にすることができます。

    • NLB の新規接続数/秒 (CPS) 調整

      NLB リスナーの各ゾーン (VIP) の最大 CPS 数を調整できます。

主要なセキュリティメトリック

  • ホワイトリストまたはブラックリストに基づくアクセス制御

    ALB と NLB は、セキュリティグループに追加できます。ALB または NLB インスタンスをセキュリティグループに追加することで、ALB または NLB インスタンスのアクセス制御を有効にすることができます。詳細については、「ALB インスタンスをセキュリティグループに追加する」および「NLB インスタンスをセキュリティグループに追加する」をご参照ください。

    CLB は、リスナーの アクセス制御リスト (ACL) をサポートしています。ACL は、ホワイトリストまたはブラックリストとして機能できます。異なるリスナーにホワイトリストまたはブラックリストを構成できます。

    • ホワイトリスト: ACL 内の IP アドレスまたは CIDR ブロックからのリクエストのみが転送されます。ホワイトリストは、特定の IP アドレスからのリクエストのみを許可する場合に適用されます。

    • ブラックリスト: ブラックリストに記載されている IP アドレスまたは CIDR ブロックからのすべてのリクエストが拒否されます。ブラックリストは、特定の IP アドレスからのアクセスをブロックする場合に適用されます。

  • カスタム TLS セキュリティポリシー

    • レイヤー 7 負荷分散の場合、ALB はいくつかの一般的に使用される TLS セキュリティポリシー を提供して、HTTPS を使用するサービスのセキュリティを強化します。ALB では、カスタム TLS セキュリティポリシーを構成することもできます。たとえば、使用したい TLS バージョンを指定したり、特定の TLS 暗号スイートを無効にしたりできます。

    • TCP トラフィックの SSL オフロードが必要なレイヤー 4 負荷分散シナリオの場合、NLB はいくつかの一般的に使用される TLS セキュリティポリシー を提供して、サービスのセキュリティを強化します。システム TLS セキュリティポリシーを選択するか、カスタム TLS セキュリティポリシーを構成して、アプリケーションシステムを保護できます。

    説明

    CLB は、カスタム TLS セキュリティポリシーをサポートしていません。

  • 相互認証

    HTTPS シナリオでは、標準および WAF 対応 ALB インスタンス、NLB インスタンス、および CLB インスタンスは相互認証をサポートしており、アプリケーションシステムがセキュリティコンプライアンス要件を満たすのに役立ちます。TCP トラフィックシナリオの SSL オフロードでは、NLB は相互認証をサポートして通信セキュリティを向上させます。詳細については、「HTTPS リスナーで相互認証を構成する」、「NLB を使用して TCP over SSL オフロードを有効にする (相互認証)」、および「HTTPS リスナーで相互認証を構成する」をご参照ください。

SLB サービスを使用する

SLB サービスを使用する際は、主要な可観測性メトリックに注意してください。

主要な可観測性メトリック

  • 監視

    アプリケーションシステムでリクエストタイムアウトやトラフィック調整などのネットワーク接続の問題が発生した場合、または SLB インスタンスのワークロードについて知る必要がある場合は、SLB インスタンスの監視メトリックを表示できます。詳細については、「NLB 監視メトリック」、「ALB 監視メトリック」、および「CLB 監視メトリック」をご参照ください。

  • ロギング

    SLB は、操作ログとアクセスログをサポートしています。詳細については、「ALB ログ」、「NLB ログ」、「アクセスログ」、および「操作ログを表示する」をご参照ください。

    • 操作ログには、SLB インスタンスで実行された操作が記録されます。

    • アクセスログには、レイヤー 7 SLB インスタンスに送信されたリクエストに関する詳細情報 (リクエスト時間、クライアント IP アドレス、遅延、リクエストパス、サーバー応答時間など) が記録されます。アクセスログを分析して、クライアントの動作と地理的分布を把握し、トラブルシューティングを実行できます。

  • NIS

    NLB、ALB、および CLB の監視とロギング機能に加えて、NIS を有効にして、アプリケーション配信ネットワークの可観測性を向上させることをお勧めします。

ベストプラクティス

前のセクションで説明したように、ALB と NLB は、より高いパフォーマンス、安定性、スケーラビリティ、セキュリティ、および可観測性をサポートしています。CLB、ALB、および NLB の中で、ALB または NLB を使用してアプリケーション配信ネットワークを構築することをお勧めします。次のベストプラクティスでは、4 つの異なるシナリオでアプリケーション配信ネットワークを構築するためのいくつかのソリューションについて説明します。

リージョン内アプリケーション配信ネットワーク

リージョン内アプリケーション配信ネットワークでは、SLB インスタンスとバックエンドサーバーは同じリージョンにあります。

レイヤー 4 SLB

主要な設計:

  • 安定性

    • NLB インスタンスに少なくとも 2 つのゾーンを選択し、NLB インスタンスとバックエンドサーバーを同じゾーンにデプロイします。

    • NLB インスタンスのクロスゾーン転送を無効にすることができます。

    • ビジネス要件に基づいて、新規接続の調整を有効にする必要があるかどうかを決定します。新規接続の調整により、予期しないトラフィックの急増によって引き起こされる雪崩効果を防ぐことができます。

    • バックエンドサーバーのヘルスチェックを有効にすることをお勧めします。

  • パフォーマンス

    インターネット向け NLB インスタンスをインターネット共有帯域幅インスタンスに関連付け、トラフィックパターンに基づいてトラフィック課金と帯域幅課金の適切な測定方法を選択することをお勧めします。

  • セキュリティ

    アプリケーションシステムのセキュリティ要件に基づいて、NLB インスタンスをセキュリティグループに追加する必要があるかどうかを決定します。TCP/SSL リスナーを使用する場合は、カスタム TLS セキュリティポリシーを使用する必要があるかどうか、および相互認証を有効にする必要があるかどうかを決定します。

レイヤー 7 SLB

主要な設計:

  • 安定性

    • ALB インスタンスに少なくとも 2 つのゾーンを選択し、ALB インスタンスとバックエンドサーバーを同じゾーンにデプロイします。

    • 予期しないトラフィックの急増によって引き起こされる雪崩効果を防ぐために、QPS 調整を有効にする必要があるかどうかを決定します。

    • バックエンドサーバーのヘルスチェックを有効にすることをお勧めします。

  • パフォーマンス

    インターネット向け ALB インスタンスをインターネット共有帯域幅インスタンスに関連付け、トラフィックパターンに基づいてトラフィック課金と帯域幅課金の適切な測定方法を選択することをお勧めします。

  • セキュリティ

    アプリケーションシステムのセキュリティ要件に基づいて、NLB インスタンスをセキュリティグループに追加する必要があるかどうか、カスタム TLS セキュリティポリシーを構成する必要があるかどうか、および相互認証を有効にする必要があるかどうかを決定します。

リージョン間アプリケーション配信ネットワーク

リージョン間アプリケーション配信ネットワークでは、SLB インスタンスとバックエンドサーバーは異なるリージョンにあります。

次の図に示すように、リージョン間アプリケーション配信ネットワークは、NLB または ALB に基づいて構築されます。アプリケーション配信ネットワークは、近くのアクセスとリージョン間ディザスタリカバリをサポートしています。リージョン間アプリケーション配信ネットワークのデプロイ方法の詳細については、「VPC 内の ECS インスタンスを別のリージョンの ALB のバックエンドサーバーとして指定する」および「VPC 内のバックエンドサーバーをリージョン間の NLB に追加する」をご参照ください。

IPv6 アプリケーション配信ネットワーク

SLB サービスを選択する

SLB を使用して IPv6 アプリケーション配信ネットワークを構築する場合は、シナリオ (IPv6 経由のエンドツーエンド通信や IPv6 から IPv4 への変換など) に基づいて SLB サービスを選択することをお勧めします。

  • シナリオ 1: IPv6 経由のエンドツーエンド通信

    NLB と ALB は、IPv6 バックエンドサーバーをサポートしています。IPv6 リクエストは IPv6 経由でバックエンドサーバーに転送され、エンドツーエンドの IPv6 通信が可能になります。CLB は、IPv6 バックエンドサーバーをサポートしていません。

  • シナリオ 2: IPv6 から IPv4 への変換

    NLB、ALB、および CLB は、IPv6 から IPv4 への変換をサポートしています。IPv6 リクエストは IPv4 経由でバックエンドサーバーに転送されます。このようにして、アプリケーションシステムは IPv6 リクエストからのアクセスをサポートします。

NLB と ALB は、IPv6 経由のエンドツーエンド通信と IPv6 から IPv4 への変換の両方をサポートしているため、NLB または ALB を選択して IPv6 アプリケーション配信ネットワークを構築することをお勧めします。

さらに、NLB と ALB は、IPv4 アドレスと IPv6 アドレスの両方をサポートするデュアルスタックインスタンスを提供します。このようなデュアルスタック NLB または ALB インスタンスを使用して、IPv4 と IPv6 の両方をサポートするアプリケーション配信ネットワークを構築できます。CLB は、デュアルスタックインスタンスをサポートしていません。アプリケーション配信ネットワークで IPv4 と IPv6 の両方をサポートする場合は、IPv4 インスタンスと IPv6 インスタンスを作成する必要があります。アプリケーション配信ネットワークのアーキテクチャを簡素化できる NLB または ALB を選択することをお勧めします。

SLB サービスをデプロイする

IPv6 アプリケーション配信ネットワークをデプロイする際は、安定性、セキュリティ、スケーラビリティ、可観測性、およびセルフサービス機能に焦点を当てることをお勧めします。

  • IPv6 経由のエンドツーエンド通信

    手順 1: NLB または ALB インスタンスの VPC で IPv6 を有効にします。

    手順 2: デュアルスタック NLB または ALB インスタンスを作成します。

    手順 3: NLB または ALB インスタンスの IPv6 アドレスにインターネットアクセスを許可する場合は、NLB または ALB インスタンスがデプロイされている VPC の IPv6 ゲートウェイで IPv6 アドレスのインターネット帯域幅を有効にします。

    手順 4: NLB または ALB インスタンスのサーバーグループを作成し、IPv6 を有効にします。

  • IPv6 から IPv4 への変換

    • NLB または ALB インスタンスをデプロイする

      手順 1: NLB または ALB インスタンスの VPC で IPv6 を有効にします。

      手順 2: デュアルスタック NLB または ALB インスタンスを作成します。

      手順 3: NLB または ALB インスタンスの IPv6 アドレスにインターネットアクセスを許可する場合は、NLB または ALB インスタンスがデプロイされている VPC の IPv6 ゲートウェイで IPv6 アドレスのインターネット帯域幅を有効にします。

      手順 4: NLB または ALB インスタンスのサーバーグループを作成します。IPv6 を有効にする必要はありません。

    • CLB インスタンスをデプロイする

      IPv6 CLB インスタンスを作成します。インターネット向け CLB インスタンスのみが IPv6 をサポートしています。CLB インスタンスの構成を完了します。