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

API Gateway:ApigConfig の設定

最終更新日:Sep 12, 2026

ApigConfig は、APIG Controller が提供する CRD であり、APIG ゲートウェイインスタンスのライフサイクル管理、Ingress リスナーのオプション設定、および IP アクセス制御、ログ収集、トレーシングといったグローバル設定を定義します。

ApigConfig の概要

設定

ApigConfig は APIG Controller が提供する CRD で、APIG ゲートウェイインスタンスのライフサイクルとグローバル設定を管理します。

各 ApigConfig は 1 つの APIG ゲートウェイインスタンスに対応します。複数の APIG ゲートウェイインスタンスを使用するには、複数の ApigConfig リソースを作成する必要があります。
再利用シナリオを除き、ApigConfig を削除すると、対応する APIG ゲートウェイインスタンスも削除されます。
重要

CRD (ApigConfig) を使用して作成された APIG ゲートウェイインスタンスの場合、API、ルート、証明書などのビジネス設定は CRD で管理してください。スケーリングなどの操作には APIG コンソールを使用できます。CRD で作成されたインスタンスのビジネス設定をコンソールで変更しないでください。CRD の同期により変更が上書きされ、設定の競合が発生する可能性があります。

以下は、完全な ApigConfig 設定の例です。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
  name: apig-ingress
spec:
  name: apig-ingress
  common:
    pay:
      payType: POSTPAY
    instance:
      spec: apigw.small.x1
    network:
      vSwitches:
      - "vsw-1"
      - "vsw-2"
      networkType: Internet
    securityGroupType: enterprise
  global:
    tls:
      enableHardwareAcceleration: true
    ipAccessControl:
      whitelist:
      - 1.1.XX.XX
      - 2.2.XX.XX
  monitor:
    logging:
      sls:
        reuseProject: "xxx" # デフォルトプロジェクトを使用する場合は空白のままにします。
    tracing:
      openTelemetry:
        sampleRate: "100"
  ingress:
    local:
      ingressClass:  apig
      watchNamespace: "" # 空の文字列 ("") は、すべての namespace の Ingress リソースを示します。

パラメータ

説明

デフォルト

name

ゲートウェイ名。

apig-ingress

common.pay.payType

課金方法。

従量課金のみがサポートされています。指定がない場合、これがデフォルト値になります。

POSTPAY

common.instance.spec

ゲートウェイインスタンスタイプ。

有効な値:

  • apigw.small.x1

  • apigw.small.x2

  • apigw.small.x4

  • apigw.medium.x1

  • apigw.medium.x2

  • apigw.medium.x3

  • apigw.large.x1

  • apigw.large.x2

  • apigw.large.x3

apigw.small.x1

common.network.vSwitches

プライマリおよびスタンバイの vSwitch (この順で指定)。

1 つまたは 2 つの vSwitch を指定します。指定されていない場合、APIG Controller Pod が実行されているノードの vSwitch が継承されます。

なし

common.network.networkType

ゲートウェイのネットワークアクセシビリティ。

有効な値:

  • Internet

  • Intranet

Internet

common.securityGroupType

セキュリティグループタイプ。

有効な値:

  • enterprise:高度セキュリティグループ

  • normal:通常セキュリティグループ

normal

global.tls.enableHardwareAcceleration

TLS ハードウェアアクセラレーションを有効にするかどうかを指定します。

この機能により、HTTPS トラフィックのパフォーマンスが大幅に向上します。

true

global.ipAccessControl.whitelist

グローバル IP ホワイトリスト。

未設定

global.ipAccessControl.blacklist

グローバル IP ブラックリスト。

未設定

monitor.logging.sls

Simple Log Service (SLS) のログ収集を有効にするかどうかを指定します。

この機能を有効にするには、APIG Controller に必要な SLS 権限を付与してください。

false

monitor.logging.sls.reuseProject

アクセスログを保存する SLS プロジェクト。

