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

Server Load Balancer:ALB イングレス 運用ガイド

最終更新日:Jun 02, 2026

Container Service for Kubernetes (ACK) と ACK Serverless に加えて、ALB イングレスは Enterprise Distributed Application Service (EDAS)、Serverless App Engine (SAE)、セルフマネージド Kubernetes クラスターと連携し、多様なビジネス要件に対応します。このトピックでは、ALB イングレスの基本機能と高度な機能、および他の Alibaba Cloud サービスと組み合わせて使用する方法について説明します。

基本的な機能

AlbConfig は、Application Load Balancer (ALB) インスタンスとリスナーを構成するために ALB Ingress コントローラーが提供するカスタムリソース定義 (CRD) です。次の表では、ACK および ACK Serverless クラスターにおいて、ALB Ingress コントローラーのインストールとアンインストール、AlbConfig の作成と変更、および Simple Log Service の有効化を行う方法を説明します。

オブジェクト

機能

説明

ACK ドキュメント

ACK Serverless ドキュメント

ALB Ingress コントローラー

ALB Ingress コントローラーコンポーネントの管理

ACK は、ALB に基づくマネージド型の ALB Ingress コントローラーを提供します。

ALB Ingress コントローラーは、クラスター作成時または [アドオン] ページでインストールできます。

ALB Ingress コントローラーコンポーネントの管理

ALB Ingress コントローラーコンポーネントの管理

インスタンス管理

AlbConfig の作成

AlbConfig は、ALB インスタンスとそのリスナーを構成するために、ALB Ingress コントローラーが提供するカスタムリソース定義 (CRD) です。

各 AlbConfig は 1 つの ALB インスタンスに対応するため、複数の ALB インスタンスを使用するには、複数の AlbConfig を作成する必要があります。

AlbConfig の作成

AlbConfig の作成

Ingress の関連付け

AlbConfig は、標準の Kubernetes IngressClass リソースを使用して Ingress に関連付けられます。まず IngressClass を作成し、その後 AlbConfig に関連付ける必要があります。

IngressClass の作成と AlbConfig への関連付け

IngressClass を使用した AlbConfig と Ingress の関連付け

AlbConfig の変更

名前や vSwitch 設定などの AlbConfig プロパティを変更できます。

変更内容は保存後すぐに有効になります。

Simple Log Service によるアクセスログの有効化

ALB Ingress にアクセスログを収集させるには、AlbConfig で logProjectlogStore を指定する必要があります。

説明
  • Simple Log Service プロジェクトは手動で作成する必要があります。詳細については、「プロジェクトの管理」をご参照ください。

  • ログストア名は alb_ で始まる必要があります。指定されたログストアが存在しない場合、システムが自動的に作成します。

Simple Log Service によるアクセスログの有効化

Simple Log Service によるアクセスログの有効化

既存の ALB インスタンスの再利用

既存の ALB インスタンスを再利用するには、AlbConfig の作成時にそのインスタンス ID を指定します。

既存の ALB インスタンスの再利用

既存の ALB インスタンスの再利用

複数の ALB インスタンスの使用

複数の ALB インスタンスを使用する必要がある場合は、spec.ingressClassName を使用して Ingress で異なる IngressClass を指定できます。

複数の ALB インスタンスの作成と使用

複数の ALB インスタンスの作成と使用

ALB インスタンスの削除

各 ALB インスタンスは 1 つの AlbConfig に対応します。ALB インスタンスを削除するには、関連付けられた AlbConfig を削除します。AlbConfig を削除する前に、それに関連付けられているすべての Ingress を先に削除する必要があります。

AlbConfig の削除

AlbConfig の削除

リスナー管理

HTTPS 証明書の指定

AlbConfig を使用して Application Load Balancer (ALB) 証明書を指定できます。listeners を構成して、HTTPS の証明書 ID を指定します。

HTTPS 証明書の構成による暗号化通信の有効化

HTTPS 証明書の構成による暗号化通信の有効化

TLS セキュリティポリシーのサポート

AlbConfig で HTTPS リスナーを構成する際に、カスタムまたはシステムデフォルトの TLS セキュリティポリシーを指定できます。詳細については、「TLS セキュリティポリシー」をご参照ください。

TLS セキュリティポリシーの指定

