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

Server Load Balancer:ALB Ingress ユーザーガイド

最終更新日:May 08, 2025

コンテナーサービス Kubernetes 版 (ACK) および ACK Serverless に加えて、アプリケーションロードバランサー (ALB) Ingress は、ビジネス要件に合わせて、クラウド内の Enterprise Distributed Application Service (EDAS)、Serverless App Engine (SAE)、および自己管理型 Kubernetes クラスタと共に使用できます。このトピックでは、ALB Ingress の基本機能と高度な機能について説明し、他のサービスと組み合わせて ALB Ingress を使用する方法に関するリファレンスを提供します。

基本機能

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

項目

機能

説明

ACK のリファレンス

ACK Serverless のリファレンス

ALB Ingress コントローラー

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

ACK はマネージド ALB Ingress コントローラーを提供します。

クラスタの作成時に ALB Ingress コントローラーをインストールするか、クラスタの作成後に [アドオン] ページでコントローラーをインストールできます。

詳細については、「ALB Ingress コントローラーの管理」をご参照ください。

詳細については、「ALB Ingress コントローラーの管理」をご参照ください。

インスタンス管理

AlbConfig の作成

AlbConfig は、ALB Ingress コントローラーが ALB インスタンスとリスナーを構成するために使用する CRD オブジェクトです。

AlbConfig は、単一の ALB インスタンスを構成するために使用されます。複数の ALB インスタンスを構成する場合は、複数の AlbConfig を作成する必要があります。

詳細については、「AlbConfig の作成」をご参照ください。

詳細については、「AlbConfig の作成」をご参照ください。

AlbConfig を Ingress に関連付ける

IngressClass を使用して、AlbConfig を Ingress に関連付けることができます。これを行うには、まず IngressClass を作成する必要があります。

詳細については、「IngressClass を作成し、AlbConfig に関連付ける」をご参照ください。

詳細については、「IngressClass を使用して AlbConfig を Ingress に関連付ける」をご参照ください。

AlbConfig の変更

AlbConfig の設定 (AlbConfig の名前や vSwitch など) を変更できます。

新しい設定は、設定を保存した直後に有効になります。

Simple Log Service を有効にしてアクセスログを収集する

ALB Ingress のアクセスログを収集する場合は、AlbConfig の logProject パラメーターと logStore パラメーターを構成します。

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

  • alb_ で始まる値に logStore パラメーターを設定します。指定されたログストアが存在しない場合、システムは指定された名前で自動的にログストアを作成します。

詳細については、「Simple Log Service を有効にしてアクセスログを収集する」をご参照ください。

詳細については、「Simple Log Service を有効にしてアクセスログを収集する」をご参照ください。

既存の ALB インスタンスを使用する

既存の ALB インスタンスを使用する場合は、AlbConfig を作成するときに ALB インスタンスの ID を指定します。

詳細については、「既存の ALB インスタンスを再利用する」をご参照ください。

詳細については、「既存の ALB インスタンスを再利用する」をご参照ください。

複数の ALB インスタンスを使用する

複数の ALB インスタンスを使用する場合は、Ingress の spec.ingressClassName フィールドに複数の IngressClass を指定します。

詳細については、「複数の ALB インスタンスを作成して使用する」をご参照ください。

詳細については、「複数の ALB インスタンスを作成して使用する」をご参照ください。

ALB インスタンスの削除

AlbConfig は ALB インスタンスを構成するために使用されます。したがって、対応する AlbConfig を削除することで、ALB インスタンスを削除できます。AlbConfig を削除する前に、AlbConfig に関連付けられているすべての Ingress を削除する必要があります。

詳細については、「AlbConfig の削除」をご参照ください。

詳細については、「AlbConfig の削除」をご参照ください。

リスナー管理

HTTPS 接続の証明書を指定する

対応する AlbConfig の listeners パラメーターで証明書 ID を指定することで、ALB インスタンスの証明書を指定できます。証明書は HTTPS 接続に使用されます。

詳細については、「ALB Ingress を使用して HTTPS リスナーの証明書を構成する」をご参照ください。

詳細については、「ALB Ingress を使用して HTTPS リスナーの証明書を構成する」をご参照ください。

Transport Layer Security (TLS) セキュリティポリシーを指定する

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

詳細については、「カスタム TLS セキュリティポリシーを指定する」をご参照ください。

詳細については、「カスタム TLS セキュリティポリシーを指定する」をご参照ください。

高度な機能

