Slide 1

Slide 1 text

Datadogの設定をTerraformで 書いてGit管理した話 1

Slide 2

Slide 2 text

Name:ユータ Occupation:SRE Twitter:@Y0u281 (オーでなくゼロです) ブログ:https://zenn.dev/yuta28 自己紹介 Twitter 2

Slide 3

Slide 3 text

目次 ● 背景 ● Datadog ○ Terraform ○ GitHub Actions ● よかったこと ● まとめ ● 宣伝 3

Slide 4

Slide 4 text

背景 ● 今まで
 ○ メトリクス:Mackerel
 ○ ログ   :OpenSearch
 OpenSearchに移行した経緯はこちらをご覧ください
 CloudWatch LogsからOpenSearchへログ集約を移行した - CUEBiC TEC BLOG (hatenablog.com) 4

Slide 5

Slide 5 text

背景 ● 監視から可観測 5

Slide 6

Slide 6 text

Datadog やりたいこと ● SLO作成 ● 監視設定をコード管理 6

Slide 7

Slide 7 text

Terraform ● 公式でDatadogモジュールを提供 ● モニタリング、SLOの設定ができる ● ダッシュボード作成もできるが… 7

Slide 8

Slide 8 text

GitHub Actions 8

Slide 9

Slide 9 text

GitHub Actions Terraform用のGitHub Actionsワークフロー 9 - name: Terraform Format run: terraform fmt -check continue-on-error: true - name: Terraform Validate run: terraform validate -no-color - name: Terraform Plan if: github.event_name == 'pull_request' run: terraform plan -no-color -input=false - name: Terraform Apply if: github.ref == 'refs/heads/main' && github.event_name == 'push' run: terraform apply -auto-approve -input=false env: #Datadog APP key & API key TF_VAR_datadog_api_key: ${{ secrets.DATADOG_API_KEY }} TF_VAR_datadog_app_key: ${{ secrets.DATADOG_APP_KEY }} # OIDC certificated Terraform - name: Configure AWS uses: aws-actions/configure-aws-credentials@v1 with: role-to-assume: ${{ secrets.AWS_ROLE_ARN }} aws-region: ap-northeast-1 ↗

Slide 10

Slide 10 text

GitHub Actions 10 PRしてPlanがうまくいくか確認 mainにマージしたら自動 Apply

Slide 11

Slide 11 text

Datadog 11

Slide 12

Slide 12 text

Datadog ログをOpenSearchからDatadogへ集約 FluentdのプラグインにDatadog対応 12

Slide 13

Slide 13 text

よかったこと ● ぐちゃぐちゃだったモニタリング設定がIaCできれいに整えられた ● GitHub Actionsで楽々CI/CD ● SLOの設定ができた 13

Slide 14

Slide 14 text

まとめ 14 ● モニタリングもIaC ● モニタリングも GitHub Actionsで自動化

Slide 15

Slide 15 text

ありがとうございました 弊社のテックブログもご覧ください↓ 15