APIゲートウェイKongと管理UI Kongaの導入運用ガイド

概要

KongはOpenResty(Nginx + Luaモジュール)を基盤とした高可用性・拡張性の高いAPIゲートウェイソリューションです。NGINXとApache CassandraまたはPostgreSQLで構築され、RESTful APIによる設定管理を提供します。水平スケーリングが可能で、複数のKongサーバーにリクエストを分散処理できます。

主要コンポーネント

  • Kong Server:NGINXベースのAPIリクエスト処理サーバ
  • Cassandra/PostgreSQL:操作データストレージ
  • Konga:Web管理インターフェース

機能特性

  • 高度なルーティングと負荷分散
  • JWT/Basic認証によるAPI保護
  • SSL/TLS終端とL4/L7トラフィック処理
  • プラグインシステムによる機能拡張
  • Kubernetesネイティブサポート

Docker環境構築

Docker Composeを使用した効率的な導入方法:

# Docker Composeインストール
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

コンポーザ定義

# docker-compose.yml
version: '3.8'

services:
  db-service:
    image: postgres:14
    environment:
      POSTGRES_USER: kong_admin
      POSTGRES_PASSWORD: secure_pass
      POSTGRES_DB: kong_db
    networks:
      - gateway-network

  kong-setup:
    image: kong:3.4
    command: "kong migrations bootstrap"
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: db-service
      KONG_PG_USER: kong_admin
      KONG_PG_PASSWORD: secure_pass
    depends_on:
      - db-service
    networks:
      - gateway-network

  gateway:
    image: kong:3.4
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: db-service
      KONG_PG_USER: kong_admin
      KONG_PG_PASSWORD: secure_pass
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
    ports:
      - "8080:8000"
      - "8443:8443"
      - "8001:8001"
    healthcheck:
      test: ["CMD", "kong", "health"]
      interval: 10s
    depends_on:
      - kong-setup
    networks:
      - gateway-network

  admin-ui:
    image: pantsel/konga:0.15.0
    environment:
      NODE_ENV: production
      DB_ADAPTER: postgres
      DB_HOST: db-service
      DB_USER: kong_admin
      DB_PASSWORD: secure_pass
      DB_DATABASE: konga_db
    ports:
      - "1337:1337"
    depends_on:
      - gateway
    networks:
      - gateway-network

networks:
  gateway-network:
    driver: bridge

起動手順

docker-compose up -d
docker-compose ps

基本操作例

ルーティング設定の実装フロー:

  1. Konga UIにアクセス(http://<host>:1337)
  2. 管理者アカウント作成
  3. Kong接続設定(Admin APIエンドポイント指定)
  4. Servicesメニューで新規サービス追加
  5. Routes設定でパスベースルーティング定義

動作検証用ホスト設定例:

# /etc/hosts
192.168.10.102 api.example.com

リクエストフロー:

クライアント → DNS解決 → Kongゲートウェイ → ルーティング判定 → バックエンドサービス → レスポンス返信

タグ: kong Konga APIゲートウェイ マイクロサービス コンテナオーケストレーション

6月18日 21:10 投稿