KrakenD

KrakenD 設定ファイル完全ガイド:基本構造・YAML/JSON 選択・Docker デプロイ

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

KrakenD 設定ファイルの基本構造

KrakenD の設定は 「メタ情報」+「エンドポイント定義」+「バックエンドマッピング」 の 3 層で成り立ちます。この章では、公式ドキュメント(2026 年5月版)に基づき、必須セクションとそれぞれの役割を具体例とともに解説します。設定ファイルの構造を正しく理解すれば、後続で紹介する認証やレートリミットなどの拡張機能もスムーズに組み込めます。

基本セクション

セクション 目的・概要
version 設定ファイルフォーマットのバージョン。現在は 2 が推奨されています。
name ゲートウェイ全体を識別するラベル。ログやメトリクスに自動的に付与されます。
endpoints クライアントが呼び出す URL パスと HTTP メソッド、出力形式などを列挙します。
backend 各エンドポイントが集約・変換するマイクロサービス側のエンドポイント情報です。

最小構成の YAML 例

上記のように backend はエンドポイントごとにネストして記述します。JSON でも同等に書ける点は公式ドキュメントで明記されています(2026 年5月版)。


YAML と JSON の選択基準(2026 年版)

本節では、可読性・運用コスト・ツールチェーンの親和性 という観点から、YAML と JSON のどちらを採用すべきか判断できる指標をまとめます。どちらの形式も krakend check コマンドで同様に検証可能です。

実務で使えるサンプル(認証+レートリミット)

YAML

JSON

フォーマット選択のポイント

観点 YAML の利点 JSON の利点
可読性 インデントで階層が一目瞭然。コメント記述も可能。 キーと値が明示的でパースが高速。
CI/CD での差分管理 yqgit diff --color-words が扱いやすい。 多くの言語標準ライブラリが直接サポート。
環境変数埋め込み ${VAR} の記法が自然にマッチ。 同様に文字列展開は可能だがエスケープに注意。
既存ツールチェーン プロジェクト全体で YAML が統一されている場合推奨。 既存の JSON スキーマや OpenAPI と親和性が高い。

結論:チームが主に人間の可読性と設定変更頻度を重視するなら YAML、機械処理・スキーマ検証が中心であれば JSON が適しています。


KrakenDesigner Web エディタで設定ファイルを作成・エクスポート

KrakenDesigner は公式が提供するブラウザベースの GUI です。コードを書かずにドラッグ&ドロップだけで完全な設定ファイルを生成でき、初心者から上級者まで幅広く活用できます。

手順概要

  1. エディタへアクセス
    公式サイト https://www.krakend.io/ のメニューから「Designer」ページに遷移します。2026 年4月リリースの UI がデフォルトで表示されます。

  2. エンドポイントを追加

  3. 「Add Endpoint」をクリックし、パス /api/v1/orders と HTTP メソッド POST を入力。
  4. 「Backend」タブでバックエンド URL(例:http://order-service:8080/create)と必要なマッピングルールを設定します。

  5. 拡張機能の組み込み
    左側メニューの「Extra Config」から「Auth Validator」「Rate Limit」等を選択し、シークレットや上限値を入力すると自動的に extra_config フィールドへ反映されます。

  6. 設定ファイルのエクスポート
    右上の「Export」をクリックし、形式として YAML(または JSON)を選択。「Download config.yaml」ボタンでローカルに保存できます。このファイルはそのまま Docker マウントや Kubernetes ConfigMap に利用可能です。

KrakenDesigner はリアルタイム構文チェックと UI ガイドが組み込まれているため、記述ミスを早期に検出できる点が大きなメリットです。


Docker / Docker‑Compose で設定ファイルをコンテナにマウントしてテスト

作成した設定ファイルをローカル環境で動作確認する最も手軽な方法は、公式イメージ krakend/krakend を利用してコンテナ上で起動することです。以下では 正しいフラグと環境変数の使い方 に焦点を当てます。

docker run の実行例

  • -v "$(pwd)/config:/etc/krakend" … ローカルの ./config ディレクトリをコンテナ内部にマウント。
  • run -c /etc/krakend/config.yaml … 設定ファイルのパスを直接指定(公式 CLI の推奨書式)。
  • -d オプションは デバッグモード で、詳細なリクエスト・レスポンスログが標準出力に出ます。

起動後は http://localhost:8080/health や先ほど定義したエンドポイントへアクセスし、期待通りの挙動かを確認します。

docker‑compose.yml の記述例

  • volumes で設定ディレクトリをマウントし、command 配列で公式 CLI のフラグ -c とデバッグモード -d を明示しています。
  • 公式 Docker ガイドでも同様に YAML を使用する場合は -c フラグだけで十分です。環境変数でパスを渡す方式は非推奨ですので、ここでは採用していません。

この構成で docker compose up と実行すれば、数秒で API Gateway が立ち上がりローカルテストが完了します。


主要機能実装例・バリデーション・CI/CD への組み込み

認証・レートリミット・キャッシュ・環境変数置換の実装サンプル

  • 環境変数置換${VAR} の形で記述し、Docker の -e オプションや Kubernetes の ConfigMap と組み合わせて実行時に展開されます。
  • 認証が失敗した場合は自動的に 401 を返す安全設計です。

設定ファイルのローカルバリデーション手順

  1. 構文チェック

bash
docker run --rm -v "$(pwd)/config:/etc/krakend" \
krakend/krakend:latest check -c /etc/krakend/config.yaml

エラーが出なければ設定は正しくパース可能です。

  1. デバッグモードで起動

bash
docker run --rm -p 8080:8080 \
-v "$(pwd)/config:/etc/krakend" \
krakend/krakend:latest \
run -c /etc/krakend/config.yaml -d

標準出力にリクエスト・レスポンスの詳細が流れ、curl -X POST http://localhost:8080/api/v1/payments で即座に動作確認できます。

Kubernetes へのデプロイ例

ConfigMap に設定ファイルを格納

Deployment と VolumeMount の設定

  • command で公式 CLI の run -c フラグを使用し、ConfigMap 経由でマウントした設定ファイルを指定しています。

GitHub Actions による自動デプロイ例

このワークフローは設定ファイルがリポジトリにプッシュされたときだけ実行され、kubectl apply によって ConfigMap が更新され、その後 Deployment のロールアウトが再起動されます。結果として GitOps スタイルで安全かつ即時に変更が反映されます。


まとめ

  • KrakenD の設定は version, name, endpoints, backend の四要素が核となり、公式ドキュメント(2026 年5月版)でも同様に記載されています。
  • YAML と JSON は機能面で等価です。可読性とチームのツールチェーン を基準に選択してください。
  • KrakenDesigner Web エディタを使えば、コードを書かずに完全な設定ファイル(YAML/JSON)を生成し即座にエクスポートできます。
  • Docker / Docker‑Compose では run -c <path> フラグとデバッグモード -d を組み合わせるだけで簡単にローカルテストが可能です。環境変数でパスを渡す方式は公式では非推奨です。
  • 認証・レートリミット・キャッシュ・環境変数置換などの主要機能は YAML の extra_config に記述し、krakend check で構文検証、run -d で実行確認ができます。
  • 設定ファイルを Kubernetes ConfigMap として管理し、GitHub Actions 等の CI/CD パイプラインと連携させれば、変更の自動デプロイ が実現します。

以上の手順とベストプラクティスに従うことで、2026 年最新版の KrakenD を安全かつ高速に導入でき、マイクロサービス間の API 統合基盤として有力な選択肢となります。

スポンサードリンク

-KrakenD