16 チャプター
95 課題

コース概要

Datadog は機能が多すぎて圧倒されがちですが、実務でよく使う機能は限られています。Nice to have ではなく Must な機能に的を絞り、最短で戦えるスキルが身につく構成に仕上げました。

単に知識をインプットするだけでは終わりません。

Datadog で計測する対象となる Goアプリケーションを ECS 上に構築し、DatadogエージェントやFireLensを組み込む一連の流れを実際に手を動かして体験してもらいます。

マイクロサービス同士は gRPC で通信しており、そこで生成されるトレースやスパンを Datadog 上で観察できるのも楽しいポイントです。外部API通信やDBへのクエリも全てトレースしていきます。

Datadog トレース画面

そして最後の課題では、他コースで構築した既存アプリケーションに Datadog を導入する という、実務さながらのタスクをバックエンドからインフラまで一気通貫で対応してもらいます。ヒントも少なく難易度は高めですが、これを突破できれば、実際の現場でDatadogを導入する際にも迷わずリリースまでやり切れるはずです!

学習ポイント

  • Datadog エージェント & FireLens によるログ収集基盤の構築
  • AWS インテグレーションによるメトリクス収集と課金形態の理解
  • gRPC マイクロサービスの分散トレーシング(APM)
  • ログ・トレース・メトリクスの相関分析
  • SLA / SLO / SLI とエラーバジェットの設計
  • ダッシュボード & モニターの構築と Terraform 管理
  • 既存アプリケーションへの Datadog 導入(実務想定の総合課題)

構成図

Datadog コース 構成図
Ch.01 Datadog コースのオンボーディング
01 Datadog コースの全体像を把握する
02 Datadog コースを第一号の受講生として受けてみた感想
03 Datadog コースを学習する前に突破しておくべきコースについて
04 Datadog コースでかかる料金について知る
Ch.02 Datadogで計測するアプリケーションについて理解する
01 Datadog コースで取り扱うアプリケーションの全体像について把握する
02 cost-aggregatorの環境構築を行う
03 cost-providerの環境構築を行う
04 【nice to have】gRPC入門
Ch.03 Datadogで計測するアプリケーションのstg環境を構築する 前編
01 cost-apiのstg環境を構築する全体像を知る
02 cost-api用のECRを2つ作成する
03 cost-api用のECRにDockerイメージをpushする
04 cost-api用のIAMロールを作成する
05 cost-api用のセキュリティグループを作成する
06 S3にcost-aggregator, cost-provider用の環境変数ファイルをアップロードする
Ch.04 Datadogで計測するアプリケーションのstg環境を構築する 後編
01 【動画】cost-api用のECSタスク定義を作成する
02 cost-api用のECSサービスを作成する
03 cost-api用のターゲットグループを作成する
04 cost-api用のALBリスナールールを作成する
05 cost-api用のECSサービスとALBを繋ぎこむ
06 cost-api用のサブドメインをRoute 53 に登録する
07 cost-apiにてモックを外し、実際にAWS APIからコスト情報を取得する
08 Datadog コース専用のコスト削減ツール DD Course Cost Cutter
Ch.05 Datadog 入門およびアカウント作成
01 Datadog 入門
02 監視の基本概念 (メトリクス, ログ, トレース) を抑える
03 Datadogアカウントを作成する
Ch.06 AWSインテグレーションによりAWSとDatadogを連携する
01 AWSインテグレーションとDatadogエージェントの違いについて知る
02 AWSインテグレーションとは?
03 AWSインテグレーションのために各種キーを発行する
04 まずはベタに貼り付けてインテグレーションを完了させる
05 TerraformにてDatadogの認証情報のベタ書きをやめる
06 TerraformにてDatadog用のIAMロールの定義をリファクタする
07 TerraformにてAWSインテグレーションの定義をmodule化する
08 AWSインテグレーションにて連携したデータを確認する
09 AWSインテグレーションを一旦お掃除する
Ch.07 メトリクスによりシステムの変化を数値で追跡する
01 Datadog メトリクス入門
02 Datadogエージェントとは?
03 【深掘り】Datadogエージェントはどうやって、別コンテナのCPUやメモリ情報を取得しているのか?
04 ECSタスクにDatadogエージェントを同居させてコンテナのメトリクス情報を取得する
05 【動画】Metrics Explorerにてメトリクスを詳細に分析する
06 メトリクスのフィルタリング道場
07 【非推奨】カスタムメトリクスについても押さえておこう
Ch.08 ログによりアプリケーションの不具合を迅速に特定する
01 Datadog Logs 入門
02 Datadogにおけるログの取り扱いのベストプラクティスを知る
03 【動画】Datadogにおけるログのライフサイクルと課金体系を知る
04 ECSタスクにFireLensを導入してDatadogにログを送信する
05 cost-providerコンテナのログをFireLens経由でDatadogに送信する
06 【深掘り】FireLensがDatadogにログを送信する仕組みについて理解する
07 ログエクスプローラーの使い方を知る
Ch.09 トレースによりパフォーマンスのボトルネックを突き止める
01 Datadogトレース入門
02 Datadogにおけるトレースのライフサイクルと課金体系を知る
03 Datadogにcost-apiのトレースを送信する
04 スタートアップの依存関係を整理してTracerのエラーログを解消する
05 【深掘り】Datadogへトレースを送信する仕組みを理解する
Ch.10 APMによりアプリケーションのパフォーマンスを可視化する
01 【動画】APMとは?
02 【動画】実務におけるAPMのデフォルトビューの使い方を知る
Ch.11 ダッシュボードによりインフラの傾向を横断的に観察する
01 ダッシュボードとは?
02 ダッシュボードにはYAGNI原則で本当に必要なものだけを入れるべし
03 ダッシュボードを作ってみよう
04 【動画】ダッシュボードにECSタスク数を観察するウイジェットを追加する
05 【動画】ダッシュボードにレイテンシを観察するウイジェットを追加する (Empty Group)
06 【動画】ダッシュボードにEC2、RDSを観察するウイジェットを追加する (Save to dashboard)
Ch.12 モニターによりシステムの異常を検知して通知する
01 モニターとは?
02 ログモニターにより指定のエラーメッセージを検知する
03 【動画】実際にログモニターを設定してSlackへエラー通知を飛ばしてみる
04 Error Trackingモニターにより見慣れないエラーログを自動検知する
05 メトリクスモニターとは?
06 【動画】実際にメトリクスモニターを設定してSlackへ通知を飛ばしてみる
Ch.13 SLOによりサービス品質を数値化する
01 SLA、 SLO、SLIとは?
02 エラーバジェットとは?
03 【動画】実際にSLOを作成する
04 【動画】SLOモニターを作成する
05 Compositeモニターとは?
06 実際にCompositeモニターを作成する
Ch.14 【Backend Pratica】GoアプリケーションにDatadogを導入する実践ガイド
01 Backend Praticaチャプターの概要
02 アプリケーションログのベストプラクティスを知る
03 ログをJSONで構造化する
04 Goのcontext、ミドルウェアについて理解する
05 【動画】不要なログとトレースを除外する
06 Goにおけるエラーハンドリングとログ出力のベストプラクティスを知る
07 【動画】Goアプリケーションにおけるトレースとログの伝搬の仕組み
08 【動画】Goアプリケーションにおけるトレースとログの伝搬の実装手順
Ch.15 【鬼モード】Slack MetricsにDatadogを導入する
01 Slack MetricsにDatadogを導入する全体像を知る
02 loggerにenv, service, versionを追加する
03 Tracerをmain.goで起動する
04 Tracer用のhttpミドルウェアを追加する
05 httpミドルウェアにて、contextにloggerとトレースIDを注入する
06 DBへのクエリ発行でトレーシングを行う
07 ECRにDockerイメージをpushする 〜 効率よく検証するためのTips 〜
08 ECSタスク定義にDatadogエージェントとFireLensを追加する
09 最終動作確認を行う
10 Slack MetricsをDatadog導入前の状態に戻す
Ch.16 Datadog コース ラップアップ編
01 Datadog関連リソースをterraform化する
02 cost-apiのECSタスク定義をTerraform化する
03 Datadog コースの最終課題を提出する
04 Datadog コースで使用したリソースをお掃除する