有効な値:

  • 空:デフォルトプロジェクトが作成されて使用されます。

  • 指定された値:既存のプロジェクトが使用されます。

""

monitor.tracing.xTrace.sampleRate

トレーシング分析 (x-trace) のサンプルレート。

0

monitor.tracing.openTelemetry

OpenTelemetry トレーシングを有効または無効にします。

デフォルトでは無効です。xTrace トレーシングオプションとは相互排他的です。

monitor.tracing.openTelemetry.sampleRate

OpenTelemetry トレーシングのサンプルレート。

"100"

ingress.local.ingressClass

IngressClass に基づいて、APIG ゲートウェイインスタンスが処理する Ingress リソースを決定します。

有効な値:

  • 未設定:ゲートウェイはどの Ingress リソースも処理しません。

  • apig に設定:ゲートウェイは IngressClass が apig の Ingress リソースを処理します。

  • 空の文字列 (""):監視対象の namespace 内のすべての Ingress リソースをリッスンします。

  • nginx に設定:IngressClass が nginx の Ingress リソース、または IngressClass が関連付けられていない Ingress リソースをリッスンします。

  • その他の値に設定:ゲートウェイは、指定された値と一致する IngressClass を持つ Ingress リソースを処理します。

説明

この設定の優先度は、IngressClass を介した ApigConfig の関連付けよりも低くなります。

未設定

ingress.local.watchNamespace

ゲートウェイが Ingress リソースを監視する namespace。

有効な値:

  • 空の文字列:すべての namespace を監視します。

  • 指定された値:指定された namespace を監視します。1 つの namespace のみ指定できます。

""

ステータス

ApigConfig リソースを作成した後、kubectl get ApigConfig コマンドを実行してステータスを確認します。リソースは、Pending > Running > Listening の順に状態が遷移します。

  • Pending:APIG ゲートウェイインスタンスを作成中です。このプロセスには約 3 分かかります。

  • Running:APIG ゲートウェイインスタンスの作成が完了し、実行中です。

  • Listening:APIG ゲートウェイインスタンスが実行中で、クラスタ内の Ingress リソースをリッスンしています。

  • Failed:APIG ゲートウェイインスタンスが無効な状態です。原因については、Status フィールドの Message を確認してください。

タグ

ApigConfig を介して作成または再利用された APIG ゲートウェイインスタンスには、リソースタグが付けられます。タグ情報は、APIG コンソールの [基本情報] セクションで確認できます。

重要

APIG コンソールでこれらのタグを編集しないでください。編集すると、ゲートウェイインスタンスが中断される可能性があります。

タグ

説明

ack.aliyun.com

APIG ゲートウェイが Container Service for Kubernetes (ACK) クラスタの Ingress トラフィックを管理していることを示します。

ingress.k8s.alibaba/ApigConfig

APIG ゲートウェイインスタンスを ApigConfig に関連付けます。

kubernetes.reused.by.user

APIG ゲートウェイインスタンスが再利用されているかどうかを示します。再利用されたインスタンスは、関連付けられた ApigConfig が削除されても削除されません。

APIG ゲートウェイインスタンスの作成

  1. ApigConfig を設定します。

    以下の例では、apig-ingress という名前の APIG ゲートウェイインスタンスをインスタンスタイプ apigw.small.x1 で作成します。必要に応じて、その他の ApigConfig 設定を変更してください。

    apiVersion: apig.alibabacloud.com/v1alpha1
    kind: ApigConfig
    metadata:
      name: apig-ingress
    spec:
      name: apig-ingress
      common:
        instance:
          spec: apigw.small.x1
  2. Container Service for Kubernetes (ACK) クラスターで、IngressClass を作成し、spec.parameters を使用して ApigConfig に関連付けます。これにより、クラスター内に Ingress プロセッサーが宣言されます。

    設定が完了すると、リンクされた APIG ゲートウェイインスタンスは、この IngressClass に関連付けられたすべての Ingress を処理します。

    apiVersion: networking.k8s.io/v1
    kind: IngressClass
    metadata:
      name: apig
    spec:
      controller: apig.alibabacloud.com/ingress
      parameters:
        apiGroup: apig.alibabacloud.com
        kind: ApigConfig
        name: apig-ingress

