Upgrade to Pro — share decks privately, control downloads, hide ads and more …

freee を支えるインフラ技術 / freee-infrastructure

freee を支えるインフラ技術 / freee-infrastructure

【freee × プレイド】Tech Meetup 〜インフラ監視編〜

Manabu Sakai

January 19, 2017
Tweet

More Decks by Manabu Sakai

Other Decks in Technology

Transcript

  1. を支えるインフラ監視
    【freee × プレイド】Tech Meetup

    View Slide

  2. #plaidtech

    View Slide

  3. 話すこと
    ● freee で使っている監視系サービス
    ● 少人数で運用するためのノウハウ

    View Slide

  4. 話さないこと
    ● 監視の基本的なこと
    ● 各監視サービスの比較や使い方

    View Slide

  5. 自己紹介
    Twitter / GitHub
    @manabusakai

    View Slide

  6. 自己紹介
    ● 坂井 学(さかい まなぶ)
    ● 2016 年にインフラエンジニアとして入社
    ● Scala / Ruby / PHP を書いてました
    ● 得意分野は AWS
    ○ AWS 認定ソリューションアーキテクト - プロフェッショナル
    ○ AWS 認定 DevOps エンジニア - プロフェッショナル

    View Slide

  7. スモールビジネスに携わる方が
    より創造的な活動にフォーカスできるよう

    View Slide

  8. freee が提供するサービス
    ● 会計 freee
    ● 給与計算 freee
    ● 会社設立 freee
    ● マイナンバー管理 freee
    ● 開業 freee

    View Slide

  9. freee が提供するサービス

    View Slide

  10. freee で使っている
    監視系サービス

    View Slide

  11. ● サーバー監視
    ○ Mackerel
    ○ CloudWatch
    ○ Prometheus
    ● パフォーマンス監視
    ○ New Relic
    ○ MONyog
    ● トラッキング
    ○ Redash
    ○ Kibana

    View Slide

  12. それぞれの守備範囲
    AWS サーバ アプリ データベース
    Mackerel ◯ ◯ ◯
    CloudWatch ◯
    Prometheus ◯
    New Relic ◯
    MONyog ◯

    View Slide

  13. インフラエンジニアは
    何人いますか?

    View Slide

  14. 3 / 80 人

    View Slide

  15. View Slide

  16. 1 人あたり
    20 万事業所

    View Slide

  17. 効率化しないと回らない!

    View Slide

  18. 少人数で運用するために
    工夫していること

    View Slide

  19. ① 情報はプルよりプッシュ
    必要な情報は一か所にプッシュされる仕組みを作る。
    ● Slack に通知しているもの
    ○ Mackerel からのアラート
    ○ GitHub など外部サービスの障害情報
    ○ アプリケーションのパフォーマンスサマリー
    ○ AWS のコスト
    ○ Qiita:Team の新着記事

    View Slide

  20. ① 情報はプルよりプッシュ

    View Slide

  21. ② フルマネージドサービスの活用
    AWS のフルマネージドサービスを活用して、
    監視するポイントを根本から減らす。
    ● トレードオフとの兼ね合い
    ○ 運用が楽になる ⇔ ブラックボックスが増える
    ○ ノーメンテナンス ⇔ 障害が起きたら手が出せない
    ○ 設定が簡単 ⇔ 痒いところに手が届かない

    View Slide

  22. ③ 障害が起きることを前提に
    障害が起きることを前提にインフラを設計する。
    ● 例えば
    ○ サーバは Auto Scaling で管理し可用性を担保する
    ○ 単一障害点を作り出さない
    ○ リトライを前提としたコードを書く
    ○ etc...

    View Slide

  23. ③ 障害が起きることを前提に
    “障害を避ける最もよい方法は、
    常に障害を起こすことである”

    View Slide

  24. ④ 本業にフォーカスする
    サービスをより良くすることにフォーカスする。
    それ以外の部分はお金で解決するのもアリ。
    ● Zabbix から Mackerel へ移行
    ○ 結果的には Mackerel のコストは充分ペイした
    ○ Mackerel Meetup #8 Tokyo (2016/10/17) で発表
    ■ ref. Zabbix から Mackerel へ - Mackerel で実現したコストダウン

    View Slide

  25. ④ 本業にフォーカスする

    View Slide

  26. ⑤ トラッキングして見える化
    数値をトラッキングして見える化する。
    ● 数値は嘘をつかない
    ○ 曖昧さを排除できる
    ○ 数値を元に改善サイクルを回す

    View Slide

  27. ⑤ トラッキングして見える化
    様々なメトリクスをトラッ
    キングして、見える化

    View Slide

  28. まとめ

    View Slide

  29. まとめ
    freee はごく普通の監視サービスを使っていますが、
    工夫することで少人数を実現しています。
    1. 情報はプルよりプッシュ
    2. フルマネージドサービスの活用
    3. 障害が起きることを前提に
    4. 本業にフォーカスする
    5. トラッキングして見える化

    View Slide

  30. エンジニア募集中

    View Slide

  31. 最後に宣伝
    今年から個人事業主として開業しました。
    ● AWS の導入支援
    ● AWS アーキテクチャのコンサルティング
    などをやっています。
    興味を持った方は、気軽にお声がけください

    View Slide