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
Fastly log visualization
Search
suzuki_yosuke
February 22, 2018
Technology
880
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fastly log visualization
Introduction of Fastly log visualization case in Money forward
suzuki_yosuke
February 22, 2018
Transcript
27 slides
株式会社マネーフォワード 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
More Decks by suzuki_yosuke
See All by suzuki_yosuke
Logging infrastructure for CDN
syosuke1024
0
120
CDN in Moneyforward
syosuke1024
1
180
Coding CDN in Moneyforward
syosuke1024
5
8.5k
Other Decks in Technology
See All in Technology
契約書SaaSにAIエージェントを組み込む
sansantech
PRO
0
110
マネジメントされる側の仕事は「文句」を言うこと
riyaamemiya
3
1.9k
Biohub - Cell Tracking During Development 5th place solution
rist
0
150
ぼくのClaude Codeの使い方
falken
PRO
4
6.9k
E2E Test というハーネス — AI時代の自動テスト民主化
daishukojima
1
650
Intro to Kiro (One agent, every surface) | Kiro: Zero to Hero 01
inariku
PRO
2
120
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
220
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
330
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
340
大江戸Ruby会議でデータベース クライアントの話をするのは 間違っているだろうか
yahonda
1
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
落とし穴にハマってわかった 開発生産性を測るときに気をつけたいこと
munakata
0
120
Featured
See All Featured
Bash Introduction
62gerente
615
220k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
980
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.4k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Designing Experiences People Love
moore
143
24k
WCS-LA-2024
lcolladotor
0
990
Discover your Explorer Soul
emna__ayadi
2
1.3k
Making Projects Easy
brettharned
120
6.9k