既存の APIG ゲートウェイインスタンスの再利用

既存の APIG ゲートウェイインスタンスを再利用するには、ApigConfig の spec.id フィールドにそのインスタンス ID (例:gw-xxx) を指定します。spec.override を使用して、ApigConfig の設定で既存のインスタンス設定を上書きするかどうかを制御します。

以下の例では、既存の APIG ゲートウェイインスタンスを再利用します。ApigConfig は、インスタンスをクラスターに関連付け、apig IngressClass を持つ Ingress リソースを処理するように設定します。

重要
  • 以下の設定では、spec.override が false に設定されているため、既存の APIG ゲートウェイの Ingress リスナーオプションとグローバル設定は上書きされません。既存のゲートウェイインスタンスがコンテナクラスターに関連付けられていない場合、自動的にクラスターに関連付けられ、その Ingress リスナーオプションは、ingressClass が spec.ingress.local.ingressClass (この例では apig) であるコンテナクラスター内の Ingress リソースをリッスンするように設定されます。ゲートウェイインスタンスがすでにコンテナクラスターに関連付けられている場合、既存の Ingress リスナーオプションは上書きされません。

  • 既存の APIG ゲートウェイの Ingress リスナーオプションとグローバル設定を上書きするには、spec.override を有効にする前に、ApigConfig 内のゲートウェイパラメーター (Ingress リスナーオプション、ハードウェアアクセラレーション、グローバル許可リストとブロックリスト、および可観測性) が正しく設定されていることを確認してください。ApigConfig でこれらの設定が指定されていないまま spec.override を有効にすると、元のゲートウェイパラメーター (Ingress リスナーオプション、ハードウェアアクセラレーション、グローバル許可リストとブロックリスト、および可観測性) が上書きされ、トラフィックに影響を与える可能性があります。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
  name: reuse
spec:
  id: gw-xxxx
  override: false
  ingress:
    local:
      ingressClass: apig

パラメーター

説明

spec.id

再利用する APIG ゲートウェイインスタンスの ID。ID は gw- で始まる必要があります。

spec.override

ApigConfig の設定に基づいて、再利用する APIG ゲートウェイインスタンスの設定を上書きするかどうかを指定します。

  • true に設定した場合、既存のゲートウェイ設定 (Ingress リスナーオプション、ハードウェアアクセラレーション、グローバル許可リストとブロックリスト、および可観測性) を上書きします。

  • false に設定した場合、ゲートウェイの既存の設定 (Ingress リスナーオプション、ハードウェアアクセラレーション、グローバル許可リストとブロックリスト、および可観測性など) は上書きされません。ただし、既存のゲートウェイインスタンスがコンテナクラスターに関連付けられていない場合、ゲートウェイインスタンスは自動的にコンテナクラスターに関連付けられ、その Ingress リスナーオプションは、ingressClass が spec.ingress.local.ingressClass であるコンテナクラスター内の Ingress リソースをリッスンするように設定されます。

APIG ゲートウェイインスタンスの削除

ApigConfig を削除すると、対応する APIG ゲートウェイインスタンスも削除されます。ただし、再利用されたインスタンスは除きます。

以下の表に、削除ポリシーを示します。

課金方法

APIG Controller で作成

再利用コンソールゲートウェイ

従量課金

ApigConfig を削除すると、ゲートウェイインスタンスは自動的に削除されます。

ApigConfig を削除しても、ゲートウェイインスタンスは保持されます。

ApigConfig を削除するには、次のコマンドを実行します。

kubectl delete ApigConfig your-config-name

グローバル IP アクセス制御の設定

IP ホワイトリストの設定

グローバル IP ホワイトリストを設定して、特定のソース IP からのみ APIG Ingress へのアクセスを許可します。

