Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Fastly log visualization
Search
suzuki_yosuke
February 22, 2018
Technology
2
840
Fastly log visualization
Introduction of Fastly log visualization case in Money forward
suzuki_yosuke
February 22, 2018
Tweet
Share
More Decks by suzuki_yosuke
See All by suzuki_yosuke
Logging infrastructure for CDN
syosuke1024
0
110
CDN in Moneyforward
syosuke1024
1
160
Coding CDN in Moneyforward
syosuke1024
5
8.4k
Other Decks in Technology
See All in Technology
AI 時代のデータ戦略
na0
8
2.2k
type-challenges を全問解いたのでエッセンスと推し問題を紹介してみる
kworkdev
PRO
0
140
ローカルLLM基礎知識 / local LLM basics 2025
kishida
25
11k
2025 DORA Reportから読み解く!AIが映し出す、成果を出し続ける組織の共通点 #開発生産性_findy
takabow
2
820
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
13
8.5k
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
440
.NET 10 のパフォーマンス改善
nenonaninu
2
2.5k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
15k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
Flutter Thread Merge - Flutter Tokyo #11
itsmedreamwalker
1
120
学術的根拠から読み解くNotebookLMの音声活用法
shukob
1
550
Master Dataグループ紹介資料
sansan33
PRO
1
4k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Site-Speed That Sticks
csswizardry
13
970
RailsConf 2023
tenderlove
30
1.3k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Designing for Performance
lara
610
69k
Making Projects Easy
brettharned
120
6.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
360
The Language of Interfaces
destraynor
162
25k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Transcript
株式会社マネーフォワード 2018年02月22日 「Fastlyのログをサーバレスで可視化してみた」 Yosuke Suzuki
自己紹介 2 Yosuke Suzuki Monye Forward,Inc. (CISO室 サービスインフラグループ) • 経歴(ほぼずっと金融のインフラエンジニア)
◦ 2005~2008 Fujitsu FIP, Inc. ◦ 2008~2014 Simplex Technology, Inc. ◦ 2015~2016 American Family Life Assurance Company of Columbus( Aflac ) ◦ 2017~ Money Forward, Inc. © Money Forward,Inc.
マネーフォワードのご紹介 (一瞬で済ませる) 3
Mission/Vision/Value 個人のお金の悩みや不安の解消、事業者の経営改善に貢献し、 日本でNo1の「お金のプラットフォーム」になることを目指しています。 Mission お金を前へ。人生をもっと前へ。 「お金」は、人生においてツールでしかありません。しかし「お金」とは、自身と家族の身を守るため、また夢を実現するために必要不可欠な存在でもありま す。 私たちは「お金と前向きに向き合い、可能性を広げることができる」サービスを提供することにより、ユーザーの人生を飛躍的に豊かにすることで、より良い 社会創りに貢献していきます。 Vision
すべての人の、「お金のプラットフォーム」になる。 オープンかつ公正な「お金のプラットフォーム」を構築すること、本質的なサービスを提供することにより、個人や法人すべての人のお金の課題を解決しま す。 Value User Focus 私たちは、いかなる制約があったとしても、常にユー ザーを見つめ続け、本質的な課題を理解し、ユーザー の想像を超えたソリューションを提供します。 Technology Driven 私たちは、テクノロジーこそが世界を大きく変えること ができると信じています。テクノロジーを追求し、それ をサービスとして社会へ提供していくことで、イノベー ションを起こし続けます。 Fairness 私たちは、ユーザー、社員、株主、社会などのすべて のステークホルダーに対してフェアであること、オープ ンであることを誓います。 4
提供サービス PFM(Personal Financial Management) 事業 自動家計簿・資産管理サービス ビジネス向けクラウドサービス 5 MFクラウド事業 ©
Money Forward,Inc.
Fastlyを使ってみました 6
Fastly導入してみて © Money Forward,Inc. 7 • 全てAPIで操作でき、コード化できる • コンフィグ伝搬、キャッシュ削除が高速(数〜十数秒程度) •
LB、WAF、イメージオプティマイザとCDNに留まらないリッチな機能 • エンジニアのサポートが手厚い • しかも安いです。 ELBとリバースプロキシを Fastlyで置き換える形で使ってます。 サーバを一つ排除できた。 (サーバレスということなので )
個人的に最高なのは 柔軟なコンフィグレーション (これのお陰で弊社は セキュアなCDNを実現できた) 8
ログ設定の柔軟性を活かした ログの可視化事例をお見せします (サーバレスで実現した) 9
国別リクエスト数。海外からも使ってくれてる。 © Money Forward,Inc. 10 • FastlyからGeoロケーショ ン情報を取得。 • リクエストを数えて、地図
にマッピング
クライアント別リクエスト数。最多リクエストはRuby!? 11
MFって会社をBANするところでしたw 12
どのように 実現しているのか? (本題) 13
こんなシステム構成 © Money Forward,Inc. 14 • ストリーミングインサートの費用削減の為に、GCSを挟んでBigQueryヘ。 • GKEで5分に1回、GCSからBigQueryにアップロードするようにリクエスト。 •
注意点2点。 ◦ BQにはアップロード回数に上限あり。(1分に1回とかダメ) ◦ GCSとBQのリージョンは、揃える。 分けるとトラフィック料金がかかり、GCS挟む意味薄くなる。
あれ!? 15
16 コンテナ使ってるよ。 サーバレス is 何??
本当はこんな構成にしたかった © Money Forward,Inc. 17 • fastlyからGCSに5分に1回ログ転送。 • GCSにログが保管された事をトリガーにCloudfunctionがコールされ、BigQueryに アップロード
Question: 何故やらなかったのか? (Cloudfunctionのアンチパターンご紹介) 18
Answer: ログファイル多すぎる。 5分に1回Fastlyのエッジサーバの台数分、 数十ファイルのログが送られてくる。 一個ずつアップロードして、 数十のファンクションなんて立ち上げてられない。 19
Question: 複数ファイル指定して 一度にアップロードさせれば ログのファイル数なんて関係ないよ。 ↓こんな感じでしょ!? $ bq load \
my_dataset.my_table \ gs://my_bucket/* 20
Answer: ダメです。 ファイル操作毎に functionがcallされます。 つまり、数十の同じfunctionが1度にcallされる。 ログが多重にアップロードされる。 排他制御? 成功する1つfunctionと 排他されるだけの大量のfunctionって。。。 21
Question: じゃあ無理せず、 ファイル1個ずつ アップロードさせなよ。 22
Answer: ダメです。 先ほど言った通り、 BigQueryには1日のアップロード回数に 上限あります。 5分に1回、数十ファイルだと上限行きます。 (1 日あたりの制限: 1 日あたりテーブルごとに
1,000 個の読み込みジョブ) 出展:https://cloud.google.com/bigquery/quotas#import 23
詰んだ! \(^o^)/ 24
と、言うわけで、この構成。 © Money Forward,Inc. 25 • コンテナで、5分に1回、複数ファイルを同時にアップロード
思いつくサーバレス案 ・LambdaでBQアップロードを時刻起動 ・GAEでBQアップロードを時刻起動 他にも、いいアイデアあれば、 教えてください。 googleさん、 CloudFunctionにも 時刻をトリガーにする機能を お待ちしてます。 26
新しい技術やサービス大好き!そんな仲間、募集しています。 インフラ https://www.wantedly.com/projects/7727 ご静聴ありがとうございました! 27