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
820
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
100
CDN in Moneyforward
syosuke1024
1
150
Coding CDN in Moneyforward
syosuke1024
5
8.3k
Other Decks in Technology
See All in Technology
ウェブアクセシビリティとは
lycorptech_jp
PRO
0
260
問題解決に役立つ数理工学
recruitengineers
PRO
7
2.1k
Restarting_SRE_Road_to_SRENext_.pdf
_awache
0
160
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
110
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
100
大規模プロジェクトにおける 品質管理の要点と実践 / 20250327 Suguru Ishii
shift_evolve
0
280
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
680
グループポリシー再確認
murachiakira
0
170
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.2k
Amazon Q Developer 他⽣成AIと⽐較してみた
takano0131
1
120
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.5k
セマンティックレイヤー入門
ikkimiyazaki
8
3.2k
Featured
See All Featured
Designing Experiences People Love
moore
141
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
Into the Great Unknown - MozCon
thekraken
36
1.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Faster Mobile Websites
deanohume
306
31k
Writing Fast Ruby
sferik
628
61k
For a Future-Friendly Web
brad_frost
176
9.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
700
Git: the NoSQL Database
bkeepers
PRO
429
65k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
620
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