Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Makuakeの認証基盤とRe-Architectureチーム
Search
bmf_san
January 19, 2023
Programming
3.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Makuakeの認証基盤とRe-Architectureチーム
bmf_san
January 19, 2023
More Decks by bmf_san
See All by bmf_san
桃太郎で始めるRego入門‐今日から使えるRegoの基本編
bmf_san
0
74
完璧を求めない意思決定-アクセス制御基盤における制約との向き合い方
bmf_san
5
20k
AAPについて調べてみた
bmf_san
0
140
レーダーをつくる
bmf_san
0
85
契約テストとPactについて
bmf_san
0
130
5分でわかるSLO
bmf_san
2
180
権限について考える
bmf_san
2
170
自作HTTPルーターから新しいServeMuxへ
bmf_san
3
1.8k
古くなってしまったPHPフレームワークとPHPのバージョンアップ戦略
bmf_san
1
520
Other Decks in Programming
See All in Programming
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
200
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
0
170
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
yield再入門 #phpcon
o0h
PRO
0
930
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
150
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
420
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
820
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.8k
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
170
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.4k
Featured
See All Featured
Side Projects
sachag
455
43k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
460
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
GraphQLとの向き合い方2022年版
quramy
50
15k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
250
Between Models and Reality
mayunak
4
380
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
510
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
Transcript
Makuakeの認証基盤とRe-Architectureチーム 株式会社マクアケ / 竹内健太(@bmf_san) サービスの当たり前を支える認証認可 〜マネーフォワードxマクアケ〜 2023/01/19(木)
竹内健太(Twitter: @bmf_san) 株式会社マクアケ 開発本部 Re-Architectureチーム所属 - 2019年入社 - チームリーダー - Re-Architectureチームの業務以外は
PHP・FWのアップデートプロジェクトだったり、 E2E導入プロジェクトだっ たりやっています - Goで何かつくるのが好きです - https://github.com/bmf-san/goblin 自己紹介 Copyright © Makuake, Inc. All Rights Reserved. 2
お話すること Copyright © Makuake, Inc. All Rights Reserved. 3 -
Re-Architectureチーム is 何? - 認証基盤概要紹介 - 認証基盤への移行における当たり前事例
4 Re-Architectureチーム is 何?
Re-Architectureチームとは? Copyright © Makuake, Inc. All Rights Reserved. 5 -
ミッション - 「Makuakeがスケールし続けるためのシステム・アーキテクチャを実現」 - マクアケの事業成長に耐えうるシステム基盤を提供する - 柔軟なスケーラビリティの担保 - 機能的なスケーラビリティだけではなく、運用面でもスケーラビリティを担保する - 安心・安全に活用できるシステム基盤 - Makuakeの他サービスやアライアンス先が、安心・安全に利活用できる基盤を 提供する - 高い信頼性を担保(可用性) - 事業の可能性を広げるReArchitecting - 技術基盤の開発・運用により、ビジネスの可能性を広げる
やっていること Copyright © Makuake, Inc. All Rights Reserved. 6 認証基盤だけ専門にやるチームではないのです!
- Auth - 認証基盤 - OIDC - 認可基盤 - メッセージングサービス(今後取り組む予定) - 通知基盤 アーキテクチャのスケーラビリティを担保するという観点で、主にサービス基盤の開発・運用を行っているチー ムです!
7 認証基盤概要紹介
- 会員数220万人〜のMakuakeを支える認証基盤(Authサービスと呼称) - ユーザー登録・ログインの機能等を提供 - Email/Password - 各種SNSプロバイダ
- Facebook / Twitter / LINE / Yahoo! JAPAN / Apple - 2021年9月〜 運用開始 - 運用体制(Authサービスに関わるエンジニア数) - 開発フェーズは〜4人 - 運用フェーズは現在 4人 Makuakeの認証基盤とは Copyright © Makuake, Inc. All Rights Reserved. 8
Makuakeの認証今昔 Copyright © Makuake, Inc. All Rights Reserved. 9 昔
- FuelPHPのSessionを利用した認証 - モノリスでFuelPHPに依存した実装 - 非コンテナ環境(EC2)※現在はECS 今 - JWTを使ったトークンベースの認証 - マイクロサービスにおける1つのサービスとし て実装 - コンテナ環境(GKE)
なぜ認証基盤をサービスとして切り出したのか? Copyright © Makuake, Inc. All Rights Reserved. 10 背景
- モノリスなアーキテクチャからの脱却 - マイクロサービス化の推進 - ”認証”切り出しがマイクロサービス化の最初の 1歩であった 解決したい課題 - 複雑化したコードベースにおける機能の改修・追加が難しい問題の解決 - 複数システム間で使える共通の認証基盤の必要性 - ユーザー数の増加を見据えた可用性の担保
アーキテクチャ構成(簡略版) Copyright © Makuake, Inc. All Rights Reserved. 11
アーキテクチャ構成(簡略版) Copyright © Makuake, Inc. All Rights Reserved. 12 -
GCP上でサービス構築 - Kubernetesをベースとしたサービス構築 - 通信プロトコルはgRPCを採用 - grpc-gatewayでHTTP→gRPCへ変換 - Spannerの採用 - 開発環境向けにもサーバーを用意(認証プロキシに IAPを利用)
13 認証基盤への移行における当たり前事例
当たり前?の例 Copyright © Makuake, Inc. All Rights Reserved. 14 既存認証からAuthサービスへの切り替えをどのように行ったか?
当たり前の認証を支えるために・・ Copyright © Makuake, Inc. All Rights Reserved. 15 当たり前に使える認証基盤を提供し続けるために取り組んでいること
- ユーザーファースト - ユーザーへの影響を最小限に抑える意識や努力 - 可用性の担保 - SLOを定義、目標とするサービスレベルを維持する - 監視 - アラート・メトリクス監視など - 継続的なバージョンアップ - システムやライブラリなど定期的に更新。溜め込まない
当たり前の認証を支えるために・・ Copyright © Makuake, Inc. All Rights Reserved. 16 当たり前に使える認証基盤を提供し続けるために取り組んでいること
- ユーザーファースト - ユーザーへの影響を最小限に抑える意識や努力 - 可用性の担保 - SLOを定義、目標とするサービスレベルを維持する - 監視 - アラート・メトリクス監視など - 継続的なバージョンアップ - システムやライブラリなど定期的に更新。溜め込まない。 当たり前のことを当たり前にやっている!と思います
サービス移行要件 Copyright © Makuake, Inc. All Rights Reserved. 17 “認証”という当たり前の機能の提供を停止させない
- ユーザーへの影響を最小限に抑える必要がある - 認証に何か問題が発生すると、サービス全体への影響に波及する可能性が高い 要件を満たすために・・・ - 「データの不整合を防止」 - 「フェイルセーフ」 - 「切り戻ししやすい仕組み」
当たり前を維持するために取り組んだこと Copyright © Makuake, Inc. All Rights Reserved. 18 サービス移行を3つのPhaseに分けて、段階的に移行作業を実施
- Phase1:ダブルライト - データ移行ツールの実行 - 新規登録のAPIの利用開始(厳密には他のAPIも色々ある) - 移行元DB・移行先DBの両方への書き込み - makuake側とAuth側のデータが同期されている状態をつくる - データ整合性チェックツールの定期実行 - フィーチャーフラグの実装・運用開始 - AuthサービスAPIの利用ON・OFF - エラーハンドリングの調整 - ユーザーへのエラーを返さない
当たり前を維持するために取り組んだこと Copyright © Makuake, Inc. All Rights Reserved. 19 サービス移行を3つのPhaseに分けて、段階的に移行作業を実施
- Phase2:疑似認証 - Authサービスの認証の仕組み(JWT)の利用開始 - 既存の認証処理を行いつつ、Authサービス側の認証処理も行う - 既存認証で利用しているCookieと認証で利用するCookieを両方保つ - Authサービスへの完全切り替え時のログアウト多発を防止 - ログイン移行率(Authサービスを利用してログインしているユーザ数)の計測 - 各種メトリクスやエラーの監視(性能に問題ないかチェック) - AuthサービスのほとんどのAPIが開放されるため、Authサービスが本格的にトラ フィックを受け付けることになる
当たり前を維持するために取り組んだこと Copyright © Makuake, Inc. All Rights Reserved. 20 サービス移行を3つのPhaseに分けて、段階的に移行作業を実施
- Phase3:認証切り替え - Authサービスへの完全切り替え - ログイン移行率やエラー状況を元に、切り替え判定 - このフェーズでは切り戻しができなくなる - 後処理 - 用済みとなったコードやデータの削除等を実施 ←とある日に普段の機能リリースのように余りにも自然にリリー スされたの図(着想から3~4年くらいのプロジェクトだったので すが)
21 当たり前の維持は当たり前ではないかも😤
まとめ Copyright © Makuake, Inc. All Rights Reserved. 22 -
ReArchitectureチームはマクアケのスケーラビリティを支えるチーム - 認証基盤以外もやっています - 認証基盤は独立した1つのマイクロサービス - 既知の課題解決や今後のニーズを見据えたサービス - サービス移行でも当たり前を考える - いつでも使える、ユーザー影響を最小限に抑えたサービス切り替え
23 We are hiring! ご清聴ありがとうございました!
Copyright © Makuake, Inc. All Rights Reserved.