Contents
Kong Gateway ハイブリッドクラウド 設定 手順:Kubernetes環境でのHelmチャート活用を解説
ITインフラエンジニアやDevOpsエンジニアにとって、マルチクラウド環境におけるAPIゲートウェイの構築は避けて通れない課題です。特にKong Gatewayのハイブリッドモードを導入する際には、Control PlaneとData Planeの分離アーキテクチャが鍵となります。本記事では、2023年時点での最新情報に基づき、Helmチャートを用いたKubernetes環境での導入手順やベストプラクティスを具体的に解説します。
HybridモードのControl Plane/Data Plane分離アーキテクチャ概要
Hybridモードは、管理機能を持つControl Planeとリクエスト処理を行うData Planeを物理的に分離したアーキテクチャです。この設計により、大規模なマルチクラウド・マルチリージョン環境でもポリシーの一元管理が可能になります。
ハイブリッドクラウド環境での役割分担
| 要素 | Control Plane | Data Plane |
|---|---|---|
| 主な機能 | 設定管理、認証、監視 | リクエスト処理、トラフィック制御 |
| 通信プロトコル | gRPC(管理用)、HTTPS(通信用) | HTTPS(Control Planeとの通信) |
| 実装場所 | センターデータセンターまたはSaaSプラットフォーム | マルチクラウド環境に分散配置 |
Control PlaneとData Planeの通信フロー
Hybridモードでは、信頼性の高いトラフィック制御を実現するために双方向TLSとJWTトークンによる相互認証が必須です。以下に通信フローを順序立てて解説します。
- Data Planeは定期的にControl Planeから設定をフェッチ
- リクエストが到着すると、Data Planeで認証・ポリシー適用が実施
- セキュリティチェックに問題がない場合、アプリケーションサーバーへの転送
Control PlaneとData Planeの通信は双方向TLSとJWTトークンによる相互認証が必要です。このセキュアな設計により、信頼性の高いトラフィック制御が可能になります。
Kong Gatewayの前提条件とインストール準備
Hybridモードを導入するには、Control PlaneとData Plane両方のインストール準備が不可欠です。以下にシステム要件と手順をまとめます。
サポートされているOS要件
- Linux: Ubuntu 20.04 LTS / CentOS 8 Stream
- macOS: 最新版(arm64対応)
- Windows: 非推奨(Kubernetes環境ではLinuxベースが必須)
公式ドキュメントによると、Kong Gateway v3.5以降のバージョンが必要です。2023年現在ではv3.7が最新リリースされています。
Control Planeインストール手順
Control Planeを導入するには、以下の手順に従います。
kong-gatewayパッケージを公式リポジトリからダウンロード- データベース(PostgreSQLまたはMySQL)を用意
- 初期設定ファイルでControl Planeモードを指定
- インストールコマンド実行例:
bash
curl -s https://github.com/Kong/kong/releases/download/3.7.0/kong-enterprise-edition-3.7.0.x86_64.rpm | sudo rpm -Uvh
2021年以降、Bintrayは廃止されているため、公式リポジトリ(GitHubリリース)を推奨します。
Data Planeインストール手順
Data Planeの導入にはControl Planeと同じバージョンのKong Gatewayが必要です。以下の手順で実施します。
- Control Planeと同じバージョンのKong Gatewayをインストール
- 設定ファイルに
control_plane_urlを指定(例:https://cp.example.com:8001) kong start --hybridコマンドで起動
注意:Data PlaneはControl Planeとネットワーク的に直接通信可能であることが必須です。
TLS認証とトークン認証による相互認証設定方法
Hybridモードでは、Control PlaneとData Planeの間でTLSとJWTトークンを組み合わせた認証が必須です。
Control Plane側での証明書発行
証明書作成手順は以下の通りです。
- CA証明書を作成(例:
openssl req -x509 -newkey rsa:4096 -days 365 -nodes -out ca.crt -keyout ca.key) - Data Plane用証明書を発行:
bash
openssl req -new -keyout data-plane.key -out data-plane.csr -nodes
openssl x509 -req -in data-plane.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -out data-plane.crt
Data Plane側の認証設定手順
以下のようにkong.confに設定を追加します。
|
1 2 3 4 |
truststore = /etc/kong/truststore.pem ssl_cert = /etc/kong/data-plane.crt ssl_key = /etc/kong/data-plane.key |
SSL証明書の有効期限は90日以内に保つ必要があります。自動リフレッシュ機能を導入することも検討しましょう。
Helmチャートを用いたKubernetes環境でのデプロイ手順
Helmチャートを使ってControl PlaneとData PlaneをKubernetesにデプロイする際の具体的手順です。
Helmリポジトリの準備
-
Kong GatewayのHelmチャートを取得:
bash
helm repo add kong https://charts.konghq.com
helm repo update -
チャートのバージョン確認(例:
helm search repo kong/gateway)
2023年時点では、Kong Gateway公式リポジトリはGitHub上に配置されているため、Helmチャートもここから取得可能です。
Custom Resource Definitionの定義
Hybridモード専用のCRDが必要な場合、以下を実行します。
|
1 2 |
kubectl apply -f https://github.com/Kong/kong-chart/releases/download/3.7.0/crds.yaml |
Releaseのカスタマイズオプション
Kubernetes環境でのカスタマイズパラメータは以下の通りです。
| パラメータ | 設定例 | 説明 |
|---|---|---|
mode |
hybrid | Hybridモード指定 |
controlPlaneUrl |
https://cp.example.com:8001 | Control PlaneのURL |
tokenSecretName |
kong-token | トークンシークレット名 |
注意:Data Planeリリースでは
--set mode=hybridを明示的に指定する必要があります。
マルチクラウド環境におけるポリシー一元管理のポイント
Hybridモードでマルチクラウド環境を管理する際、以下の2点が成功の鍵です。
グローバルな構成設定の適用方法
Control Planeでセキュリティポリシーやレート制限を一括定義し、すべてのData Planeに同期します。
- Control Planeでポリシーを作成
kong api:syncコマンドを使用してData Planeに同期- ポリシー変更時に自動更新が可能(Kong Gateway v3.6以降)
自動更新機能により、リアルタイムでのセキュリティ対応が可能です。
クラウドベンダーごとの差異対応
各クラウドプラットフォームでは、ネットワーク設定やファイアウォールの調整が必要です。
| ベンダー | 補足点 |
|---|---|
| AWS | VPCペアリング設定が必要 |
| Azure | ファイアウォールルールの最適化 |
| GCP | セキュリティグループでアクセス制限 |
各クラウドでのデータセンター間通信のレイテンシーに注意し、レプリカ数の自動スケーリング設定を検討することが重要です。
設定後の検証チェックリスト
Hybridモード導入後は以下のテストと確認項目を実施してください。
通信テスト手順
- テスト用APIを構築(例:
curl -X GET https://dp.example.com/api/test) - Control Planeのログでリクエストが正しく処理されているか確認
- 認証エラー発生時のロギングもテスト
監視メトリクスの確認項目
| メトリクス | 想定値 | 注意点 |
|---|---|---|
requests_per_second |
100~200 | 高負荷時にレート制限発動 |
response_time_avg |
50ms以下 | 値が高くならないように監視 |
error_rate |
0.1%未満 | リトライロジックの検討 |
エラーログは
/var/log/kong/error.logに集約されるため、定期的なスキャンを推奨します。
最後に
本記事では、Kong Gatewayのハイブリッドモード構築において重要な以下の点を解説しました:
- Control PlaneとData Planeの役割分担
- インストール準備と手順
- 認証設定におけるTLSとJWTトークンの組み合わせ
- HelmチャートによるKubernetesでの効率的なデプロイ
- マルチクラウド環境におけるポリシー管理戦略
- 実装後の検証チェックリスト
公式ドキュメントを参照しつつ、本記事の手順に沿ってハイブリッドモード構築を試してみましょう。