---
title: Kong活用事例について
tags: 
author: [Yahoo!デベロッパーネットワーク](https://convert.docswell.com/user/ydnjp)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/5G781NVZED.jpg?width=480
description: Kong活用事例について
published: May 17, 19
canonical: https://convert.docswell.com/s/ydnjp/KW821Z-2019-05-17-123022
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/5G781NVZED.jpg)

Kong活用事例について
ヤフー株式会社
崔俊
May 16th, 2019


# Page. 2

![Page Image](https://bcdn.docswell.com/page/ML7LQP51ER.jpg)

自己紹介
崔俊
• プラットフォームエンジニア
• API Gatewayチーム開発メンバー
• アルゴリズムで問題解決するのが好き
趣味
• ゲームいろいろ
• 最近ハマっているゲーム：Days Gone(PS4)
image: ソニー・インタラクティブエンタテインメント社「Days Gone」スクリーンショット
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/54EM1435JW.jpg)

アジェンダ
1. ヤフーについて
2. Kongを選んだ理由
3. Kongによるマルチデータセンタープラットフォームアーキテクチャ
4. ヤフー内のKongユースケース
5. まとめ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/ZPERLWQZE9.jpg)

1.ヤフーについて
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/NP7XWP51EX.jpg)

Yahoo! JAPAN
100+
サービス
150,000+
サーバ
出典：Yahoo!プロモーション広告ホームページ、Yahoo! JAPAN媒体資料（2018年12月版）
https://promotionalads.yahoo.co.jp/online/yj_mediasheet201812.html
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
74,500,000,000
PV/月
(2018年度平均)
image: アフロ
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/637KVD6MED.jpg)

技術面における現在の状況
・状況
・多くのサービスはモノリシックなアプリケーションで構成されており、
Openstack VM上で動いている
・問題
・開発スピードが遅い
・運用メンテナンスコストが高い
・計画
・プラットフォームアーキテクチャのモダン化
・モノリシックからマイクロサービスへ移行
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4LJ3MR6275.jpg)

Internal Platforms for Microservices Architecture
プラットフォーム
ソリューション
PaaS
Pivotal Cloud Foundry
CaaS
Kubernetes
FaaS
Apache OpenWhisk
MQ
Apache Pulsar
API Gateway
Kong
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/V8JD6YV6EG.jpg)

2.Kongを選んだ理由
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4VEPY6RZE8.jpg)

API Gatewayで実現したいもの
1. 社内に乱立しているAPIを集約することでAPIの管理を容易にする
・ ✅ Kongが特化している機能
2. 現在サービス毎に実装している汎用的な処理を統合し、サービスの開発コストを下げる
・ ✅ Kong pluginsで様々な処理を挟むことができる
3. モノリシックなアプリケーションからマイクロサービスへ段階的に移行する
・ ✅ Kongの動的なルーティング機能とカナリアプラグイン
✅ 上記3つの項目はKongで実現できる
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 10

![Page Image](https://bcdn.docswell.com/page/L27VG3RM7Q.jpg)

ヤフー社内の要件
・一つのプラットフォームを複数の利用者が共有出来る（マルチテナント）
・✅ Kong EEのワークスペース機能がマルチテナントを実現
・エンドポイントに対して社内の認証機構を組込むことが出来る
・✅ 自分でKong pluginが開発出来る
・ダウンタイムなしでルーティングの設定ができる
・✅ ルーティング情報はAdmin API経由で動的に設定ができる
✅ Kongは全ての要件を満たす
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 11

![Page Image](https://bcdn.docswell.com/page/Z5JG83MXJL.jpg)

3.Kongによるマルチデータセンター
プラットフォームアーキテクチャ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/V47Q95R57P.jpg)

マルチデータセンターの重要性
・日本は毎年多くの地震が発生する
・2018年
・2179回 (震度１以上)
・11回 (震度５以上)
・ヤフーでは災害が起こった際に、被災地の住民がスムーズに避難し適切な行動をとる
ために有用な情報をリアルタイムで発信している
・ヤフーサービスは地震によってある拠点のサーバが落ちても他の拠点でサービスが継
続できるように設計しておく必要がある
・東西冗長構成が非常に重要
出典：気象庁ホームページ、平成 30 年（2018 年）の日本の地震活動 - 気象庁
https://www.jma.go.jp/jma/press/1901/11a/1812jishin2018.pdf
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/DKE4X98VE1.jpg)

