Slide 1

Slide 1 text

TerraformとJenkinsによる 外形監視管理の自動化 2019/07/06 グリー株式会社 李 一凡 @Bcu30

Slide 2

Slide 2 text

・李 一凡 ( YIFAN LI ) ・2015年~来日 ・2018年にグリー新卒入社 ・インフラ部サービスインストレーション チーム所属 自己紹介 ・普段の仕事:   インフラの運用   RDBMS   Monitoring ・最近の趣味   Goを書くこと

Slide 3

Slide 3 text

モニタリング サービス利用者視点 ・サービスが使えるか サービス管理者視点 ・メトリクス ・ログ ・プロセスの死活 ・サービスの正常性を監視して問題を特定するシステム

Slide 4

Slide 4 text

外形監視(Synthetics)とは ・ユーザーアクセスをシミュレートして、定期的に、外部公開してい るURLに対してリクエストを送り、レスポンスタイムとステータス コードをチェックすること 内部監視 外形監視 サービス

Slide 5

Slide 5 text

グリー外形監視ツールの世代交代 旧 新 内製の外形監視サービス ・OSやミドルウェアのバージョン アップでメンテの手間がかかる ・(AWS EC2) 監視経路は一経 路だけのため、誤検知しやすい 外製の外形監視サービス ・メンテの手間がなくなる ・マルチ経路、誤検知しにくい

Slide 6

Slide 6 text

外形監視サービス

Slide 7

Slide 7 text

外形監視サービス 無料でも使える REST API 基本的な監視機能完備 (PRO PLAN) SSL証明書期限の監視

Slide 8

Slide 8 text

導入課題 uptimerobotはSSO (シングルサインオン) 機能がない ・web consoleにログインできるのは1ユーザーしかない ・共有のpasswordを使い回すのは嫌 300程の監視URLがある ・APIから一括設定したい ・変更記録を残したい

Slide 9

Slide 9 text

Terraform Terraformの概念 ・Infrastructure As Code Terraformのコンポーネント ・Config  ・HCL、JSON ・Provider  ・各プラットフォームと通信する  ・AWS、GCP、AZUREなど ・tf.state  ・状態ファイル Terraformのworkflow Code Plan Apply コードを書く 変更を確認 変更を反映

Slide 10

Slide 10 text

Terraform uptimerobotのprovider ・https://github.com/louy/terraform-provider-uptimerobot ・自社の運用に合わせて機能を拡張している

Slide 11

Slide 11 text

Terraformのmodule Terraformのmodule ・設定ファイルをmodule化にする 各moduleをloadする 共通のalter通知先の設定 alter通知先idをexposeする monitorの設定 monitor設定に必要な 変数 access keyなどの変数

Slide 12

Slide 12 text

CI ( Continuous Integration ) コードがあれば自動化ができる!! ・CIはJenkinsを使っている Jenkinsにやってほしいこと ・git pull requestが出されたら  ・terraform validate:syntaxチェック  ・terraform plan: 実行計画の確認 ・masterブランチにmergeされたら  ・terraform apply: 本番に反映 ・api keyを管理する

Slide 13

Slide 13 text

最終構成

Slide 14

Slide 14 text

運用上の問題点 ・(uptimerobot) http status codeが3xxの時、リダイレクト先まで辿り着く ・問題となるエンドポイントはパッと分からない ・アラートの自動確認仕組みを入れたい ・(uptimerobot) status pageは検索機能がない ・CLIツールを作りました ・簡単に設定を確認することができる。 ・https://github.com/c-bata/go-prompt

Slide 15

Slide 15 text

まとめ 今までやったこと: ・外形監視サービスの選定 ・TerraformとJenkinsで自動化管理の実装 今後にやりたいこと: ・アラートの自動対応 ・uptimerobotのprometheus exporterを試したい ・https://github.com/maaruhoshi/uptimerobot-prometheus-exporter

Slide 16

Slide 16 text

ありがとうございました!