TLS セキュリティポリシーの指定

高度な機能

ACK クラスターでは、ALB Ingress がクラスター内の Service への外部アクセスを管理し、レイヤー 7 の負荷分散機能を提供します。次の表では、ALB Ingress を使用して、異なるドメイン名または URL パスからのリクエストを異なるバックエンドサーバーグループに転送する方法、HTTP リクエストを HTTPS にリダイレクトする方法、およびカナリアリリースを実装する方法を説明します。

機能

説明

ACK ドキュメント

ACK Serverless ドキュメント

ドメイン名に基づくリクエスト転送

シンプルな Ingress を作成して、指定したドメイン名または空のドメイン名に基づいてリクエストを転送します。

ドメイン名に基づくリクエスト転送

ドメイン名に基づくリクエスト転送

URL パスに基づくリクエスト転送

ALB イングレスは、URL パスに基づくリクエストの転送をサポートしています。pathType フィールドで URL マッチングポリシーを指定できます。pathType は、次の 3 つのマッチモードをサポートしています。

URL パスに基づくリクエスト転送

URL パスに基づくリクエスト転送

カスタム転送ルール

ALB Ingress は、一致条件とアクションで構成されるカスタム転送ルールをサポートします。ALB Ingress を使用すると、次のことが可能です。

  • alb.ingress.kubernetes.io/conditions.<service-name> アノテーションで、リクエストのドメイン名、パス、リクエストヘッダー、クエリ文字列、リクエストメソッド、Cookie、送信元 IP などの条件に基づいて、カスタムの一致条件を定義できます。

  • alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用して、固定レスポンス、リダイレクト、リクエストヘッダーの挿入、トラフィックミラーリング、複数のバックエンドサーバーグループへの転送、リライトなどのカスタム転送アクションを設定できます。

  • ACK コンソールで、ドメイン名、パス、HTTP ヘッダーなどのカスタム一致条件を定義できます。

  • ACK コンソールで、リクエストの転送や固定レスポンスの返却などのカスタムアクションを定義できます。

重要
  • 転送ルールで指定できる一致条件は最大 10 個です。

  • ResponseHeader および ResponseStatusCode の一致条件は、カスタムレスポンス転送ルールでのみ有効です。

ALB Ingress の転送ルールのカスタマイズ

ALB Ingress の転送ルールのカスタマイズ

ヘルスチェックの設定

アノテーションを使用してヘルスチェックを設定し、サービスの可用性を確保できます。

ヘルスチェックの設定

ヘルスチェックの設定

証明書の自動検出の設定

最初にCertificate Management Service コンソールで証明書を作成する必要があります。その後、ALB Ingress コントローラーが証明書を自動的に検出し、Ingress の TLS 設定で指定されたドメイン名に一致する証明書を自動的に関連付けます。

HTTPS 証明書を設定して暗号化通信を有効にする

HTTPS 証明書を設定して暗号化通信を有効にする

HTTP から HTTPS へのリダイレクト

ALB イングレスを使用して HTTP リクエストを HTTPS ポート 443 にリダイレクトするには、次のアノテーションを使用します。

HTTP から HTTPS へのリダイレクト

HTTP から HTTPS へのリダイレクト

HTTPS および gRPC プロトコルのサポート

ALB はバックエンドプロトコルとして HTTPS と gRPC をサポートします。ALB Ingress では、アノテーションをalb.ingress.kubernetes.io/backend-protocol: "grpc" またはalb.ingress.kubernetes.io/backend-protocol: "https" に設定して構成できます。Ingress を使用してリクエストを gRPC Service に転送するには、該当するドメイン名に SSL 証明書が設定され、通信には TLS プロトコルを使用する必要があります。

説明

バックエンドプロトコルは変更できません。プロトコルを変更する必要がある場合は、Ingress を削除して再作成してください。

バックエンド HTTPS および gRPC プロトコルのサポート

バックエンド HTTPS および gRPC プロトコルのサポート

リライトのサポート

alb.ingress.kubernetes.io/rewrite-target: /path/${2} アノテーションを設定して、リライトを構成できます。

