[小ネタ] Datadog の Infrastructure Hosts (EC2)の削減について
アノテーション株式会社のあのふじたです。
最近 AWS と連携して利用している Datadog のコスト見直しをする機会があり、 Infrastructure Hosts の削減について検討する機会があったのでご紹介します。
Datadog とは
Datadog とは、様々なサーバーやアプリケーションから取得したメトリクスやログデータをもとにアラート通知を実装したり、 分析を行ったりすることができるクラウド型のモニタリングツールです。
また、Datadog には AWS、Azure、Google Cloud など主要なクラウドサービスに対するインテグレーションが標準で用意されており、 このインテグレーションを利用することにより監視対象のサービスと Datadog の連携を簡単に実装することができます。
Datadog 公式のインフラストラクチャーの価格ページです インフラストラクチャーの価格
※プランによって料金は変動する為、ここで明示的な金額は記載しません。
Datadog 公式の課金についてのページ 課金
Datadog 公式の料金についてページ 料金
今回はこの課金・料金ページにおける インフラストラクチャーホスト についてお話しします。
ホスト ホストとは、Datadog で監視する実際のまたは仮想の OS インスタンスで、サーバー、VM、ノード (Kubernetes の場合)、 App Service Plan インスタンス (Azure App Service の場合)、または Heroku dyno (Heroku プラットフォームの場合) などがあります。 Datadog Agent がインストールされているすべてのインスタンスのほか、Datadog インテグレーションを使用して監視されているすべての Amazon EC2、Google Cloud、Azure、vSphere VM がホストになり得ます。 Agent がインストールされている EC2 や VM は、1 つのインスタンスとしてカウントされます (二重課金はありません)。
報告を行っていないホスト (インフラストラクチャーリストでステータスが ???) は、課金の対象になりません。 そのようなホストがインフラストラクチャーリストから除外されるまで、最大 2 時間かかることがあります。 Datadog は、これらのホスト (有料アカウント) の履歴データを保持します。ホスト名またはタグがわかれば、メトリクスをダッシュボードでグラフ化できます。
ホストは、物理または仮想のオペレーティングシステムインスタンスです。 Datadog では、お客様がインフラストラクチャーサービスで監視しているホストのユニーク数を 1 時間ごとに記録します。 Datadog の最高水準プラン (HWMP) では、月末にこの 1 時間ごとの測定結果が最高から最低まで順序付けられ、そのうち 9 番目に高い測定値に基づいて課金されます。 2 月は例外で、Datadog は 8 番目に高い測定値に基づいて課金します。 月単位/時間単位混合プラン (MHP) では、月単位の最低契約量に対して課金され、ホスト数がその契約量を超えた時間については、時間単位の料金が課金されます。
長々と説明してしまいましたが、ホストとして課金される条件は以下と考えられます。
- Datadog Agent がインストールされている EC2 インスタンス
- AWS インテグレーション連携で EC2 が有効化されている場合の EC2 インスタンス
ホストの課金状況は Datadog のコンソール上の Plan & Usage から確認できます。
AWSアカウント単位で Infrastructure Hosts を無効化したい場合
- 対象アカウント上の Datadog Agent の アンインストール
- AWS インテグレーション連携での EC2 が無効化
を行うことで無効化できます。
ただし、無効化した月に既にカウントされたホストについては インフラストラクチャーの監視 の記述に従い課金が発生するので注意が必要です。
AWSアカウント内の一部のインスタンスの Infrastructure Hosts を削減したい場合
- Amazon Web Services
- Configration
- 対象AWSアカウントを選択
- Metric Collection へ移動し以下の入力欄に削減対象を絞る条件を入力します。
-
- Select AWS Service に EC2
- Add tags in key:value format には 削減したい対象のEC2のタグを入力
- 例:datadog のカスタムタグがあり Value:false のインスタンスを削減対象とする場合
!datadog:false
- 例:datadog のカスタムタグがあり Value:false のインスタンスを削減対象とする場合
-
-
- 例:datadog のカスタムタグがあり Value:true のインスタンスのみメトリクス対象とする場合
datadog:true
- 例:datadog のカスタムタグがあり Value:true のインスタンスのみメトリクス対象とする場合
-
Limit Metric Collection to Specific Resources の横の ? マークにカーソルを当てると詳しい説明が出てきますのでご確認ください。
These fields accept a comma-separated list of tags in the form
key:value
. These lists defines filter which will be used when collecting metrics from the associated AWS Service. Thesekey:value
pairs can be used to both whitelist and blacklist tags. To add a blacklisted tag, include a!
before the tag key. Wildcards, such as?
(for single characters) and*
(for multiple characters), also can be used.The filter only will exclude resources where all whitelisted tags are missing — or, in other words, where the list of whitelisted tags forms an "OR" statement.
For example:
datadog:monitored,env:production
This filter will only collect EC2 instances that contain the tagdatadog:monitored OR the tag env:production.
If you add a blacklisted tag to the list, it will take precedence — or, in other words, add an "AND" statement.
For example:
datadog:monitored,env:production,instance-type:c1.*,!region:us-east-1
This filter will only collect EC2 instances that contain the tagdatadog:monitored OR the tag env:production OR an instance-type tag with a
c1.*
value AND NOT a region:us-east-1 tag.
かなり柔軟に抽出や除外が設定できます。
おわりに
AWS と連携して利用している Datadog の Infrastructure Hosts の削減について説明しました。
基本的には以下の
- 対象アカウント上の Datadog Agent の アンインストール
- AWS インテグレーション連携での EC2 の無効化
で問題ありません。
AWS インテグレーション連携を有効化したまま一部除外する場合は Datadog Agent の アンインストール と カスタムタグを利用した条件を追記することで削減することが可能です。
Datadog による基本的なメトリクス取得が不要で CloudWatch のみで監視が事足りると判断した場合にはご検討ください。
このエントリが誰かの助けになれば幸いです。
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。
「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。
現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。
少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。