API Management ツールの Kong を触ってみた

こんにちは。エクセルソフトの田淵です。

今回は API Management ツールの Kong を Docker で動かしてみます。
Dockerについては、弊社ページUbuntuにインストールしたエントリー などをご参照ください。

2019/9/27 更新しました

Kong インストール

最初にコンテナ同士が発見や通信ができるようにカスタムネットワークをを作ります。Docker 環境で以下を実行します。

次に Postgres のデータベースを起動します。

1行バージョン

次にデータベースをマイグレーションします。KONG_DATABASE の環境変数で利用しているデータベース(Casandora と Postgres があり、今回は Postgres を使用しています)を指定します。

1行バージョン

以下のようなメッセージが表示され、データベースの準備ができます。

準備が完了したら、Kong のコンテナを起動します。

1行バージョン

起動を確認します。

API の追加と確認

API の開発は、Admin API ポートの各種エンドポイントに POST/UPDATE/DELETE などでデータを送って行っていきます。ローカルの Docker で動かしている場合は、標準で localhost:8001 が Admin API のポートです。

最初に Service を追加します。

1行バージョン

以下のようなレスポンスが返ってくれば成功です。

POST データに含める name が作成した Service の名前(一意である必要があります)で、url が転送先の API のエンドポイントです。今回は httpbin を使用します。

次に作成したサービスにルートを追加します。

1行バージョン

次のようなレスポンスが返ってくれば成功です。

Routes は指定した Host がリクエストヘッダーにあった場合に、紐付けた Service の返信を返す設定を行います。

アクセスして確かめてみます。動作しているユーザー向けポートはデフォルトでは 8000 で、先ほど作成した Route では example.com のヘッダーを受け付けるので、次のコマンドでアクセスしてみましょう。

1行バージョン

次のようなレスポンスが返ってきて、正しく転送されていることがわかります。

ここでは、url が example.com になっていることに注目しましょう。

同じ URL にもう一度アクセスしてみましょう。

今度は Kong がキャッシュしているので Kong のレイテンシーが 0 になっているのが分かります。

まとめ/次のステップ

Kong を使用して API を Forward して提供できることが分かりました。次は各種プラグインを使用して認証やアクセス制御などを行ってみます。

試してみてください

ダウンロード方法は こちら をご覧ください。OSS 版は API Management のみで、Enterprise には Analytics や Developer Portal の機能とサポートが付いてきます。まずは OSS 版で試していただくのが良いかと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする