メインコンテンツまでスキップ

API Gateway Creation

概要

API Gatewayの作成は、APIMシステムを通じてAPIを公開および管理するための最初のステップです。APIMのインフラストラクチャのような実際の本番環境では、Gatewayの設定はスケーリング、トラフィック分散、ログ転送、DNSマッピングを考慮する必要があります。このチュートリアルでは、例を用いてプロダクショングレードのゲートウェイを作成する手順を案内します。

前提条件

始める前に、以下を確認してください:

  • APIMコンソールへのAdministrator アクセス権があります。
  • Projectが作成されています(例:pj-test-01)。

ステップバイステップチュートリアル

ステップ1. ゲートウェイ作成ページにアクセス

  • APIMコンソールにログインします。
  • プロジェクトを選択:pj-test-01。
  • ゲートウェイ管理に移動します。
  • 「ゲートウェイを作成」ボタンをクリックします。

ステップ2. ゲートウェイ情報

FieldValue
ゲートウェイタイプkong
ゲートウェイ名gateway-prod-mj
ゲートウェイインスタンス名自動入力:gateway-prod-mj
説明ゲートウェイ作成プロセスをテストするためのゲートウェイ
タグtest, kr(ゲートウェイを分類するためにさらにタグを追加できます)

ステップ3. リソース設定

ゲートウェイPodリソース

ResourceValue
CPU1000m
メモリ1000Mi

データベースリソース

ResourceValue
CPU1000m
メモリ1000Mi

スライダーを使用して値を変更します。

ステップ4. デプロイ設定

フィールド
ゲートウェイオートスケーリング有効(トグルオン)
最小レプリカ数:1
最大レプリカ数:5
CPU:50
メモリ:50
値を入力するか、スライダーを使用して変更できます
Kongネームスペースmj-test
Kongストレージクラスgp2
ストレージ容量5 Gi
KongプロキシサービスタイプLoadBalancer
Kongプロキシサービスノードポート30001

ステップ5. アフィニティ設定

アフィニティを有効にし、設定します:

KeyValue
topology.kubernetes.io/zoneap-northeast-2

これにより、ゲートウェイPodが特定の可用性ゾーンにのみスケジュールされることが保証されます。

ステップ6. トレランス設定

トレランスを有効にし、追加します:

OperatorKeyValue
Equalspottrue
Existscritical

これにより、ゲートウェイPodがspot=trueまたはcriticalのような汚染を持つノードにスケジュールされることが可能になります。

ステップ7. トポロジースプレッド設定

フィールド
最大スキュー1
不満足な場合DoNotSchedule

これにより、ゲートウェイPodがゾーン全体に均等に分散され、不満足なスケジューリングを回避します。

ステップ8. システムアドオン

コンポーネント設定
Inner Redis有効
Fluent Bit有効
OpenTelemetry:有効
Elasticsearch:無効

Fluent Bitを有効にすると、ゲートウェイのログを観測パイプラインに集中させるのに役立ちます。

ステップ9. Kong設定

以下のJSONを入力します:

{
"upstream_keepalive_idle_timeout": 60,
"upstream_keepalive_max_requests": 100000,
"nginx_http_keepalive_requests": 100000,
"upstream_keepalive_pool_size": 1024
}

これらの値は、上流接続の再利用を最適化し、高パフォーマンス環境での助けになります。

ステップ10. ゲートウェイを作成

  • 下部の「ゲートウェイを作成」ボタンをクリックします。

  • ゲートウェイ詳細ページに移動し、作成されたゲートウェイを確認します。

ベストプラクティス

  • 名前に環境の接尾辞を使用します:gateway-dev、gateway-staging、gateway-prod。
  • クリーンなリソース分離のために、環境ごとに専用のネームスペースを定義します。
  • メトリクスベースのトリガーがない限り、オートスケーリングはオフにしておきます。
  • 高可用性を実現するために、アフィニティとトポロジースプレッドを一緒に使用します。
  • 監査とロールバックのために、Kong設定JSONを文書化し、バージョン管理します。