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
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCa...
Search
usanchuu
July 31, 2026
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
0731 JAWS UG 名古屋 × Gov JAWSコラボでの登壇資料です。
usanchuu
July 31, 2026
More Decks by usanchuu
See All by usanchuu
Server-TimingとDevOpsエージェントを用いたLambdaコンテナの動的ルーティング制御
usanchuu
0
72
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
180
ラーメンにお酢が馴染む時間を計算したら麺が伸びそうになったので、 AWS Lambda Power TuningとManaged Instancesで爆速化する
usanchuu
1
190
AmazonAthenaで 競馬データをParquet化する
usanchuu
0
140
Amazon Rekognitionで 「信玄餅きなこ問題」を解決する
usanchuu
1
1.2k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
590
Reachability Analyzer VS Kiro CLI ~ネットワークがつながらないとき、どっちを使う?~
usanchuu
1
110
Other Decks in Technology
See All in Technology
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
260
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
3
2.5k
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
450
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
160
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
480
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
210
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
2
1.8k
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
590
少人数データチームのDevin活用実践事例
runandy16
2
450
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
360
【Oracle AI Spotlight ウェビナー】AWSか、Azureか、Google Cloudか。その議論にオラクルを含める意義。
oracle4engineer
PRO
2
240
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
Designing Powerful Visuals for Engaging Learning
tmiket
1
530
Deep Space Network (abreviated)
tonyrice
0
290
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
How STYLIGHT went responsive
nonsquared
100
6.3k
Building Adaptive Systems
keathley
44
3.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Transcript
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する JAWS UG 名古屋 ×
Gov JAWSコラボ usanchu
今回の内容 名古屋の市バスGTFS-JPデータ×現在地からスガキヤの最寄りバス 停の検索 ① 全件検索するコードを実装して検索時間を計測する ② Amazon ElastiCache Serverless for
Valkeyを活用してパフ ォーマンスチューニングを行う
発表者について フジイ ヒカリ と申します・x・ 2026 Japan AWS Jr.Champions 社会人2年目:SIerのアーキテクチャチームでSEしてます AWSについて
保有資格:CLF,AIF,SAA,MLA,DEA ★JAWS名古屋、GovJAWSともに対面イベント2回目の参加で す!いつもイベント企画ありがとうございます。 X:@usanchuu
検証の背景:ラーメンが大好き!愛知といえばスガキヤ! ラーメンが大好き!以前は上越妙 高支部でラーメンLTを実施 今回の会場は名古屋!そして GovJAWSコラボ! →スガキヤ×公共データでなにか 検証を行いたい
検証内容 「名古屋の市バスGTFS-JPデータ×現在地からスガキヤの最寄りバス 停の検索処理」のパフォーマンスチューニングを行う! 市バスGTFS-JPデータとは? 名古屋市オープンデータカタログサイトで公開されている、 バス停座標・時刻表などの静的な運行データ 検証概要 GTFS-JPデータから取得したデータをもとに「位置情報から 最寄りバス停を探す処理」を実装し、Amazon ElastiCache
Serverless for Valkeyで高速化する
① 全件検索するコードを実装して検 索時間を計測する
① 全件検索するコードを実装して検索時間を計測する 全件検索するコードを実装 毎リクエストごとに頭から全件ループ ① 最寄りバス停検索 :stops.txtを全件スキャン3,886件 ② ①をもとに発車時刻検索 :stop_times.txtを全件スキャン592,164件
1回のリクエストで検索が2段階 =N+1問題と同じ構造 店舗 最寄りバス停 距離 栄(ニュー栄ビル) 広小路栄 25.2m 大須(よ志だやビル) 上前津 84.2m 大須(市野ビル) 大須赤門通 42.2m 名古屋エスカ店 名古屋駅(太閤通口) 158.5m
① 全件検索するコードを実装して検索時間を計測する 全件検索時間の計測 最寄りバス停検索:9.9ms/発車時刻検索:733.9ms/合計743.8ms 最寄りバス停検索:キャッシュで62.7ms→9.9ms前後まで短縮 発車時刻検索:毎回700ms台で高止まり →OSのファイルキャッシュが効いても、全件スキャンには限界がある
② Amazon ElastiCache Serverless for Valkeyを活用して パフォーマンスチューニングを行う
② Amazon ElastiCache Serverless for Valkeyを活用してパフォーマンスチューニングを行う Amazon ElastiCache Serverless for
Valkeyとは Redis OSS互換のインメモリキーバリューストア。 2026年5月にメジャーアップデート(9.0)実施 https://aws.amazon.com/jp/blogs/news/announcing-valkey-9-0- Valkeyとは? for-amazon-elasticache/ Linux Foundationが管理するオープンソースのインメモリKVS。 Redis OSSとの完全互換で、既存のRedisクライアントが使える 今回使った機能:GEOSEARCH(地理空間インデックス) 緯度経度をGEO型で扱うことで、最寄り検索がO(log N)で可能に 9.0の新機能:GEOSEARCHにBYPOLYGON(多角形)オプションが追加さ れ、円・矩形だけでなく任意のポリゴン範囲での検索も可能に
② Amazon ElastiCache Serverless for Valkeyを活用してパフォーマンスチューニングを行う 構成図 GTFS CSV(stops.txt /
stop_times.txt)は S3を使わず、Lambdaのデプロイパッケージに 直接同梱 実行結果(GEOSEARCH/ZRANGEBYSCORE の処理時間)はCloudWatch Logsで確認
② Amazon ElastiCache Serverless for Valkeyを活用してパフォーマンスチューニングを行う Amazon ElastiCache Serverless for
Valkeyでインデックス化 ① GEOADD でバス停の緯度経度を空間インデックス化 → bus_stops キーに全3,886件を登録 ② ZADD で停留所ごとの発車時刻をソート済み集合に → departures:{stop_id} キーに全592,164件を登録 → member文字列に「発車時刻|trip_id」を仕込み、 HGET不要に ③ 2,000件ごとに pipe.execute() → ElastiCache Serverlessはクラスターモードのた め、 一度に全件をパイプライン送信するとエラーになる
② Amazon ElastiCache Serverless for Valkeyを活用してパフォーマンスチューニングを行う Amazon ElastiCache Serverless for
Valkeyでの実測結果 実行回 geosearch zrangebyscore 合計(total_ms) Duration(課金対象) 備考 1回目 272.73ms 1.39ms 274.12ms 276.79ms コールドスタート (Init Duration 632.77ms別途) 2回目 35.56ms 1.32ms 36.88ms 56.77ms ウォームアップ中 3回目 7.13ms 1.13ms 8.27ms 27.19ms ほぼウォーム状態
まとめ 全件検索をAWS ElastiCache Serverless for Valkeyでイン デックス化すると、栄のスガキヤまで90倍速くたどりつける! ★ 743.8ms →
8.27ms(ウォーム時) ★ GEOADD/ZADDで空間・時系列インデックスを作るだけでアプリ側のロ ジックはシンプルなまま ★ Lambda(arm64/Graviton2) × ElastiCache Serverless for Valkeyなら追加のサーバー管理なしでこの速度が出せる