Slide 1

Slide 1 text

Kong Gateway から読みとく、 API統合・API連携サービス 最新情報 2023/7/26 CX事業本部 田中 孝明 1

Slide 2

Slide 2 text

自己紹介 2 ● CX事業本部 Delivery部 サーバーサイドチーム・チームマネージャー 
 ● 福岡オフィス所属
 ● 2023 Japan AW All AW Certifications Engineers 
 ● 2022 APN ALL AW Certifications Engineer 
 ● 2021 APN AW op Engineer 
 ● Google Cloud Partner op Engineer 2023 
 ● サウナ・スパ プロフェッショナル 
 田中 孝明 ( akaaki ANAKA) こーめい


Slide 3

Slide 3 text

議題 話すこと •背景説明 •Kong について •Kong を試す •Kong on AWS ワークショップ •Kong Gateway プラグインについて 3

Slide 4

Slide 4 text

議題 話さないこと •Kong 使い方、詳しい説明、内部 仕様 •そ 他周辺技術 説明 •認証・認可について •マルチクラウド 推奨 4

Slide 5

Slide 5 text

こ スライドを聞くモードにする 5

Slide 6

Slide 6 text

アプリケーション開発 現場 より複雑に、しかし提供速度 迅速に •関連サービスが増加し、相互に連携し合う •個別 エンドポイント、プロトコル、認証方法へ 対応 •可用性・パフォーマンス 意識 •チーム内 コミュニケーションコストを極力下げる 6

Slide 7

Slide 7 text

※フィクションです 7 hoge サービス hoge API

Slide 8

Slide 8 text

※フィクションです 8 hoge サービス hoge API huga API 新チーム加入、新たな API群が誕生

Slide 9

Slide 9 text

※フィクションです 9 hoge サービス hoge API huga API CM APIs として公開しよう

Slide 10

Slide 10 text

※フィクションです 10 hoge サービス hoge API huga API CM APIs

Slide 11

Slide 11 text

※フィクションです 11 hoge サービス hoge API huga API CM APIs 肥大化してきた・・・

Slide 12

Slide 12 text

※フィクションです 12 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API 爆誕

Slide 13

Slide 13 text

※フィクションです 13 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API オンプレミスで管理が必須

Slide 14

Slide 14 text

※フィクションです 14 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API 他 会社 API を買収 Other API

Slide 15

Slide 15 text

※フィクションです 15 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API

Slide 16

Slide 16 text

※フィクションです 16 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ

Slide 17

Slide 17 text

※フィクションです 17 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない

Slide 18

Slide 18 text

※フィクションです 18 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない 別々に認証が必要

Slide 19

Slide 19 text

※フィクションです 19 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない 別々に認証が必要 デプロイ先がバラバラ

Slide 20

Slide 20 text

※フィクションです 20 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない 別々に認証が必要 デプロイ先がバラバラ SOAP と JSON が混ざってる

Slide 21

Slide 21 text

※フィクションです 21 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない 別々に認証が必要 デプロイ先がバラバラ SOAP と JSON が混ざってる セキュリティがバラバラ

Slide 22

Slide 22 text

※フィクションです 22 hoge サービス hoge 1st API huga API CM APIs hoge 2nd API History API Other API エンドポイントがバラバラ パスに統一感がない 別々に認証が必要 デプロイ先がバラバラ SOAP と JSON が混ざってる セキュリティがバラバラ ログどこにある ・・・

Slide 23

Slide 23 text

API を楽に統合したい 23

Slide 24

Slide 24 text

API アグリゲータ(API ゲートウェイ) 複数 異なるソースから提供される API を集約・統合し、一つ 統合的な API として提供する仕組み •複数 API を統合することで公開先(開発者)が利用する際に導入コス トを下げる •セキュリティレイヤ 追加による共通 認証・セキュリティ 追加、共通 機能 追加を容易に •パフォーマンス・運用改善(ログ 統合など) 24

Slide 25

Slide 25 text

API アグリゲータ(API ゲートウェイ) API アグリゲータ(API ゲートウェイ)に求められるも •高いパフォーマンスと信頼性 •低コストでスケーラブルに運用 •開発体験 •容易なライフサイクル管理 •特定 プラットフォームに依存しない •複数 プロトコルをサポート 25

Slide 26

Slide 26 text

Amazon API Gateway AWS フルマネージドサービス •インフラ 管理、API 管理、認証と認可、スロットリングをフルマネージ ドで行える •Lambda / 各種 AWS サービス / バックエンド(HTTPアクセス)と 親和 性が高い •制限内で利用する場合 ベストな選択 26

Slide 27

Slide 27 text

27

Slide 28

Slide 28 text

Kong 軽量・高速・柔軟なクラウドネイティブな API ゲートウェイ •Nginx をベースにしたスケールアウトが容易なアーキテクチャ •豊富なプラグインによる機能拡張 •認証・認可、API 管理プラットフォームに必要なセキュリティを提供 •オンプレミス、クラウド両方で利用可能 28

Slide 29

Slide 29 text

Kong 軽量・高速・柔軟なクラウドネイティブな API ゲートウェイ •管理者API でAPIによる設定・管理ができるため自動化も可能 •Kong Manager という GUI で視覚的に設定できる 29

Slide 30

Slide 30 text

Kong フルライフサイクル API 管理市場分野 リーダー 30 https://www.xlsoft.com/jp/products/kong/kong.html Completeness of Vision(ビジョン 完全性) 実行能力(Ability to Execute)

Slide 31

Slide 31 text

