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
Fastly log visualization
Search
suzuki_yosuke
February 22, 2018
Technology
2
830
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.3k
Other Decks in Technology
See All in Technology
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
3
460
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
対話型音声AIアプリケーションの信頼性向上の取り組み
ivry_presentationmaterials
1
270
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
140
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
270
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
130
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
3
9.6k
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
54
20k
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
Coinbase™®️ USA Contact Numbers: Complete 2025 Support Guide
officialcoinbasehelpcenter
0
410
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Unsuck your backbone
ammeep
671
58k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Balancing Empowerment & Direction
lara
1
430
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Building Applications with DynamoDB
mza
95
6.5k
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