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
名古屋の市バス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
77
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
190
ラーメンにお酢が馴染む時間を計算したら麺が伸びそうになったので、 AWS Lambda Power TuningとManaged Instancesで爆速化する
usanchuu
1
210
AmazonAthenaで 競馬データをParquet化する
usanchuu
0
150
Amazon Rekognitionで 「信玄餅きなこ問題」を解決する
usanchuu
1
1.2k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
590
Reachability Analyzer VS Kiro CLI ~ネットワークがつながらないとき、どっちを使う?~
usanchuu
1
120
Other Decks in Technology
See All in Technology
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
700
AI Native Platform Engineering 〜PlatformとAgileで“作る速さ”を“価値”へ〜
uya116
0
590
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
180
大阪オフィスに Unitree Go2 がやってきたので Physical AI やってみた
dafujii
0
220
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
2k
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
170
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
220
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
170
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
610
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
290
Featured
See All Featured
Making Projects Easy
brettharned
120
6.8k
Thoughts on Productivity
jonyablonski
76
5.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
600
The agentic SEO stack - context over prompts
schlessera
0
950
For a Future-Friendly Web
brad_frost
183
10k
Deep Space Network (abreviated)
tonyrice
0
350
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
Bash Introduction
62gerente
615
220k
Building Applications with DynamoDB
mza
96
7.2k
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なら追加のサーバー管理なしでこの速度が出せる