説明
  • rewrite-target アノテーションでは、path を Prefix タイプに設定したうえで、${number} 形式のキャプチャグループ変数を構成する必要があります。

  • path パラメーターは、デフォルトでは *? などの正規表現記号をサポートしていません。それらを使用するには、rewrite-target アノテーションを設定する必要があります。

  • path/ で始まる必要があります。

リライトの設定

リライトの設定

カスタムリスナーポートの設定

ALB Ingress はカスタムリスナーポートをサポートします。これにより、ポート 80 とポート 443 の両方で同時にサービスを公開できます。

カスタムリスナーポートの設定

カスタムリスナーポートの設定

転送ルール優先度の設定

アノテーションを使用して、ALB Ingress の転送ルールの優先度を定義できます。

説明

ルールの優先度は、同一リスナー内で一意である必要があります。alb.ingress.kubernetes.io/order アノテーションは、Ingress 間の優先順位を指定します。値の範囲は 1〜1000 で、値が小さいほど優先度が高くなります。

転送ルール優先度の設定

転送ルール優先度の設定

アノテーションによるカナリアリリースの実装

ALB Ingress は高度なルーティング機能を提供し、Header、Cookie、および重みに基づくカナリアリリースをサポートします。アノテーションを使用してカナリアリリースを実装できます。この機能を有効にするには、alb.ingress.kubernetes.io/canary: "true" アノテーションを設定します。さまざまな種類のカナリアリリースを実装するために、異なるアノテーションを使用できます。

アノテーションによるセッション維持の実装

ALB Ingress は、alb.ingress.kubernetes.io/sticky-session および alb.ingress.kubernetes.io/sticky-session-type アノテーションを使用したセッション維持をサポートします。

アノテーションによるセッション維持の実装

アノテーションによるセッション維持の実装

サーバーグループの負荷分散アルゴリズムの指定

ALB Ingress では、Ingress アノテーション alb.ingress.kubernetes.io/backend-scheduler を設定して、サーバーグループの負荷分散アルゴリズムを指定できます。

サーバーグループの負荷分散アルゴリズムの指定

サーバーグループの負荷分散アルゴリズムの指定

オリジン間リソース共有 (CORS) の設定

アノテーションを使用して、オリジン間リソース共有 (CORS) を設定できます。

CORS の設定

CORS の設定

バックエンド永続接続

ALB は、接続レイヤーでのリソース消費を抑え、処理性能を向上させるために、バックエンドの Keep-Alive 接続をサポートします。ALB Ingress では、alb.ingress.kubernetes.io/backend-keepalive アノテーションを使用して、この機能を有効にできます。

バックエンド永続接続

バックエンド永続接続

QPS スロットリングのサポート

ALB は転送ルールの QPS スロットリングをサポートします。QPS スロットリング値は 1〜100,000 の範囲で設定できます。ALB Ingress の場合は、alb.ingress.kubernetes.io/traffic-limit-qps アノテーションを設定するだけで使用できます。

QPS スロットリングのサポート

QPS スロットリングのサポート

スロースタート

ALB Ingress では、alb.ingress.kubernetes.io/slow-start-enabled アノテーションを使用してスロースタートを有効にし、alb.ingress.kubernetes.io/slow-start-duration アノテーションを使用してスロースタートの継続時間を設定できます。値の範囲は 30〜900 秒 (s) です。

説明

継続時間が長いほど、トラフィックの増加が遅くなります。

バックエンドのスロースタート

バックエンドのスロースタート

接続のドレイニング

ALB Ingress は接続のドレイニングをサポートします。alb.ingress.kubernetes.io/connection-drain-enabled アノテーションを使用して接続のドレイニングを有効にし、alb.ingress.kubernetes.io/connection-drain-timeout アノテーションを使用してタイムアウト期間を設定できます。タイムアウト期間は 0〜900 秒 (s) の範囲で設定できます。

接続のドレイニング

接続のドレイニング

Kubernetes Pod と ECS インスタンスをバックエンドサーバーとしてマウント

ALB Ingress は、alb.ingress.kubernetes.io/actions.<service-name> アノテーションを使用したバックエンドサーバーグループの構成をサポートします。サービス名またはサーバーグループ ID を使用して、バックエンドサーバーグループをアタッチできます。これにより、Kubernetes クラスター内の Pod と、クラスター外部の Elastic Compute Service (ECS) インスタンスを混在してアタッチできます。