マルチデータセンター構成（通常時）
External
client
L7 Router
for FE (east)
Frontend
（east）
Kong
(east)
Backend
(east)
L7 Router
for FE (west)
Frontend
（west）
Kong
(west)
Backend
(west)
GSLB
・GSLB (Global Server Load Balancer)は複数のサイト間でロードバランスを行う機能
・東西のKongクラスタはそれぞれのデータベースを参照しており、同期はされてない
・東側Kongクラスタは通常時には東のbackendにプロキシされている
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 14

![Page Image](https://bcdn.docswell.com/page/PL71NK24EG.jpg)

マルチデータセンター構成（非常時）
External
client
L7 Router
for FE (east)
Frontend
（east）
Kong
(east)
Backend
(east)
L7 Router
for FE (west)
Frontend
（west）
Kong
(west)
Backend
(west)
GSLB
・GSLBは定期的にL7 Routerのhealth状況をチェック
・東データセンターが機能停止した場合、GSLBは全てのリクエストを反対拠点にプロキシ
従って、全体としてはサービスの提供を継続できる
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/8G7W4DRZJ2.jpg)

4.ヤフー社内のKongユースケース
1)Kong本体の機能
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/W4JZ2GRL73.jpg)

#1 カナリアリリース
・Openstack VMからPaaSに移行
・例
Kong
1. 10%のリクエストをPaaSに向ける
Canary
Plugin
2. 一週間様子を見る
3. 問題なければ50%のリクエストをPaaSに向ける
4. 一週間様子を見る
90% of requests
5. 全てのリクエストをPaaSに向ける
10% of requests
・カナリアリリースで安全にマイクロサービス
へ移行できる
OpenStack VM
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
PaaS


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KYE6VYRMJV.jpg)

#2 レート制限
レート制限を超えていない場合
Kong
API node
レート制限を超えている場合
・レート制限を超えた場合、Kong側で設定した特定のレスポンスを返す
・backend側の想定数以上のリクエストがプロキシされないように対策
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/5GE5DG8QE4.jpg)

4.ヤフー社内のKongユースケース
2)独自で開発したPlugin
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/V9728YKW7R.jpg)

#3 Athenz RBAC認証
Token
Client
Kong
Backend API
Athenz-auth
plugin
Authorization
Athenz
Server
・ 社内の認証機構にはAthenzを利用している
・ AthenzはRBAC(ロールベースアクセス制御)システムOSS
・ 我々はKong pluginを開発してathenzによる認証認可を実現
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/5DJY6GN9EM.jpg)

#4 abuse対策
abuseの疑い
Kong
API node1
API node2
API node3
アクセス拒否
・ある時間以内に同一のRemote IPから何回以上アクセスがあった場合アクセスを拒否
・DoS等のabuse疑いのあるリクエストをサーバーへ到達するのを防ぐ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/2V7NZGXD78.jpg)

#5 Sorry Page
API node1
Kong
API node2
API node3
カスタマイズした固定レスポンスを返す
・backend APIが全部落ちた場合、Kong側で直接カスタマイズしたレスポンスを返す
・無駄なアクセスを防ぐことでトラフィック負荷およびレイテンシを軽減できる
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GYJ9ZW88J3.jpg)

#6 active/standby構成
API node1
東DC
API node2
API node3
Kong
API node4 西DC
API node5
API node6
・backend APIが全部unhealthyになった場合、予め設定したオリジンにフォールバック
・通常時は東DCのbackend APIに向いていて、東DCのbackend APIが全部unhealthyに
なった場合、予め設定した西DCのbackend APIに向けることによってactive/standby構
成を実現できる
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/5GJ81N8Z7D.jpg)

active/standby構成のデモ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/MLJLQPR17R.jpg)

active/standbyデモ構成図
東API nodeが一つでも生きている場合 Kong
East node1
東
east upstream
East node2
route
service
active/standby
plugin
West node1
西
west upstream
東API nodeが全部落ちた場合
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
West node2
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/547M14R5EW.jpg)

5.まとめ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/ZP7RLWRZ79.jpg)

まとめ
アジェンダ
内容
ヤフーについて
ヤフーサービスの規模と技術面における状況
API Gatewayで実現したいものと
Kongを選んだ理由
ヤフー社内の要件
Kongによるマルチデータセンター
プラットフォームアーキテクチャ
マルチデータセンターの重要性と構成
カナリアリリース、レート制限、
ヤフー内のユースケース
Athenz RBAC認証、abuse対策、
Sorry Page、 active/standby構成＋デモ
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/NPJXWPR17X.jpg)

ご清聴ありがとうございます !!
Copy right (C) 2019 Y ahoo Japan Corporation. All Rights Reserv ed.
27