コース突破者の声

R.N さん 受講完了

DatadogやNew Relicといったオブザーバビリティプラットフォーム自体を今まで経験することがなかったので、新しい知識をキャッチアップできると受講前から非常にワクワクしてましたが、結果、大変満足度の高いコースだったと思いました!

A.H さん 受講完了

実務でDatadogは利用していますがとても学びが多いカリキュラムでした。
Datadogコースを通じて、監視の基本概念であるメトリクス・ログ・トレースの3本柱から、実際のアプリケーションへの導入、そしてSLOやダッシュボードを活用した運用まで、体系的に学ぶことができました。

K.T さん 受講完了

今の業務先に導入する見通しが完全にたった。提案して入れるまでを一貫してやりたいと思う。
初見で見た時はサイドバー見ただけでウッとなっていたDatadogの苦手意識がある程度消えたように感じる。
Backend Praticaとその後の実装がとても勉強になったし、何より楽しかった。特にサービス間を横断するトレース情報の受け渡しについては仕組みを理解できてよかった。
cloud-pratica-package の社内共通パッケージは他のリポジトリにも横断して使うことができるので、手札として持って置けるようにしておきたい。

S.O さん 受講完了

効率的に学ぶことができ、実務で役立ちました。
Datadogは機能が非常に多く、最初はどこから手を付ければよいか迷いがちですが、本コースでは実務で特に役立つ機能に絞ってキャッチアップできる構成となっており、学習の負担が少なかったです。

Y.M さん 受講完了

Datadogは今までほとんど触ってこなかったので苦手意識しかありませんでしたが、コースの中間あたりで苦手意識はなくなり楽しみながらキャッチアップすることができました。

T.K さん 受講完了

自社ではDatadog Agentを使用していますが、ECSのログについてはDatadog Forwarderを使って送信しています。今回、Fluent Bitを使ったログ送信の構成を学び、これまでの構成と大きく異なっていたため驚きました。こちらの構成の方がメリット大きいこともわかりました。