Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kong Gateway から読みとく、 API統合・API連携サービスの最新情報 #devio2023

Kong Gateway から読みとく、 API統合・API連携サービスの最新情報 #devio2023

7/24 に福岡で開催された DevelopersIO 2023 福岡 で「Kong Gateway から読みとく、 API統合・API連携サービスの最新情報」という内容で登壇してきました

Takaaki Tanaka

July 24, 2023
Tweet

More Decks by Takaaki Tanaka

Other Decks in Technology

Transcript

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

    View full-size slide

  2. 自己紹介 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) こーめい


    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  23. API を楽に統合したい
    23

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  35. 使ってみる
    36

    View full-size slide

  36. デモ環境 37
    Kong Gateway
    hoge API

    View full-size slide

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

    View full-size slide

  38. デモ環境 39
    Kong Gateway
    hoge API

    View full-size slide

  39. デモ環境 40
    Kong Gateway
    hoge API

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  42. Kong on AWS ワークショップ 43

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  45. 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/

    View full-size slide

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

    View full-size slide

  47. 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/

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  50. 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/

    View full-size slide

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

    View full-size slide