Kong Konnect のData Planeとして、AWS ECS(Elastic Container Service)Fargate を使ってマイクロサービスをデプロイし、API Gateway環境の構築方法を紹介します。
準備するもの
- AWSアカウント
- Kong Konnectアカウント
構築手順
Kong Konnect側
Konnectにログインし、Gateway manager
-> Data Plane Nodes
-> Configure data plane
の順でData Plane作成画面にきて、Generate Certificate
をクリックしてdocker runのコマンドが生成されます。このコマンドのパラメータが以降使いますのでコピーしていきます。
証明書が生成されたらKonnect側の作業が終わります。この証明書とkeyに改行が入っています、後でECSの環境変数として設定するため、下のコマンドで一行になるように変更します。
|
|
AWS ECS側
コンテナーの定義
AWS ECS
-> Task definitions
-> Create new task definition with JSON
でコンテナーの定義を行います。
利用するJSONは以下になります。
|
|
docker run
コマンドを参考し、以下のKong関連のパラメータを修正する必要があります。
KONG_CLUSTER_CONTROL_PLANE
KONG_CLUSTER_SERVER_NAME
KONG_CLUSTER_TELEMETRY_ENDPOINT
KONG_CLUSTER_TELEMETRY_SERVER_NAME
KONG_CLUSTER_CERT
KONG_CLUSTER_CERT_KEY
AWS側の設定に合わせて修正すべきパラメータは
logConfiguration.options
executionRoleArn
Serviceを起動
Clusterを作成した後に、ServiceをCreateします。
Serviceの作成にいくつかポイントがあります。その他は適切に設定してください。
Service Details
内のTask definition family
は先ほど作ったTaskを選択Networking
内で選択するSecurity group
では、8000
と8443
ポートを公開する必要がある外部からアクセスする必要があるため、
Public IP
をTurned onにする
設定が完了したら、ページ右下のCreateをクリックします。
動作確認
Serviceが無事起動したら、KonnectのData Plane Nodes
でECS Data Planeを確認することができます。
AWS ECS側では、Service以下のTaskで、付与されたPublic IP
のアドレスを確認できます。
アドレスにアクセスしてみると、no Route matched with those values
が返され、Kong Data Planeの構築が無事完了したことを確認できます。
|
|
まとめ
この記事では、Kong KonnectのData PlaneをAWS ECS(Fargate)上で動かすことで、最小構成でAPI Gateway環境を構築する方法を紹介しました。
軽量・省リソース
Fargateの設定はCPU: 512
/Memory: 1024
の最小構成でも動作可能 Konnect利用のため外部DB不要構築が簡単
複雑なネットワーク設定やLB構成不要。
Konnect側で発行されるdocker run
コマンドを元に、ECS Task Definition をコピー&修正するだけSaaS連携で管理不要
Konnect(SaaS)上でAPIのルーティングやセキュリティを一括管理。
データプレーン側は単純なリバースプロキシとして起動すればOK
Kong KonnectとAWS Fargateの組み合わせは、インフラ構築に手間をかけずにAPI Gatewayを試したい方に最適です。データベースやロードバランサの構成が不要で、SaaS型の管理機能とマネージドな実行環境により、最小限の構成で手軽に始められます。シンプルに導入でき、スケールにも対応できる柔軟な構成です。