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
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
使いにくいの壁を突破する
sansantech
PRO
1
120
(金融庁共催)第4回金融データ活用チャレンジ勉強会資料
takumimukaiyama
0
140
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
600
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.6k
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
4.9k
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
120
AWS Network Firewall Proxyを触ってみた
nagisa53
0
150
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
140
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
300
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.6k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
1
740
Are puppies a ranking factor?
jonoalderson
1
2.7k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Scaling GitHub
holman
464
140k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
72
Skip the Path - Find Your Career Trail
mkilby
0
53
Mind Mapping
helmedeiros
PRO
0
78
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
300
Side Projects
sachag
455
43k
Designing for humans not robots
tammielis
254
26k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
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