Datadog プライベートロケーションを構築する

記事タイトルとURLをコピーする

こんにちは、SWX3人目の熊谷(悠)です。
Datadog Synthetic の Private Location についての連載です。
本稿では構築手順を記します。

前回:Datadog プライベートロケーションとは? - サーバーワークスエンジニアブログ

対象読者

  • Datadog Syntheticの概要を理解している。
  • Dockerの概要を理解している。
  • Amazon ECS on Fargateの構築が出来る。

プライベートロケーション構築

機能の有効化がまだであれば先に有効化の申請をしておいてください。
前回記事参照

Datadogの設定

Datadog サイトへログインします。

API Key作成

Datadog API Keyが無い場合は、作成してください。

  1. 画面左ナビバーの「Integrations」> 「APIs」をクリック ※ブラウザの種類や拡大率により、ナビバーは画面上部に配置されている場合があります。
  2. 「API Keys」 を展開
  3. 「API key name」に任意のキー名を入力し、「Create API Key」ボタンをクリック

2021-03-19_19h21_06.png

プライベートロケーションの作成

  1. 画面左ナビバーの「UX Monitoring」>「Settings」をクリック
  2. 「Add Private Location」ボタンをクリック 2021-09-17_20h19_22.png
  3. Nameに任意のプライベートロケーション名を入力
  4. 任意のAPI Keyを選択
  5. 「Save Location and Generate Configuration File」ボタンをクリック 2021-09-17_20h43_47.png
  6. Configure your private locationの項目はワーカーを構築する環境に応じて必要な場合のみ入力
  7. 「JSON」を選択し、表示された設定ファイルを保存※この画面を閉じると二度と設定ファイルは再表示できないので注意してください! 2021-09-17_20h54_29.png

設定ファイルを保存したら画面は閉じても問題ありません。

プライベートロケーション画面に戻ると、作成したPrivate Locationが追加されている事が確認できます。 2021-09-17_20h55_21.png

ワーカーの作成

本稿ではAWS Fargate(Amazon ECS on Fargate)の手順のみ記します。
ワーカーをホストできればお好きな環境で作成して問題ありません。

タスク定義設定

以下の設定で新しいタスク定義を作成してください。

起動タイプの互換性の選択
  • 起動タイプ:FARGATE
タスクとコンテナの定義の設定
  • タスク定義名:任意
タスクサイズ

タスクサイズはテストタイプとテストの同時実行数によってハードウェア要件の推奨値が変化します。
API テストのみを実行するプライベートロケーションの場合は下記のサイズで動作します。

  • タスクメモリ (GB):0.5GB
  • タスク CPU (vCPU):0.25 vCPU

concurrency(同時実行数)がデフォルト設定でブラウザテストが含まれる場合は最低でも下記以上のサイズが推奨されています。

  • タスクメモリ (GB):10GB
  • タスク CPU (vCPU):2 vCPU
コンテナの定義
スタンダード
  • コンテナ名:任意
  • イメージ:datadog/synthetics-private-location-worker:latest
詳細コンテナ設定(ヘルスチェック)
  • コマンド:CMD-SHELL /bin/sh -c '[ $(expr $(cat /tmp/liveness.date) + 300000) -gt $(date +%s%3N) ]'
  • 間隔:10
  • タイムアウト:2
  • 開始期間:30
  • 再試行:3
# 詳細コンテナ設定(環境)
  • 環境変数:プライベートロケーションの作成時に表示された設定ファイルの各値を下記の通り入力します。※必要に応じてAWS Systems Manager パラメータストアに機密データとして挿入し、参照してください。
キー
DATADOG_ACCESS_KEY [accessKeyの値]
DATADOG_API_KEY [datadogApiKeyの値]
DATADOG_PRIVATE_KEY [privateKeyの値]
DATADOG_PUBLIC_KEY_FINGERPRINT [fingerprintの値]
DATADOG_PUBLIC_KEY_PEM [pemの値]
DATADOG_SECRET_ACCESS_KEY [secretAccessKeyの値]

2021-09-22_20h46_00.png

サービスの作成

ワーカーをProtected Subnetに作成する場合は「ネットワーキング」タブのパブリックIPを「無効」にしてください。
(因みに下図のような構成にしておけば、外部のIP制限のかけられているサービスへ、NAT-GWへ紐づけたEIPを用いる事でIPを固定した状態でのテストが可能です。) protected-subnet.png

逆に、Public Subnetに作成する場合は「ネットワーキング」タブのパブリックIPを「有効」にしてください。 public-subnet.png

Datadogで確認

無事ワーカーコンテナが起動し、Datadogサーバーへレポートが送信され始めると、プライベートロケーションのSTATUSがNOT REPORTINGからREPORTINGに変わり、このロケーションからのテストが可能になります。 2021-09-28_19h26_43.png

テスト

ワーカーから任意のエンドポイントへリクエストを送信し、構築したワーカーからの監視経路に問題が無いかテストができます。

  1. プライベートロケーションにマウスオーバーすると歯車アイコンが表示されるので、クリック 2021-09-28_19h31_46.png
  2. 任意のURLと、必要に応じてオプションを指定して「Test URL」ボタンをクリック 2021-09-28_19h58_43.png
  3. テスト結果が表示されるので、想定通りの結果か確認 2021-09-28_20h01_05.png

Syntheticsテストにプライベートロケーションを使用する

プライベートロケーションの構築完了後、テストの作成・編集時に作成したプライベートロケーションが追加で表示されるようになります。
Select locations項目にて作成したプライベートロケーションを選択すればテストに使用されるようになります。 2021-09-28_20h11_57.png

参考

プライベートロケーションの概要 - Datadog Docs
Synthetic テストをプライベートロケーションから実行する - Datadog Docs