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
ALB+Lambdaを活用した既存システムのMicroservice化
Search
NAVITIME JAPAN
PRO
October 21, 2019
Technology
0
84
ALB+Lambdaを活用した既存システムのMicroservice化
2019年10月21日(月)に開催されたDevLOVE様主催のイベント「諸君、私はServerlessが好きだ。」にて発表した資料です。
NAVITIME JAPAN
PRO
October 21, 2019
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
16k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
900
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
260
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
3.2k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.7k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
390
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.8k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.4k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
8
5.8k
Other Decks in Technology
See All in Technology
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
410
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
140
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
250
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
160
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.5k
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
700
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
230
Everything As Code
yosuke_ai
0
490
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
41
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
74
The Curse of the Amulet
leimatthew05
0
6.8k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
330
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
100
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
74
Transcript
ALB + Lambda を活⽤した 既存システムのMicroservice化 Katsuhide Kayashima
•萱島 克英 •担当 •Cloud Migration •全社的な改善業務 •好きな技術 •ECS、EKS、GKE、Spinnaker ⾃⼰紹介
今⽇お話すること ALB Lambda と を使って モノリスな既存システム を Microservice化 しようとしているお話
•ALB + Lambda を選択した背景 •デプロイフロー •改善ポイント (期待値込み) •監視周り Agenda +
= ?
Keynote Presentation ALB + Lambdaを選択した背景
•コンシューマ向けサービスの⼤半をAWS、GCPで運⽤ •アプリケーションはContainer化されており、ECS、EKS、GKE で運⽤ •Serverless の利⽤実績は少ない状況 NAVITIMEのバックエンド
既存の地図データ配信フロー Service A Service B 地図配信 Service Users ALB ALB
ALB ECS ECS ECS (共通API)
既存フローの問題点 Service A Service B 地図配信 Service ALB ALB ALB
ECS ECS ECS •ServiceA とServiceB はリクエストを Proxingしているだけ •地図配信リクエスト数は全体リクエストの 約6割 (共通API) Users
既存フローの問題点 Service A Service B 地図配信 Service ALB ALB ALB
ECS ECS ECS •ServiceB には多数の 共通API が稼働 = モノリシック •EC2リソースをアクセスに合わせて無駄なく増減させるのは難しい →無駄に起動しているEC2リソースが多少なり存在 Users (共通API)
これを ALB + Lambdaで剥がしたい
•ALB のバックエンドに Lambda が選択可能に! (Re:invent 2018) 良いタイミングで - その1
•VPC内の Lambdaに対する ENIのアタッチスピードが⼤幅に向上 ! 良いタイミングで - その2
Lambda導⼊後のフロー Service A Service B 地図配信 Service ALB ALB ALB
ECS ECS ECS (共通API) Users Lambda
•無駄なコンピューティングリソースの削減 •モノリスなシステムから地図リクエストが剥がされることによる耐障 害性向上 •既存ECSインスタンスのスケール戦略が楽に ALB + Lambda構成に期待している事
Elite Slides Keynote Presentation Deploy & Improvement
Deploy 地図配信 Service Jenkins ALB ECS Alarm Topic AWS CloudFormation
•CloudformationでLambda、ALB Targetgroup、Alarm、Topicを作成 •aws-sam-cli で作成したtemplate をベースに必要なリソースをappend
デプロイ 地図配信 Service Jenkins ALB ECS Alarm Topic AWS CloudFormation
•Cloudformation の Template は1つ、アプリ毎に変動する部分だけ Parameterファイル化 Deploy Template.yaml アプリA⽤パラメータファイル + アプリB⽤パラメータファイル アプリC⽤パラメータファイル
Failover Service A Service B 地図配信 Service ALB ALB ALB
ECS ECS ECS (共通API) Users Lambda Cloudformation の Stackを削除する事で、既存のルーティングに切り戻す
•API毎に 同時実⾏数の上限値 を設定 •上限値を超えた分は 502 がすぐに返却 改善ポイント API毎に Lambda を分けた事により、予期せぬ⼤量アクセスがあった場合でも
バックエンドシステムの輻輳が起きにくくなる
Elite Slides Keynote Presentation 監視
Cloudwatch Prometheus & Grafana Datadog 監視ツール Lambda → Cloudwatchとのインテグレーションで簡単に監視できそう
実施した監視項⽬ 項⽬ 監視の⽬的 Errors • Lambda⾃体でエラーが発⽣していないか? • 例)Memory超過、Timeout Application Errors
• アプリケーションでエラーが発⽣していないか? • 例)Upstreamからエラーが返却された • 例)Runtime Error Throttle Errors • 同時実⾏数の上限を超えていないか? Healthy Host Count • ALB → Lambdaのヘルスチェックが200で返っているか?
ご清聴ありがとうございました!