以下の例では、ソース IP 1.1.XX.XX と CIDR ブロック 2.0.XX.XX/8 からのアクセスのみを許可します。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
   name: apig-ingress
spec:
   ...
  global:
    ipAccessControl:
      whitelist:
      - 1.1.XX.XX
      - 2.0.XX.XX/8
   ...

IP ブラックリストの設定

グローバルかつインスタンスレベルの IP ブラックリストを設定して、特定のソース IP からのアクセスを拒否します。

以下の例では、ソース IP 1.1.XX.XX と CIDR ブロック 2.0.XX.XX/8 からのリクエストを拒否します。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
   name: apig-ingress
spec:
   ...
  global:
    ipAccessControl:
      blacklist:
      - 1.1.XX.XX
      - 2.0.XX.XX/8
   ...

SLS ロギングの有効化

ログ収集を有効にする前に、APIG Controller に必要な SLS 権限があることを確認してください。

以下の例では、demo という名前の SLS プロジェクトにアクセスログを配信するようにゲートウェイを設定します。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
   name: apig-ingress
spec:
   ...
  monitor:
    logging:
      sls:
        # reuseProject を設定して SLS ロギングを有効にします。デフォルトプロジェクトを使用する場合は、このフィールドを空白のままにします。
        reuseProject: "demo"
    ...

OpenTelemetry トレーシングの有効化

ゲートウェイで OpenTelemetry トレーシングを設定して、本番環境の問題を診断するためのエンドツーエンドのトレーシングシステムを構築します。

次の例では、サンプリングレート (sampleRate) を 100 に設定して OpenTelemetry トレーシングを構成します。

apiVersion: apig.alibabacloud.com/v1alpha1
kind: ApigConfig
metadata:
   name: apig-ingress
spec:
   ...
  monitor:
    tracing:
      openTelemetry:
        sampleRate: "100"
   ...

追加設定

APIG Ingress gateway インスタンスは、以下の追加設定をサポートしています。

これらの設定を適用するには、Cloud-native API Gateway コンソールにアクセスします。APIG Gateway > ゲートウェイリストページでゲートウェイインスタンスを選択し、左側メニューで [パラメーター設定] をクリックします。

パラメーター

タイプ

説明

EnableGenerateRequestId

Bool

有効にすると、トレース目的でリクエストヘッダーにリクエスト ID が生成されます。

EnableGzip

Bool

リクエストとレスポンスの Gzip 圧縮を有効にすることで、ゲートウェイのトラフィックを削減しますが、CPU 消費量は増加します。

EnableSlashMerge

Bool

有効にすると、リクエストパス内の冗長な '/' 文字をマージします。例えば、www.a.com//b は www.a.com/b になります。

DownstreamConnectionBufferLimits

Int

単一接続のバッファーサイズ。スループットとゲートウェイのメモリ使用量に影響します。

有効な範囲:[0, 2147483647]。

XffTrustedNum

Int

ゲートウェイの前段にある信頼できるプロキシの数。これは、ゲートウェイが x-forwarded-for や x-request-id などのプロキシによって追加されたリクエストヘッダーを使用するかどうかに影響します。

値の範囲:[0, 10]。単位:個。

DownstreamHttp2MaxConcurrentStream

Int

クライアントが HTTP/2 を使用する場合の、単一接続での同時ストリームの最大数。

値の範囲:[0, 2147483647]。単位:個。

InitialStreamWindowSize

Int

ゲートウェイとクライアント間でネゴシエートされる HTTP/2 stream の初期ストリームウィンドウサイズ。

値の範囲:[65535, 2147483647]。単位:バイト。

InitialConnectionWindowSize

Int

ゲートウェイとクライアント間でネゴシエートされる HTTP/2 の初期接続レベルのウィンドウサイズ。

値の範囲:[65535, 2147483647]。単位:バイト。

EnableHttp3

Bool

