LoginSignup
2
1

Kong KonnectのDedicated Cloud Gatewayを無料枠で試してみる

Last updated at Posted at 2024-04-17

4/16にKongがDedicated Cloud Gatewayというのを発表した。
これは従来はProxyとなるDataPlaneを自環境に置く必要があったのだが、Dedicate Cloud GatewayではKongのSaaS側に置くようにすることが出来るようになる。
20240417090002.png
About Gateway Managerより引用。Hybrid contol planeが従来の構成)

機能のオフィシャルな説明はこちら
Data Planeの運用をユーザがする必要がなくなるため、以下のようなメリットがありそう。

  • 設計・運用不要でアップグレードも自動化される
  • 設計・運用が不要なため、サービスのリリースも早く出来る
  • スケールも容易なため、サービスの拡張がしやすくなる

これを試してみる。
Konnectは無料枠で$500ほど割り当てられるので、この枠で頑張る。

必要なもの

今回の検証では以下が必要となる。

  • Konnectにアクセス出来る環境
  • Konnectのアカウント
  • クレジットカード
  • deck CLI
  • ドメイン

deckCLIは設定を流し込むのに使うが、UIで慣れてる人はなくても設定できるので必須ではない。
ドメインも今回検証で利用したが、なくてもEdgeDNSから参照できるため問題ない。
アカウントは無料で作れるので、基本的にはブラウザとクレジットカードがあれば試すことが出来る。
なお、Dedicated Cloudを使うには無料枠でもクレジットカードの登録が必須となるため、その点は注意が必要。
(検証をテンポ良く行い、検証後すぐに環境を削除すれば無料枠で収まる)

検証

Dedicated Cloud Gatewayのデプロイ

Konnectにログインした後、左サイドバーのGateway ManagerからNew Control Plane->Kong Gatewayをクリック。
20240417084455.png

Kong Gatewayの設定画面になるので、Nameにそれっぽい名前を入れる。
証明書は今回はお試しなので用意せず、内部で自動生成されるものを使う。
Start Your Data Plane NodesでDataPlaneをどこに配置するかを聞かれるので、Dedicated Cloud Instancesを選択する。
選択すると無料枠の場合はクレジットカードの登録を求められる。
20240417090931.png
クレジットカードの情報を登録し、Kong Gatewayの設定画面に戻ると先に進めるようになるので、I agree to the terms and conditionsにチェックを入れてNext Stepで先に進む。

次の画面でDataPlaneの設定を行う。
20240417091437.png
各項目は以下の通り。

  • Select a Version:バージョンを指定する
  • Configure Mode:スケールのモードを指定する
    • Autopilot:オートスケールを有効にする
    • Custom:3種類のサイズの中からインスタンスの設定を選ぶ
  • Configure Cluster:ControlPlaneの配置先を選ぶ。現状はAWSのみだが将来的にはAzure等も選べる模様。またRegionやNodeなども指定できる。
  • API Access:APIの公開設定を選ぶ

ここではお試しなので、Configure Mode->Custom->Dev / Stagingを選び、RegionTokyoとし、それ以外はデフォルトで設定した。
なお、この際左下にコストが表示される。
20240417093808.png
現時点での設定では無料枠でも収まりそうだ。

Create Clusterをクリックしてクラスタを作成する。
しばらく作成中の画面となり、Cloud Cluster Has Been Configuredが表示され続ける。
また、Data Plane NodesにはAWS上にインスタンスが作成され、初期化中(Initializing)なのが確認できる。
20240417094254.png
初期化には20分くらい掛かるので気長に待つ。
しばらくすると以下のような感じでData Planeが作成される。
20240417101108.png