Ingress は、レイヤー 7 ロードバランシングを実装し、ACK クラスタ内のサービスへの外部アクセスを管理するために使用できる API オブジェクトです。次の表では、ALB Ingress を使用して、ドメイン名と URL パスに基づいてバックエンドサーバーグループにリクエストを転送する方法、HTTP から HTTPS にリクエストをリダイレクトする方法、カナリアリリースを実行する方法について説明します。

機能

説明

ACK のリファレンス

ACK Serverless のリファレンス

ドメイン名に基づいてリクエストを転送する

ドメイン名付きまたはドメイン名なしで Ingress を作成し、Ingress を使用してリクエストを転送できます。

詳細については、「ドメイン名に基づいてリクエストを転送する」をご参照ください。

詳細については、「ドメイン名に基づいてリクエストを転送する」をご参照ください。

URL パスに基づいてリクエストを転送する

ALB Ingress は、URL パスに基づいてリクエストを転送できます。pathType パラメーターを使用して、さまざまな URL 一致ポリシーを構成できます。pathType の有効値は、Exact、ImplementationSpecific、および Prefix です。

詳細については、「URL パスに基づいてリクエストを転送する」をご参照ください。

詳細については、「URL パスに基づいてリクエストを転送する」をご参照ください。

カスタム転送ルール

ALB Ingress では、カスタム転送ルールを構成できます。転送ルールは、一致条件とアクションで構成されます。ALB Ingress は次の操作をサポートしています。

  • alb.ingress.kubernetes.io/conditions.<サービス名> アノテーションを構成することで、ドメイン名、URL、リクエストヘッダー、クエリ文字列、リクエストメソッド、Cookie、ソース IP アドレスなどのカスタム転送条件を指定します。

  • alb.ingress.kubernetes.io/actions.<サービス名> アノテーションを構成することで、固定応答を返し、リクエストをリダイレクトし、リクエストヘッダーを挿入し、トラフィックをミラーリングし、複数のサーバーグループにリクエストを転送し、リクエストを書き換えるカスタム転送アクションを指定します。

  • ACK コンソールで、ドメイン名、URL、HTTP ヘッダーなどのカスタム転送条件を指定します。

  • ACK コンソールで、指定されたサーバーグループにリクエストを転送するか、固定応答を返すカスタム転送アクションを指定します。

重要
  • 各転送ルールは最大 10 個の転送条件をサポートします。

  • ルーティング条件 ResponseHeader と ResponseStatusCode は、カスタムアウトバウンドルーティングルールでのみ有効になります。

詳細については、「ALB Ingress のカスタム転送ルールを作成する」をご参照ください。

詳細については、「ALB Ingress のカスタム転送ルールを作成する」をご参照ください。

ヘルスチェックの構成

ALB Ingress にアノテーションを追加して、サービスの可用性を確保するヘルスチェックを構成できます。

詳細については、「ヘルスチェックの構成」をご参照ください。

詳細については、「ヘルスチェックの構成」をご参照ください。

自動証明書検出の構成

ALB Ingress コントローラーは、自動証明書検出をサポートしています。最初に、SSL Certificates Service コンソール で証明書を作成する必要があります。次に、Ingress の TLS 構成で証明書のドメイン名を指定します。こうすることで、ALB Ingress コントローラーは、Ingress の TLS 構成に基づいて証明書を自動的に検出して一致させることができます。

ALB Ingress を使用して HTTPS リスナーの証明書を設定する

詳細については、「ALB Ingress を使用して HTTPS リスナーの証明書を設定する」をご参照ください。

HTTP リクエストから HTTPS リクエストへのリダイレクトを設定する

alb.ingress.kubernetes.io/ssl-redirect: "true" アノテーションを追加することで、HTTP リクエストを HTTPS (ポート 443)にリダイレクトするように ALB Ingress を設定できます。

HTTP リクエストを HTTPS にリダイレクトする

HTTP リクエストを HTTPS にリダイレクトする

HTTPS または gRPC プロトコルを構成する

ALB は、バックエンドプロトコルとして HTTPS または gRPC プロトコルをサポートしています。HTTPS または gRPC を構成するには、alb.ingress.kubernetes.io/backend-protocol: "grpc" または alb.ingress.kubernetes.io/backend-protocol: "https" アノテーションを追加します。Ingress を使用して gRPC サービスにリクエストを分散する場合は、gRPC サービスの SSL 証明書を構成し、TLS プロトコルを使用して gRPC サービスと通信する必要があります。

説明

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

バックエンドプロトコルとして HTTPS または gRPC を構成する

バックエンドプロトコルとして HTTPS または gRPC を構成する

書き換えルールを構成する

