コンテナーサービス 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 の 説明
| 詳細については、「Simple Log Service を有効にしてアクセスログを収集する」をご参照ください。 | 詳細については、「Simple Log Service を有効にしてアクセスログを収集する」をご参照ください。 | |
既存の ALB インスタンスを使用する | 既存の ALB インスタンスを使用する場合は、AlbConfig を作成するときに ALB インスタンスの ID を指定します。 | 詳細については、「既存の ALB インスタンスを再利用する」をご参照ください。 | 詳細については、「既存の ALB インスタンスを再利用する」をご参照ください。 | |
複数の ALB インスタンスを使用する | 複数の ALB インスタンスを使用する場合は、Ingress の | 詳細については、「複数の ALB インスタンスを作成して使用する」をご参照ください。 | 詳細については、「複数の ALB インスタンスを作成して使用する」をご参照ください。 | |
ALB インスタンスの削除 | AlbConfig は ALB インスタンスを構成するために使用されます。したがって、対応する AlbConfig を削除することで、ALB インスタンスを削除できます。AlbConfig を削除する前に、AlbConfig に関連付けられているすべての Ingress を削除する必要があります。 | 詳細については、「AlbConfig の削除」をご参照ください。 | 詳細については、「AlbConfig の削除」をご参照ください。 | |
リスナー管理 | HTTPS 接続の証明書を指定する | 対応する AlbConfig の | 詳細については、「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 パスに基づいてリクエストを転送できます。 | 詳細については、「URL パスに基づいてリクエストを転送する」をご参照ください。 | 詳細については、「URL パスに基づいてリクエストを転送する」をご参照ください。 |
カスタム転送ルール | ALB Ingress では、カスタム転送ルールを構成できます。転送ルールは、一致条件とアクションで構成されます。ALB Ingress は次の操作をサポートしています。
重要
| 詳細については、「ALB Ingress のカスタム転送ルールを作成する」をご参照ください。 | 詳細については、「ALB Ingress のカスタム転送ルールを作成する」をご参照ください。 |
ヘルスチェックの構成 | ALB Ingress にアノテーションを追加して、サービスの可用性を確保するヘルスチェックを構成できます。 | 詳細については、「ヘルスチェックの構成」をご参照ください。 | 詳細については、「ヘルスチェックの構成」をご参照ください。 |
自動証明書検出の構成 | ALB Ingress コントローラーは、自動証明書検出をサポートしています。最初に、SSL Certificates Service コンソール で証明書を作成する必要があります。次に、Ingress の TLS 構成で証明書のドメイン名を指定します。こうすることで、ALB Ingress コントローラーは、Ingress の TLS 構成に基づいて証明書を自動的に検出して一致させることができます。 | 詳細については、「ALB Ingress を使用して HTTPS リスナーの証明書を設定する」をご参照ください。 | |
HTTP リクエストから HTTPS リクエストへのリダイレクトを設定する | | ||
HTTPS または gRPC プロトコルを構成する | ALB は、バックエンドプロトコルとして HTTPS または gRPC プロトコルをサポートしています。HTTPS または gRPC を構成するには、 説明 バックエンドプロトコルは変更できません。プロトコルを変更する必要がある場合は、Ingress を削除して再構築してください。 | ||
書き換えルールを構成する | ALB Ingress は書き換えルールをサポートしています。 説明
| ||
カスタム リスナー ポートを構成する | ALB Ingress を使用すると、リスナー ポートをカスタマイズして複数のポートを同時に公開できます。 このメソッドを使用して、サービスのポート 80 とポート 443 の両方をインターネットに公開できます。 | ||
転送ルール優先度の構成 | ALB Ingress の構成にアノテーションを追加して、Ingress の転送ルールの優先度を構成できます。 説明 リスナー内の各転送ルールの優先度は一意です。 | ||
アノテーションを使用してカナリアリリースを実行する | ALB では、リクエストヘッダー、Cookie、および重みに基づいてカナリアリリースを設定し、複雑なトラフィックルーティングを処理できます。 アノテーションを追加して、カナリアリリースを設定できます。
| ||
セッション維持の設定 | | ||
バックエンドサーバーグループの負荷分散アルゴリズムを指定する |
| 詳細については、「スケジューリングアルゴリズムを指定する」をご参照ください。 | 詳細については、「スケジューリングアルゴリズムを指定する」をご参照ください。 |
クロスオリジン リソース共有 (CORS) を構成する | ALB Ingress では、アノテーションを使用して CORS を構成できます。 | ||
持続的な TCP 接続を設定する | ALB は、持続的な TCP 接続機能を提供します。この機能は、ネットワーク接続の確立に消費されるリソース量を削減し、転送パフォーマンスを向上させます。 | 詳細については、「持続的な TCP 接続を設定する」をご参照ください。 | |
QPS スロットリングの設定 | ALB は、転送ルールに基づいて QPS スロットリングをサポートしています。 QPS は 1 ~ 100000 の範囲に制限できます。 | ||
バックエンド スロースタート |
説明 期間が長いほど、トラフィックの増加は遅くなります。 | ||
接続ドレイン |
| ||
Kubernetes ポッドと Elastic Compute Service (ECS) インスタンスの両方をバックエンドサーバーとして指定する | ALB Ingress では、 | 詳細については、「ALB Ingress を使用してハイブリッドバックエンドサーバーグループを構成し、ECS インスタンスを異なるリージョンにデプロイされた ALB インスタンスに関連付け、オンプレミスサーバーを 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 によってフィルタリングされます。 | |
EDAS | アプリケーションの ALB Ingress を作成する | EDAS は ALB Ingress をサポートしています。 ALB Ingress は高度なトラフィック管理を提供し、NGINX Ingress と互換性があります。 これにより、ALB Ingress は複雑なルーティングを処理し、証明書を自動的に検出できます。 | |
SAE | Ingress ゲートウェイに基づいてエンドツーエンドのカナリアリリースを設定する | Ingress ゲートウェイを使用して、SAE アプリケーションのエンドツーエンドカナリアリリースを実行できます。 | |
ASM | ALB Ingress を設定して Service Mesh (ASM) を ALB と統合する | ALB Ingress を設定して、ASM を ALB と統合できます。 | |
HPA | ALB Ingress を設定して Horizontal Pod Autoscaler (HPA) を ALB と統合する | HPA は、Kubernetes クラスター内のポッドを自動的にスケールアウトするために使用されます。 ALB Ingress を使用して HPA を ALB と統合し、クエリ/秒 (QPS) に基づいて自動スケーリングを有効にすることができます。 | |
Knative | Knative がインストールされている ACK クラスターと Serverless Kubernetes クラスターが ALB 経由でサービスにアクセスできるようにする | Knative は Kubernetes ベースのサーバーレスフレームワークです。 Knative を使用して ALB サービスを公開し、ヘッダーと Cookie に基づいてカナリアリリースを実行できます。 | |
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 サービスを自動的に検出し、負荷分散を有効にすることができます。 |