次にData Planeにアクセスするためのドメインの設定をする。ここはドメインを持っていない人はスキップしてOK。
Konnectの左サイドバーのCustom DomainsからNew Custom Domainをクリックし、自分が持っているドメインを入力する。
例えばhogehoge.comを持っていて、Data Planeにはkonnect-dp.hogehoge.comでアクセスしたい場合は以下のような感じになる。
20240417105501.png
するとCNAMEとContentが表示されるので、これをドメインレジストラ側で設定する。Route53の場合は以下のような感じになる。
20240417105806.png
(自分はRoute53を使っていないのでCustom Domainsから引用)
登録後、Custom Domainsの登録したドメインのStatusがVALIDになればOK。
20240417105840.png

動作確認

ここではhttpbin.orgのipを表示させるURL(https://konnect-dp.hogehoge.com/ip)に行くようService,Routeを作成する。
設定はdeckで行う。
まず、設定をdeckで流し込むためにTokenを取得する。
Konnect上で右上の自分のアカウントをクリックし、Personal Access Tokens->Generate TokenからTokenを取得し環境変数に設定する。

export KONNECT_TOKEN=kpat_ER1xxx

念の為接続確認する。deck gateway pingで以下のようなメッセージが取得できればOK。

$ deck gateway ping --konnect-token $KONNECT_TOKEN
Successfully Konnected to the demo organization!

deckで流す設定ファイルを作成する。

cat <<EOF > ./simple.yaml
_format_version: "3.0"
_konnect:
  control_plane_name: dedicated
services:
- host: httpbin.org
  name: httpbin-ip
  path: /ip
  port: 80
  protocol: http
  routes:
  - name: ip
    paths:
    - /ip
    methods:
    - GET
EOF

設定をKonnect側に反映する。

deck gateway sync simple.yaml --konnect-token $KONNECT_TOKEN

なお、2回目以降でsyncすると、以下のようなエラーが出る。

Error: 3 errors occurred:
	while processing event: Delete sni konnect-dp.hogehoge.com failed: HTTP status 400 (message: "Entity with tag \"konnect-managed\" is immutable.")
	while processing event: Delete sni xxxxxxx.aws-ap-northeast-1.edge.gateways.konghq.com failed: HTTP status 400 (message: "Entity with tag \"konnect-managed\" is immutable.")
	while processing event: Delete sni xxxxxxx.gateways.konghq.com failed: HTTP status 400 (message: "Entity with tag \"konnect-managed\" is immutable.")

Konnect側で自動設定された項目で変更不可の領域があり、そこにsyncをかけたためエラーが出ているっぽいが、他の設定値は反映されるのでおそらく無視してOK。
設定反映後、https://<設定したドメイン>/ipにアクセスしてみる。

$ curl https://konnect-dp.hogehoge.com/ip
{
  "origin": "xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx"
}

上記のようにhttps://httpbin.org/ipにアクセスした結果と同じものが取得でき、正常にData Planeとして利用できていることが確認できる。

次にEdgeDNSからもアクセス出来ることを確認する。
Konnectの左サイドバーからGateway Managerから作成したGatewayを選択しOverview画面に移動する。
その後で右上のConnectをクリックするとPublic Edge DNSが表示されるので、このアドレスをコピーする。
20240417111440.png
ドメインでアクセスした時と同じようにcurlを叩いてみる。

$ curl https://xxxxxx.gateways.konghq.com/ip
{
  "origin": "xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx"
}

同じようにIPが取得できることが確認できる。

最後に今回の検証でかかった費用だが、5ドル程度であった。
Konnectの左サイドバーのPlan and Usageで確認できる。
20240417111743.png
(別件の検証で60ドル近く使っていて、441ドル残った状態で検証をスタートしている)
ということで、無事無料枠で収まった。

最後に作成したGatewayを削除すること。
20240417111937.png

所感

今まではKong Gatewayを使うのにVMなりK8sなり何かしら環境を立てる作業が必要だったのが、手ぶらで構築できるようになったので管理がかなり楽になりそうだと思われる。
環境を用意するとKongだけでなくOS・インフラ側のメンテも必要になるため、その辺りがなくなるのは運用側からしたら大きなメリットだと思われる。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1