ALB Ingress を使用して、ハイブリッドマウント、リージョン間マウント、およびオンプレミス IDC マウントを実装する

ALB Ingress を使用して、ハイブリッドマウント、リージョン間マウント、およびオンプレミス IDC マウントを実装する

Cloud Enterprise Network (CEN) や Transit Router などの製品を組み合わせて、リージョン間およびオンプレミス IDC リソースをマウント

ALB を Cloud Enterprise Network (CEN) や Transit Router などの製品と組み合わせて使用することで、別リージョンの VPC 内のサーバー、またはオンプレミスデータセンター内のサーバーにリクエストを転送できます。

Ingress アノテーション内の JSON 値には、標準的な英語の句読点を使用する必要があります。中国語と英語の句読点を混在させると、invalid character の reconcile エラーが発生します。英語入力モードを使用してこれらの値を編集してください。

ALB Ingress との連携

Alibaba Cloud との連携

Alibaba Cloud 製品

機能

説明

ドキュメント

WAF

ALB Ingress の WAF 保護を有効化

Web Application Firewall (WAF) は、一般的な Web 攻撃からアプリケーションを保護します。ALB Ingress で WAF 保護が有効になっている場合、ALB インスタンスへのすべてのトラフィックが保護されます。

ALB Ingress の WAF 保護を有効化

EDAS

アプリケーションルート (ALB Ingress) の作成

Enterprise Distributed Application Service (EDAS) は、アプリケーションルーティングに ALB Ingress を使用します。Alibaba Cloud の Application Load Balancer (ALB) をベースにした ALB Ingress は、高度なトラフィック管理を提供し、Nginx Ingress との互換性があり、複雑なビジネスルーティングと証明書の自動検出を処理します。

アプリケーションルート (ALB Ingress) の作成

SAE

Ingress ゲートウェイに基づくエンドツーエンドのカナリアリリースの実装

ALB Ingress ゲートウェイを使用すると、ビジネスコードを一切変更することなく、SAE アプリケーションのエンドツーエンドのトラフィック制御を実装できます。

ASM

Ingress を使用した ALB との連携

Ingress を使用して、Alibaba Cloud Service Mesh (ASM) と ALB を連携させることができます。これにより、ALB ユーザーは ASM の機能を活用できます。

ASM と ALB インスタンスの連携

HPA

Ingress を使用した ALB との連携

Ingress を使用して Horizontal Pod Autoscaler (HPA) と ALB を連携させることで、QPS ベースの自動アプリケーションオートスケーリングを有効にできます。

HPA を使用して QPS データに基づくアプリケーションのオートスケーリングを実装

Knative

Knative コンポーネントがインストールされている ACK または ACK Serverless クラスターにおける、ALB を介したサービスへのアクセス

Knative は Kubernetes ベースのサーバーレスフレームワークです。Knative を使用して ALB のサービスディスカバリーを設定し、ヘッダーと Cookie に基づくカナリアリリースを実装できます。

ALB ゲートウェイの使用

ACK One

Ingress を使用したマルチクラスター ALB ゲートウェイの作成

Distributed Cloud Container Platform for Kubernetes (ACK One) は、ハイブリッドクラウド、マルチクラスター管理、分散コンピューティング、ディザスタリカバリなどのシナリオに対応する Alibaba Cloud のエンタープライズレベルのクラウドネイティブプラットフォームです。ALB Ingress のマルチクラスターモードである ACK One ALB マルチクラスターゲートウェイを使用すると、アクティブ/アクティブゾーンディザスタリカバリ、ジオディザスタリカバリ、マルチクラスター負荷分散、および特定のクラスターへのヘッダーベースのルーティングを実装できます。

オープンソースとの連携

オープンソース製品

機能

説明

ドキュメント

クラウド上のセルフマネージド Kubernetes

Ingress を使用したセルフマネージド Kubernetes クラスターでの ALB の使用

Elastic Compute Service (ECS) リソース上に構築された Kubernetes クラスターでは、Ingress を使用して ALB ルーティングをオーケストレーションし、自動サービスディスカバリーとクラスター内負荷分散を実現できます。

セルフマネージド Kubernetes クラスター上の ALB Ingress ユーザーガイド