Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ALB+Lambdaを活用した既存システムのMicroservice化
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
NAVITIME JAPAN
PRO
October 21, 2019
Technology
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ALB+Lambdaを活用した既存システムのMicroservice化
2019年10月21日(月)に開催されたDevLOVE様主催のイベント「諸君、私はServerlessが好きだ。」にて発表した資料です。
NAVITIME JAPAN
PRO
October 21, 2019
Transcript
23 slides
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で返っているか?
ご清聴ありがとうございました!
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
株式会社ナビタイムジャパン 会社紹介資料2026
navitimejapan
PRO
1
7.1k
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
16k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
1.2k
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
330
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
3.5k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
2k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
540
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
4.2k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.6k
Other Decks in Technology
See All in Technology
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
190
Kiro を使うコツ (頼み方、覚えさせ方、任せ方) | 目指せ Kiro マスター 09
inariku
PRO
3
160
マネージャーをエスパーにしない マネジメントされる側から始める、働きやすい現場づくり
comi190327
0
430
The Author Pays
hiccupps
0
220
81天的 AI Agent 軟體開發團隊治理實務分享
regionbbs
0
170
異夢同船〜異なる夢でも同じ船でなんとかする〜
fortegp05
0
240
SREのためのFinOps入門
muziyoshiz
3
1.6k
ラクスル会社紹介資料|エンジニア向け / RAKSUL Introduction for Engineers
raksulrecruiting
0
110
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
250
MCPでネットワーク障害調査を自動化する前に直すべき3つのこと
yama3133
0
230
落とし穴にハマってわかった 開発生産性を測るときに気をつけたいこと
munakata
2
190
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.2k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
610
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Agile that works and the tools we love
rasmusluckow
331
22k
Git: the NoSQL Database
bkeepers
PRO
433
67k