ALB Ingress は書き換えルールをサポートしています。alb.ingress.kubernetes.io/rewrite-target: /path/${2} アノテーションを追加することで、書き換えルールを設定できます。

説明
  • rewrite-target アノテーションでは、${number} タイプのキャプチャグループに対して、path パラメーターのタイプを Prefix に設定する必要があります。

  • デフォルトでは、path パラメーターは、アスタリスク (*) や疑問符 (?) などの正規表現でサポートされている文字をサポートしていません。 path パラメーターで正規表現でサポートされている文字を指定するには、rewrite-target アノテーションを追加する必要があります。

  • path パラメーターの値は、スラッシュ (/) で始まる必要があります。

リライトルールの構成

リライトルールの構成

カスタム リスナー ポートを構成する

ALB Ingress を使用すると、リスナー ポートをカスタマイズして複数のポートを同時に公開できます。 このメソッドを使用して、サービスのポート 80 とポート 443 の両方をインターネットに公開できます。

カスタム リスナー ポートを構成する

カスタム リスニング ポートを構成する

転送ルール優先度の構成

ALB Ingress の構成にアノテーションを追加して、Ingress の転送ルールの優先度を構成できます。

説明

リスナー内の各転送ルールの優先度は一意です。alb.ingress.kubernetes.io/order アノテーションを使用して、Ingress の転送ルールの優先度を指定できます。有効な値:1 ~ 1000。値が小さいほど、優先度が高くなります。

転送ルール優先度の構成

転送ルール優先度の構成

アノテーションを使用してカナリアリリースを実行する

ALB では、リクエストヘッダー、Cookie、および重みに基づいてカナリアリリースを設定し、複雑なトラフィックルーティングを処理できます。 アノテーションを追加して、カナリアリリースを設定できます。

alb.ingress.kubernetes.io/canary: "true" アノテーションを追加して、カナリアリリース機能を有効にできます。 その後、さまざまなアノテーションを使用して、さまざまなカナリアリリースルールを設定できます。

セッション維持の設定

alb.ingress.kubernetes.io/sticky-session アノテーションと alb.ingress.kubernetes.io/sticky-session-type アノテーションを追加することで、ALB Ingress のセッション維持を設定できます。

アノテーションを使用してセッション維持を設定する

アノテーションを使用してセッション維持を設定する

バックエンドサーバーグループの負荷分散アルゴリズムを指定する

alb.ingress.kubernetes.io/backend-scheduler アノテーションを追加することで、バックエンドサーバーグループの負荷分散アルゴリズムを指定できます。

詳細については、「スケジューリングアルゴリズムを指定する」をご参照ください。

詳細については、「スケジューリングアルゴリズムを指定する」をご参照ください。

クロスオリジン リソース共有 (CORS) を構成する

ALB Ingress では、アノテーションを使用して CORS を構成できます。

CORS を構成する

CORS を構成する

持続的な TCP 接続を設定する

ALB は、持続的な TCP 接続機能を提供します。この機能は、ネットワーク接続の確立に消費されるリソース量を削減し、転送パフォーマンスを向上させます。 alb.ingress.kubernetes.io/backend-keepalive アノテーションを ALB Ingress に追加することで、持続的な TCP 接続機能を有効にできます。

詳細については、「持続的な TCP 接続を設定する」をご参照ください。

TCP 持続的接続を設定する

QPS スロットリングの設定

ALB は、転送ルールに基づいて QPS スロットリングをサポートしています。 QPS は 1 ~ 100000 の範囲に制限できます。 alb.ingress.kubernetes.io/traffic-limit-qps アノテーションを ALB Ingress に追加することで、QPS スロットリング機能を有効にできます。

QPS スロットリングの設定

QPS スロットリングを設定する

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

alb.ingress.kubernetes.io/slow-start-enabled アノテーションを追加することで、ALB Ingress のスロースタートモードを有効にできます。alb.ingress.kubernetes.io/slow-start-duration アノテーションを追加して、スロースタートがトラフィックを徐々に増加させる時間を設定します。有効値の範囲は 30 ~ 900 秒です。

説明

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

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

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

接続ドレイン

alb.ingress.kubernetes.io/connection-drain-enabled アノテーションを追加することで、ALB Ingress の接続ドレインを有効にできます。alb.ingress.kubernetes.io/connection-drain-timeout アノテーションを追加して、接続ドレインのタイムアウト期間を設定します。有効値は 0 ~ 900 秒です。

接続ドレイン

接続ドレイン

Kubernetes ポッドと Elastic Compute Service (ECS) インスタンスの両方をバックエンドサーバーとして指定する

