TerraformとJenkinsによる外形監視管理の自動化
by
gree_tech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
ありがとうございました!