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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
usanchuu
July 31, 2026
Technology
710
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
65
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
180
ラーメンにお酢が馴染む時間を計算したら麺が伸びそうになったので、 AWS Lambda Power TuningとManaged Instancesで爆速化する
usanchuu
1
180
AmazonAthenaで 競馬データをParquet化する
usanchuu
0
140
Amazon Rekognitionで 「信玄餅きなこ問題」を解決する
usanchuu
1
1.2k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
580
Reachability Analyzer VS Kiro CLI ~ネットワークがつながらないとき、どっちを使う?~
usanchuu
1
100
Other Decks in Technology
See All in Technology
FDEの心得
noriakioji
4
5.4k
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
ラジオの科学
frievea
0
310
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
200
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
260
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
290
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.5k
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
460
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
640
The SEO identity crisis: Don't let AI make you average
varn
0
530
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
280
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
119
120k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Code Review Best Practice
trishagee
74
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
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なら追加のサーバー管理なしでこの速度が出せる