
Kong Konnectを使用してAmazon EKSにKong Gatewayを構築してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
APIの管理を効率化したい えがわ です。
Kong Konnectを使用してEKSにKong Gatewayを構築していきます。
Kongの説明は以下の記事をご確認ください。
環境
- Ubuntu 22.04.4 LTS(WSL2)
- kubectl: v1.31.0
- eksctl: 0.189.0
やってみる
基本的にKonnectに表示されている通りに進めることで構築可能です。
Kong Gateway作成画面に遷移
KonnectでKong Gatewayを作成していきます。

PlatformにはKubernetesを選択します。

EKSクラスターを作成
eksctlでEKSクラスターを作成していきます。
eksctl create cluster --name eks-kong-gateway-demo --region us-east-1
ノードタイプを指定する際は--node-type t3.medium等で指定可能です。
名前空間を作成
kongの名前空間を作成しておきます。
kubectl create namespace kong
Helmリポジトリを追加
Helmで利用できるKongのチャートリポジトリを追加します。
チャートとは、アプリケーションパッケージを定義したものです。
helm repo add kong https://charts.konghq.com
リポジトリ情報を更新する
Helmリポジトリの情報を最新の状態に更新します。
helm repo update
Konnect用証明書の生成と設定
Konnectを利用するためには、証明書の設定が必要です。
証明書を生成
Konnectの画面に表示されている証明書情報を以下のファイル名でローカルに保存します。

- 公開鍵を tls.crt として保存
- 秘密鍵を tls.key として保存
Kubernetesシークレットを作成
生成した証明書を使用してKubernetesシークレットを作成します。
このシークレットは次の手順で作成するvalues.yamlファイル内で参照されます。
kubectl create secret tls kong-cluster-cert -n kong --cert=/{PATH_TO_FILE}/tls.crt --key=/{PATH_TO_FILE}/tls.key
{PATH_TO_FILE}を置き換えて実行してください。
デプロイ
デプロイ用の設定ファイルを作成します。
設定ファイルにはHelmチャートをデプロイする際に必要なカスタマイズ情報が含まれています。
values.yamlをローカルに作成し

デプロイします。
helm install my-kong kong/kong -n kong --values ./values.yaml
Data Plane Node has been FoundとなればKong gatewayの構築が完了となります。

動作確認
サービスとルートを設定して動作確認を行っていきます。
今回はリクエストパラメータをオウム返ししてくれるサービス「httpbin」を使用します。
サービスを追加
サービスを追加していきます。
Nameにサービス名を設定し、Upstream URLにURLを設定します。

ルートを作成
ルートを設定していきます。
Nameにルート名を設定し、pathにルートを設定します。

エンドポイントのURLを確認
Helmチャートをデプロイするとロードバランサーが作成されています。
AWSコンソールからロードバランサーのエンドポイントを確認します。

APIを実行
CURLで実行してみます。
ロードバランサーのエンドポイントに対してリクエストを行います。
egawa@HL01559:eks-kong-gateway-demo$ curl -G "http://xxx.us-east-1.elb.amazonaws.
com/echo"
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Connection": "keep-alive",
"Host": "httpbin.apim.eu",
"User-Agent": "curl/7.81.0",
"X-Forwarded-Host": "httpbin.apim.eu",
"X-Forwarded-Path": "/anything",
"X-Kong-Request-Id": "99120d1dce6fde19041b75365a891446"
},
"json": null,
"method": "GET",
"origin": "192.168.53.123, 10.244.0.1",
"url": "http://httpbin.apim.eu/anything"
}
想定通りのレスポンスを得られました!
ルートを指定しない場合は以下のようにルートが設定されていないエラー返されます。
egawa@HL01559:eks-kong-gateway-demo$ curl -G "http://xxx.us-east-1.elb.amazonaws.com/"
{
"message":"no Route matched with those values",
"request_id":"76366b57ef05a365cdf8071598a76228"
}
さいごに
今回はKonnectを使用してEKSにKong Gatewayを構築してみました。
Konnectを使用することでEKSにも簡単にKong Gatewayを導入することができます。
この記事どなたかの参考になれば幸いです。