ALB Ingress では、alb.ingress.kubernetes.io/actions.<Service name> アノテーションを使用して、ALB インスタンスのバックエンドサーバーグループを構成できます。 サービス名とサーバーグループ ID を指定することで、Kubernetes ポッドと ECS インスタンスの両方を ALB インスタンスのバックエンドサーバーとして追加できます。

詳細については、「ALB Ingress を使用してハイブリッドバックエンドサーバーグループを構成し、ECS インスタンスを異なるリージョンにデプロイされた ALB インスタンスに関連付け、オンプレミスサーバーを ALB インスタンスに関連付ける」をご参照ください。

ALB Ingress を使用してハイブリッドバックエンドサーバーグループを構成し、異なるリージョンにデプロイされた ALB インスタンスに ECS インスタンスを関連付け、オンプレミスサーバーを ALB インスタンスに関連付ける

Cloud Enterprise Network (CEN) と転送ルータを使用して、リージョンをまたがるリソースとデータセンターをバックエンドサーバーとして指定します

ALB インスタンスを CEN と転送ルータにアタッチして、ALB とは異なるリージョンにデプロイされた VPC 内のサーバーおよびデータセンターにリクエストを転送できます。

他のサービスとの統合

Alibaba Cloud サービスとの統合

Alibaba Cloud サービス

機能

説明

参照資料

WAF

ALB Ingress に Web Application Firewall (WAF) を有効にする

Web Application Firewall (WAF) は、Web サイトとアプリケーションを保護するオールインワンサービスです。 WAF を使用すると、データ侵害、HTTP フラッド攻撃、Web シェル、Web ページの改ざんを防ぐことができます。 WAF は仮想パッチも提供します。 ALB Ingress に WAF を有効にすると、ネットワークトラフィックは ALB リスナーにルーティングされる前に WAF によってフィルタリングされます。

ALB Ingress に WAF を有効にする

EDAS

アプリケーションの ALB Ingress を作成する

EDAS は ALB Ingress をサポートしています。 ALB Ingress は高度なトラフィック管理を提供し、NGINX Ingress と互換性があります。 これにより、ALB Ingress は複雑なルーティングを処理し、証明書を自動的に検出できます。

ALB Ingress を作成する

SAE

Ingress ゲートウェイに基づいてエンドツーエンドのカナリアリリースを設定する

Ingress ゲートウェイを使用して、SAE アプリケーションのエンドツーエンドカナリアリリースを実行できます。

ASM

ALB Ingress を設定して Service Mesh (ASM) を ALB と統合する

ALB Ingress を設定して、ASM を ALB と統合できます。

ASM と ALB を統合する

HPA

ALB Ingress を設定して Horizontal Pod Autoscaler (HPA) を ALB と統合する

HPA は、Kubernetes クラスター内のポッドを自動的にスケールアウトするために使用されます。 ALB Ingress を使用して HPA を ALB と統合し、クエリ/秒 (QPS) に基づいて自動スケーリングを有効にすることができます。

ALB Ingress を使用して QPS に基づくアプリケーションの自動スケーリングを有効にする

Knative

Knative がインストールされている ACK クラスターと Serverless Kubernetes クラスターが ALB 経由でサービスにアクセスできるようにする

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

Knative で ALB Ingress を使用する

ACK One

ALB Ingress を設定して ALB マルチクラスタゲートウェイを作成する

Distributed Cloud Container Platform for Kubernetes (ACK One) は、ハイブリッドクラウド、マルチクラスター、分散コンピューティング、ディザスタリカバリシナリオにおけるコンテナ管理要件を満たすために Alibaba Cloud によって開発されたエンタープライズクラスのクラウドネイティブコンテナプラットフォームです。 ACK One によって提供される ALB マルチクラスタゲートウェイは、ALB Ingress のマルチクラスタモードです。 これらを使用して、アクティブなゾーン冗長性、アクティブ地理的冗長性、クロス クラスター負荷分散、および指定されたクラスターへのみヘッダーベースのトラフィック分散を実装できます。

オープンソースサービスとの統合

オープンソースサービス

機能

説明

参照資料

クラウド内の自己管理型 Kubernetes クラスター

ALB Ingress を設定して自己管理型 Kubernetes クラスターで ALB を使用する

ECS インスタンスを使用して Kubernetes クラスターを構築する場合、ALB Ingress を設定してトラフィックをルーティングできます。 これにより、クラスターは ALB サービスを自動的に検出し、負荷分散を有効にすることができます。

自己管理型 Kubernetes クラスターで ALB Ingress を使用する