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
freee-mackerel
Search
Yoshiyuki Asaba
October 05, 2017
Technology
3
16k
freee-mackerel
Yoshiyuki Asaba
October 05, 2017
Tweet
Share
More Decks by Yoshiyuki Asaba
See All by Yoshiyuki Asaba
How freee has leveraged AWS for Growth
asaba
0
42
freee_の成長を支える_AWS
asaba
0
68
freee-engineering-jm.pdf
asaba
0
5.7k
2018早稲田大学アルゴリズムとデータ構造特別講義 / 2018-Algorithm-And-Data-Structure-Course-At-Waseda
asaba
0
6.4k
デバッガでRedisのコードを読んでみよう
asaba
1
15k
早稲田大学アルゴリズムとデータ構造特別講義
asaba
2
12k
PostgreSQL運用管理入門
asaba
0
220
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
asaba
1
120
Other Decks in Technology
See All in Technology
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
130
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
470
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
3
290
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
250
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
270
脅威をモデリングしてMCPのセキュリティ対策を考えよう
flatt_security
5
1.8k
実践! AIエージェント導入記
1mono2prod
0
110
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
390
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
150
今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RAG in Generative AI
hideakiaoyagi
1
190
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
300
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.2k
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
How STYLIGHT went responsive
nonsquared
100
5.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
910
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Code Review Best Practice
trishagee
68
18k
Transcript
freeeでのMackerelの使い方
自己紹介 2 浅羽義之 Yoshiyuki Asaba 2015/5 ~ freee プロダクト基盤(SREなど)本部長とエンジニア新卒 採用責任者をやってます
• RDBMSと自動化が大好き
ビジネスのはじまりから成長をすべてサポートする freee 3 簡単:知識がなくても1クリックで給 与計算 勤怠:勤怠管理も簡単に オンライン:給与明細はオンラインで 配布 会計連動:会計ソフトと完全データ 連携
政府連携:行政手続きもオンライン で完結 マイナンバー:マイナンバー管理も 完全対応 5分:会社設立用の書類を最短5 分で作成 モバイル:スマホ完全対応で、どこ でも会社設立 ワンストップ:実印発注や銀行口 座作成もできる 自動:銀行やカードの口座と連携し、人工 知能で会計帳簿を作成 簡単:簿記の用語を使わない画面設計で 簡単に使える 最適化:請求書発行や経費精算などの業 務も最適化 実績:クラウド会計ソフトシェア No.1 で安 心の実績 サポート:チャットによる迅速なサポートを 提供 決算:決算や個人事業主の申告まで自動 で簡単に ✩ はじめる ↻ 運営する ↗ 育てる 会社設立 freee (2015年6月リリース) クラウド会計ソフト freee (2013年3月リリース) クラウド給与計算ソフト freee (2014年5月リリース) シェアNo.1 シェアNo.1 開業 freee (2016年10月リリース)
4 リリース5年で日本でトップシェアに成長 有効事業所数は 80万事業所 を突破 会計・給与共にトップシェア クラウド会計ソフト市場 マーケットシェア * (法人・個人)
クラウド給与ソフト市場 マーケットシェア* * デジタルインファクト調べ *MM総研調べ
5 Mackerel導入前の話
6 https://speakerdeck.com/manabusakai/zabbix-to-mackerel
7 導入前当時を振り返る • Zabbixを当時使っていた ◦ VPCごとにzabbix serverを運用 ◦ 機能が豊富なので作り込めば色々なことができる ▪
しかし作り込みや運用に時間を取れない状況 • いくつかのプロダクトを評価 ◦ 移行のしやすさ ◦ プロダクトの進化スピード ◦ 使いやすさ(UI, API, CLI) ◦ コスト ▪ AutoScalingとの親和性
ワクワク監視したいので 8
現状のfreeeでの監視構成 9 • Mackerel ◦ リソースの監視、外形監視など ◦ アラート通知 • NewRelic
◦ アプリケーション内部 • CloudWatch ◦ autoscalingのトリガーとして使用 ◦ MakerelのAWS integrationを使ってMackerelに集約 • Bugsnag ◦ アプリのエラーログ • Deep Security as a Service for AWS ◦ セキュリティ監視
10 Mackerel活用例
Service, Role, Hostの考え方 11 Mackerel • Service ◦ サービス名_Stage名 •
Role ◦ web, worker, batch等の サービス内のサーバの役割 • Host ◦ そのまま AWS EC2のタグ • Project ◦ サービス名 • Role ◦ web, worker, batch等の サービス内のサーバの役割 • Stage ◦ production, staging,... • hostname(tagではない) ◦ 起動時に勝手につく名前 プロビジョニングやデプロイはEC2タグで処理を分けているので、 タグの情報をそのままMackerelへ移植
サービス開発エンジニアとのコミュニケーション 12 通常時 • ダッシュボードかサービス一覧のグラフを眺める ◦ 定期的にパフォーマンス振り返り会を実施 ◦ ぽちぽち作るのは面倒なのでmkrコマンドで作る ◦
さらに深掘りしたい場合はNewRelicで確認する 何かあったときやグラフをシェアしたいとき • 「チャンネルにグラフを投稿」が超絶便利
デプロイの記録 13 mkr annotations create --title "Deploy application" --from ${timestamp}
--to ${timestamp} --service hoge or json_data=$(cat <<EOF { "title": "Deploy application", "from": ${timestamp}, "to": ${timestamp}, "service": "hoge" } EOF ) curl -sS https://mackerel.io/api/v0/graph-annotations -X POST \ -H "X-Api-Key: ${api_key}" -H "Content-Type: application/json" -d "${json_data}" いつデプロイしたかわかるように記録
サービスメトリックの使い所 14 • サービスに紐づくメトリック ◦ レスポンスタイム(ALBのCloudWatchから取れるといえば 取れる) ◦ 非同期ワーカーの未処理のキュー ◦
サーバー台数 • サービスメトリックの放り込み方 ◦ /api/v0/services/<serviceName>/tsdb にPOSTするだけ ◦ Lambda経由で放り込む
アラート通知 15 • 基本的にはslackに通知 ◦ WarningはSREが見る ◦ Criticalは広めに通知 • 夜中のアラート
◦ PagerDutyなどは使わずに雑にbotが電話をかけていく ◦ slackに誰かが反応したら電話を切る エンジニア webhook
使っているMackerel Plugin 16 • mackerel-plugin-linux • mackerel-plugin-mailq • mackerel-plugin-multicore •
mackerel-plugin-mysql • mackerel-plugin-nginx • あとはAWS integrationで より細かい情報を見たいときは NewRelicで深掘りしてます
Mackerelの設定 17 • Host Statusの初期状態はstandby ◦ AutoScalingのUserDataが動いている間はアラート出したく ない ◦ UserDataの中でmkrを叩いてworkingに戻す
▪ 構築がコケた場合も • 実験的機能 ◦ とりあえずonにしておく
18 Mackerelに欲しい機能
あると嬉しいなあ 19 • 毎月の支払(レシート)をPDFで欲しい ◦ 経理に提出する書類を作るのがちょっと面倒。。。 • AWSインテグレーションも自動退役機能が欲しい ◦ EC2でないリソースを主にstaging環境で作ったり消したりす
るので、消すスクリプトを作った ◦ タグ・除外タグをサービスごとに設定できると嬉しい
20 まとめ
21 まとめ • 全く問題なく運用できてます ◦ 開発者、CRE、その他関係者に支えられております • 懇親会で詳細を聞きたいことがありましたら声をかけてくださ い!
Mackerel使ってサービス開発・運用したいひと募集中!! 22
スモールビジネスに携わるすべての人が 創造的な活動にフォーカスできるよう