API Gateway Creation
概要
API Gatewayの作成は、APIMシステムを通じてAPIを公開および管理するための最初のステップです。APIMのインフラストラクチャのような実際の本番環境では、Gatewayの設定はスケーリング、トラフィック分散、ログ転送、DNSマッピングを考慮する必要があります。このチュートリアルでは、例を用いてプロダクショングレードのゲートウェイを作成する手順を案内します。
前提条件
始める前に、以下を確認してください:
- APIMコンソールへのAdministrator アクセス権があります。
- Projectが作成されています(例:pj-test-01)。
ステップバイステップチュートリアル
ステップ1. ゲートウェイ作成ページにアクセス
- APIMコンソールにログインします。
- プロジェクトを選択:pj-test-01。
- ゲートウェイ管理に移動します。
- 「ゲートウェイを作成」ボタンをクリックします。
ステップ2. ゲートウェイ情報
Field | Value |
---|---|
ゲートウェイタイプ | kong |
ゲートウェイ名 | gateway-prod-mj |
ゲートウェイインスタンス名 | 自動入力:gateway-prod-mj |
説明 | ゲートウェイ作成プロセスをテストするためのゲートウェイ |
タグ | test, kr(ゲートウェイを分類するためにさらにタグを追加できます) |
ステップ3. リソース設定
ゲートウェイPodリソース
Resource | Value |
---|---|
CPU | 1000m |
メモリ | 1000Mi |
データベースリソース
Resource | Value |
---|---|
CPU | 1000m |
メモリ | 1000Mi |
スライダーを使用して値を変更します。
ステップ4. デプロイ設定
フィールド | 値 |
---|---|
ゲートウェイオートスケーリング | 有効(トグルオン) 最小レプリカ数:1 最大レプリカ数:5 CPU:50 メモリ:50 値を入力するか、スライダーを使用して変更できます |
Kongネームスペース | mj-test |
Kongストレージクラス | gp2 |
ストレージ容量 | 5 Gi |
Kongプロキシサービスタイプ | LoadBalancer |
Kongプロキシサービスノードポート | 30001 |
ステップ5. アフィニティ設定
アフィニティを有効にし、設定します:
Key | Value |
---|---|
topology.kubernetes.io/zone | ap-northeast-2 |
これにより、ゲートウェイPodが特定の可用性ゾーンにのみスケジュールされることが保証されます。
ステップ6. トレランス設定
トレランスを有効にし、追加します:
Operator | Key | Value |
---|---|---|
Equal | spot | true |
Exists | critical |
これにより、ゲートウェイ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を文書化し、バージョン管理します。