HTTP/3 プロトコルをサポートするかどうかを指定します。

HTTP/3 は TLS ハードウェアアクセラレーションと互換性がありません。HTTP/3 を有効にする前に、ハードウェアアクセラレーションを無効にする必要があります。

PathWithEscapedSlashes

String

URI パスに %2F、%2f、%5C、%5c などのエスケープ文字が含まれているリクエストに対するアクションを決定します。デフォルトは KEEP_UNCHANGED で、文字をそのまま保持します。

有効な値:KEEP_UNCHANGED、REJECT_REQUEST、UNESCAPE_AND_REDIRECT、UNESCAPE_AND_FORWARD。

ZipAlgorithm

List<String>

圧縮を有効にした後に使用する圧縮アルゴリズム。このパラメーターを設定した際、EnableGzip オプションが有効でない場合は自動的に有効になります。
有効な値:brotli、gzip。

EnableProxyProtocol

Bool

PROXY プロトコルを有効にするかどうかを指定します。Ingress トラフィックが Network Load Balancer (NLB) を経由してルーティングされる場合、このオプションを有効にすると、リアルクライアント IP アドレスを取得できます。有効にしても、PROXY プロトコル以外のリクエストには影響しません。

EnableCustomAuthConfigPush

Bool

自己管理型の認可サービス用。有効にすると、認可ルールの変更によってアクティブな接続が中断されないため、WebSocket やその他のリアルタイムシナリオに適しています。

KeepaliveHeaderTimeout

Int

クライアントに返される Keep-Alive レスポンスヘッダーの値を設定します。例えば、10 に設定すると、レスポンスに keep-alive: timeout=10 が含まれます。0 に設定すると、このヘッダーは返されません。

値の範囲:[0, 600]。単位:秒。

WebsocketTermGracePeriod

Int

アップグレードや再起動などでゲートウェイが接続を閉じる際の、アクティブな WebSocket 接続の猶予期間。

値の範囲:[20, 900]。単位:秒。

EnableGzipHardwareAccelerate

Bool

ハードウェアアクセラレーションによる Gzip 圧縮を有効にします。ソフトウェア Gzip と比較して、CPU 消費量を抑えながら高いパフォーマンスを実現します。このオプションは、サポートされていないリージョン、または購入時に Gzip ハードウェアアクセラレーションが指定されていない場合は使用できません。有効にすると、EnableGzip および ZipAlgorithm の設定は適用されません。

EnableK8sSourceWorkloadFilter

Bool

サービスソースを追加するときに、指定されたラベルに基づいて Ingress、Service、Pod リソースをフィルタリングします。逆フィルタリングもサポートされています。

よくある質問

APIG Ingress を削除して再作成した後にエンドポイントが空の場合はどうすればよいですか?

Ingress を削除し、同じ YAML ファイルを使用して再作成したにもかかわらず、しばらく待ってもエンドポイントが空のままの場合、通常は ApigConfig で Ingress リスナーのオプションが設定されていません。その結果、APIG ゲートウェイインスタンスが Ingress リソースをウォッチしません。次の手順で問題を切り分けてください:

  1. ApigConfig で spec.ingress.local.ingressClass が設定されているか確認します。このフィールドが設定されていない場合、APIG ゲートウェイインスタンスは Ingress リソースを監視せず、Ingress を再作成してもエンドポイントは復元されません。このフィールドを apig に設定します。

  2. Ingress の IngressClass が、ApigConfig の ingress.local.ingressClass 値と一致することを確認してください。 Ingress の IngressClass は、kubernetes.io/ingress.class: apig アノテーションまたは spec.ingressClassName フィールドを使用して指定できます。

  3. kubectl get apigconfig コマンドを実行して、ApigConfig のステータスが Listening であるかどうかを確認します。

  4. 前述の設定が正しいことを確認した後、Ingress を再作成してください。エンドポイントは自動的に復元されます。APIG ゲートウェイインスタンスを再作成する必要はありません。