Kong デジタル庁からも推奨 API ゲートウェイに認定 31 https://prtimes.jp/main/html/rd/p/000000006.000098201.html

Slide 32

Slide 32 text

Kong SERVICE と ROUTE •SERVICE 上流 アプリケーションを抽象化したも で1対多 関係 がある でレート制限など、高度な管理動作を作成できる •ROUTE Kong Gateway を通じて公開されるエンドポイントにマップ され、1つ ROUTE で複数 エンドポイントを参照できる 32

Slide 33

Slide 33 text

Kong レート制限 •DoS 攻撃 防止、Web スクレイピングなど 過剰なAPIアクセスに対 抗する •Rate Limiting プラグイン を使用してクライアントにレート制限を課すこと ができ、期間内に実行できるリクエスト 数が制限される 33

Slide 34

Slide 34 text

Kong ロードバランシング •負荷分散により、ここ リソースへ 過負荷を防止 •サーバー 一つが利用できない場合、全て トラフィックを動作中に サーバーにルーティングさせる 34

Slide 35

Slide 35 text

Kong プランごと 利用できる機能 35

Slide 36

Slide 36 text

使ってみる 36

Slide 37

Slide 37 text

デモ環境 37 Kong Gateway hoge API

Slide 38

Slide 38 text

デモ環境 EC2上に Kong Gateway を展開 •PostgreSQL をインストール(DBレスモードで 使用しない) •Kong インストール、サービス起動 •それぞれ API を SERVICE に登録 •SERVICE から ROUTE を登録 38

Slide 39

Slide 39 text

デモ環境 39 Kong Gateway hoge API

Slide 40

Slide 40 text

デモ環境 40 Kong Gateway hoge API

Slide 41

Slide 41 text

Kong on AWS ワークショップ 41 https://catalog.us-east-1.prod.workshops.aws/workshops/b3f4087a-666e- 402f-aa4d-dbfcfc2d543f/ja-JP

Slide 42

Slide 42 text

Kong on AWS ワークショップ Amazon EKS + モニタリングを2時間程度で学べる •Kong Enterprise を Amazon EKS 上に展開 •認証についても触れている •Prometheus / Grafana を利用したモニタリング 設定方法 •Amazon CloudWatch にメトリクスログを出力する方法 42

Slide 43

Slide 43 text

Kong on AWS ワークショップ 43

Slide 44

Slide 44 text

Kong Gateway プラグインについて 44

Slide 45

Slide 45 text

Kong Gateway プラグイン Kong とサードパーティが公開している便利プラグイン •Kong Gateway Lua また Go モジュールをロードして実行する ように設計された Lua アプリケーション •プランによって利用できるプラグインに違いがある •利用可能なも プラグインHub をみてみる •https://docs.konghq.com/hub/ 45

Slide 46

Slide 46 text

OpenID Connect サードパーティ IdP と 統合が可能に •Kong を OAuth 2.0 リソースサーバーとして実装可能に •認証情報と付与 サポート (JWT / リフレッシュトークン / …etc) •複数 Open ID Connect プロバイダーでテスト済み • Auth0 / Amazon AWS Cognito / Google / Microsoft Azure Active Directory / Microsoft Active Directory Federation Services / Microsoft Live Connect / Okta / Yahoo! / …etc 46 https://docs.konghq.com/hub/kong-inc/openid-connect/

Slide 47

Slide 47 text

JWT プラグイン 47 https://www.youtube.com/watch?v=qFixsA6V8es&list=PLg_AhYkg50vjW eooT_omAAF2gFtrCaA49&index=4

Slide 48

Slide 48 text

Bot Detection 最も一般的なボットからサービスまた ルートを保護 •カスタムクライアント 許可リスト・拒否リストを設定 •リクエストごとにチェックされるルール 基本リストが既に含まれている • https://github.com/Kong/kong/blob/master/kong/plugins/bot-detec tion/rules.lua 48 https://docs.konghq.com/hub/kong-inc/bot-detection/

Slide 49

Slide 49 text

Request Transformer サーバーに送る前 リクエストを変換 •リクエストに必要なパラメータを追加・削除(加工)しておくることができ る、独自 パラメータを処理する に有効 •クエリ文字列・ヘッダーを追加 •Advanced プラグインでリクエスト 本文で許可されるパラメータ リス トを制限することもできる 49 https://docs.konghq.com/hub/kong-inc/request-transformer/

Slide 50

Slide 50 text

Response Transformer クライアントに送る前 レスポンスを変換 •削除、名前変更、置換、追加が可能 •特定 ステータスコードを持つ応答に変換を制限することもできる •Advanced プラグインで配列・ネストされたオブジェクト 処理も可能に 50 https://docs.konghq.com/hub/kong-inc/response-transformer/

Slide 51

Slide 51 text

AWS Lambda Kong Gateway から AWS Lambda を呼 出す •デフォルトで MIME タイプ: application/x-www-form-urlencoded を 使用してペイロードを送信する •AWS Request Signing など プラグインを組み合わせてセキュアに 51 https://docs.konghq.com/hub/kong-inc/aws-lambda/

Slide 52

Slide 52 text

まとめ 52

Slide 53

Slide 53 text

まとめ •設計思想・認証・プラットフォームが違う API 群を束 て共通 機能や セキュリティを追加したい時 候補に •さまざまなユースケースに対応したプラグイン、必要であれ 自前でプ ラグインを作成することも可能 •オンプレミス・クラウドなどプラットフォームに依存しないスケーラブルな API 統合環境 候補に 53

Slide 54

Slide 54 text

54