概要

このガイドでは、Datadog の CloudFormation テンプレートを使用して、Amazon Web Services (AWS) アカウントを Datadog と統合するプロセスの概要を説明します。

簡単に言うと、これには Datadog の AWS アカウントがデータの収集やプッシュのために AWS アカウントに API コールを行うことを可能にする IAM ロールと関連するポリシーの作成が含まれます。また、このテンプレートは、Datadog にログを送信するための Datadog Forwarder Lambda 関数をデプロイします。CloudFormation テンプレートを使用することで、このデータを Datadog アカウントに送信するために必要なすべてのツールが提供されます。Datadog は、最新の機能を提供するために CloudFormation テンプレートを保守しています。

最初の接続が確立された後、AWS 環境に関連する個々の AWS サービスインテグレーションを有効にすることができます。ワンクリックで、Datadog は AWS アカウントに必要なリソースをプロビジョニングし、使用するサービスのメトリクスとイベントのクエリを開始します。人気のある AWS サービスをご使用の場合、Datadog はすぐに使えるダッシュボードを用意しています。これは即座に視覚化を提供し、カスタマイズも可能です。このガイドでは、インテグレーションの設定と Amazon Linux EC2 インスタンスへの Datadog Agent のインストールをデモし、インテグレーションの機能の概要を説明します。利用可能なサブインテグレーションについては、個々の AWS サービスに対するインテグレーションを有効にするセクションを参照してください。

このプロセスは必要な数の AWS アカウントに対して繰り返すことができますし、APIAWS CLITerraform を使って一度に複数のアカウントを設定することも可能です。詳しくは、Datadog-Amazon CloudFormation ガイドをご参照ください。

前提条件

はじめに、以下の前提条件を確認してください。

  1. AWS アカウント。AWS ユーザーは、CloudFormation テンプレートを正常に実行するために、以下の IAM 権限が必要です。

    • cloudformation:CreateStack
    • cloudformation:CreateUploadBucket
    • cloudformation:DeleteStack
    • cloudformation:DescribeStacks
    • cloudformation:DescribeStackEvents
    • cloudformation:GetStackPolicy
    • cloudformation:GetTemplateSummary
    • cloudformation:ListStacks
    • cloudformation:ListStackResources
    • ec2:DescribeSecurityGroups
    • ec2:DescribeSubnets
    • ec2:DescribeVpcs
    • iam:AttachRolePolicy
    • iam:CreatePolicy
    • iam:CreateRole
    • iam:DeleteRole
    • iam:DeleteRolePolicy
    • iam:DetachRolePolicy
    • iam:GetRole
    • iam:GetRolePolicy
    • iam:PassRole
    • iam:PutRolePolicy
    • iam:UpdateAssumeRolePolicy
    • kms:Decrypt
    • lambda:AddPermission
    • lambda:CreateFunction
    • lambda:DeleteFunction
    • lambda:GetCodeSigningConfig
    • lambda:GetFunction
    • lambda:GetFunctionCodeSigningConfig
    • lambda:GetLayerVersion
    • lambda:InvokeFunction
    • lambda:PutFunctionConcurrency
    • lambda:RemovePermission
    • lambda:TagResource
    • logs:CreateLogGroup
    • logs:DeleteLogGroup
    • logs:DescribeLogGroups
    • logs:PutRetentionPolicy
    • oam:ListSinks
    • oam:ListAttachedLinks
    • s3:CreateBucket
    • s3:DeleteBucket
    • s3:DeleteBucketPolicy
    • s3:GetEncryptionConfiguration
    • s3:GetObject
    • s3:GetObjectVersion
    • s3:PutBucketPolicy
    • s3:PutBucketPublicAccessBlock
    • s3:PutEncryptionConfiguration
    • secretsmanager:CreateSecret
    • secretsmanager:DeleteSecret
    • secretsmanager:GetSecretValue
    • secretsmanager:PutSecretValue
    • serverlessrepo:CreateCloudFormationTemplate

セットアップ

  1. Datadog の AWS インテグレーション構成ページに移動し、Add AWS Account をクリックします。

  2. Automatically using CloudFormation のオプションで、インテグレーションの設定を行います。 a. インテグレーションする AWS リージョンを選択します。 b. Datadog API キーを追加します。 c. オプションで、Datadog Forwarder Lambda でログなどを Datadog に送ります。 d. オプションで、Cloud Security Posture Management (CSPM) を有効にして、クラウド環境、ホスト、コンテナをスキャンして、構成ミスやセキュリティリスクを確認します。

  3. Launch CloudFormation Template をクリックします。これで AWS コンソールが開き、CloudFormation スタックがロードされます。すべてのパラメーターは、事前の Datadog フォームでの選択に基づいて入力されているため、必要な場合以外は編集する必要はありません。 注: DatadogAppKey パラメーターは、CloudFormation スタックが Datadog に API コールを行い、この AWS アカウントに対して Datadog の構成を追加・編集できるようにするものです。キーは自動的に生成され、Datadog アカウントに結びつけられます。

  4. AWS から必要な項目にチェックを入れ、Create stack をクリックします。これにより、Datadog スタックと 3 つのネストされたスタックの作成プロセスが開始されます。これには数分かかる場合があります。続行する前に、スタックが正常に作成されたことを確認します。

  5. スタック作成後、Datadog の AWS インテグレーションタイルに戻り、Ready! をクリックします。

  6. データ収集が開始されるまで最大 10 分待ち、すぐに使える AWS 概要ダッシュボードを表示し、AWS サービスやインフラストラクチャーから送信されるメトリクスを確認します。

    Datadog アカウントの AWS 概要ダッシュボード。左側には AWS のロゴと、'No matching entries found' (該当するエントリーはありません) を示す AWS イベントグラフが表示されます。中央には、数値データが表示された EBS ボリューム関連のグラフと、一貫したデータを示すヒートマップが表示されています。右側には、数値データが表示された ELB 関連のグラフと、3 つのソースからのスパイク状のデータを示す時系列グラフが表示されています。

個々の AWS サービスに対するインテグレーションを有効にする

利用可能なサブインテグレーションの全リストは、Integrations ページをご覧ください。これらのインテグレーションの多くは、Datadog が AWS アカウントから入ってくるデータを認識する際に、デフォルトでインストールされます。

ログを送信する

AWSサービスログを Datadog に送信する方法はいくつかあります。

  • Kinesis Firehose destination: Kinesis Firehose 配信ストリームで Datadog の宛先を使用して、ログを Datadog に転送します。CloudWatch から非常に大量のログを送信する際は、このアプローチを使用することが推奨されます。
  • Forwarder Lambda 関数: S3 バケットまたは CloudWatch ロググループにサブスクライブする Datadog Forwarder Lambda 関数をデプロイし、ログを Datadog に転送します。Lambda 関数からログを介して非同期でトレース、拡張カスタムメトリクス、またはカスタムメトリクスを送信するには、このアプローチを使用する必要があります。また、S3 またはデータを Kinesis に直接ストリーミングできないその他のリソースからログを送信する場合、Datadog ではこのアプローチを使用することをお勧めしています。

最も利用されている AWS サービスのログを流すには、AWS サービスのログを有効にするのセクションを読んでください。

検証

ログを有効にしたら、ログエクスプローラー でファセット・パネルから source または service ファセットを使用して、ログを見つけます (S3 からの以下の例のように)。

Datadog アカウントのログエクスプローラーページ。左側には、ソースとサービスのファセットが表示され、両方とも 's3' でチェックされています。右側には、いくつかのログエントリーがリスト形式で表示されています。

Datadog のプラットフォームをさらに活用する

EC2 上の Datadog Agent でより深く視覚化する

Datadog AWS インテグレーションは、デフォルトでは CloudWatch API をクロールして AWS が提供するメトリクスを取得しますが、Datadog Agent を使用すると EC2 インスタンスをさらに深く視覚化することが可能です。Agent はメトリクスやイベントをレポートする軽量なデーモンで、ログやトレースを構成することもできます。Datadog アプリケーションの Agent Installation セクションには、さまざまな OS に Agent をインストールするための手順が記載されています。多くのオペレーティングシステム (例えば、Amazon Linux) には、インスタンスターミナルから実行して Agent をインストールできるワンステップインストールコマンドがあります。

Datadog の 'Integrations' タブの 'Agent' セクション。左側に Datadog Agent の対応 OS の一覧が表示されています。この中から 'Amazon Linux' がハイライトされています。右側には、'Use our easy one-step install' (簡単なワンステップインストールを使用) と表示されています。この下に Agent をインストールするためのコマンドが表示されますが、DD_API_KEY の部分が難読化されています。

Agent がインストールされると、インフラストラクチャーリスト内に骨のアイコンとしてグラフィカルに表示されます。

インフラストラクチャーリストには、2 つのホストがリスト形式で表示されています。どちらのホストも、AWS インテグレーションのための AWS アイコンと、AWS インテグレーションに関連していることを示す青いボックスで示された 'aws' が表示されています。一方のホストには、犬の骨のようなアイコンと、'ntp' と 'system' の青いボックスも表示されています。

上のスクリーンショットは、Datadog Agent が SystemNTP のチェックからデータを報告しているホストを示しています。System チェックは、CPU、メモリ、ファイルシステム、I/O に関するメトリクスを提供し、ホストに関するさらなる洞察を提供します。環境とユースケースに合わせて追加のインテグレーションを有効にするか、さらに DogStatsD を使用してカスタムメトリクスを Datadog に直接送信することが可能です。

この方法の利点については、クラウドインスタンスに Datadog Agent をインストールすべき理由に関する FAQ を参照してください。

Amazon Container Services で Datadog Agent を使用する

コンテナ環境では、インスタンスの管理や Fargate を活用したサーバーレス環境でも、Datadog Agent を利用することができます。

EC2 起動タイプの ECS

Amazon ECS のドキュメントを使用して、ECS クラスターの EC2 インスタンスで Datadog Docker Agent を実行します。Amazon ECS Data Collection のドキュメントで、Datadog アカウントに報告されるメトリクスとイベントを確認します。

Fargate 起動タイプの ECS

Amazon ECS on AWS Fargate のドキュメントを使用して、アプリケーションと同じタスク定義でコンテナとして Agent を実行します。: Fargate インテグレーションをフルに活用するには、Datadog Agent バージョン 6.1.1 以降が必要です。

EKS

Kubernetes Distributions のドキュメントにあるように、Amazon Elastic Kubernetes Service (EKS) の場合は特に構成は必要ありません。EKS クラスターに Agent をデプロイするには、Kubernetes 専用ドキュメントを使用します。

EKS と Fargate

Fargate ポッドは AWS によって管理されているため、CPU やメモリなどのホストベースのシステムチェックは除外されます。AWS Fargate ポッドからデータを収集するには、Amazon EKS on AWS Fargate のドキュメントを使用して、カスタムロールベースのアクセス制御 (RBAC) でアプリケーションポッドのサイドカーとして Agent を実行するようにします。: Datadog Agent バージョン 7.17 以降が必要です。

EKS Anywhere

オンプレミスの Kubernetes クラスターには、EKS Anywhere のドキュメントを使用します。

Datadog のリソースを追加で作成する

Datadog の UI や API を利用するほか、CloudFormation Registry で多くの Datadog リソースを作成することが可能です。視覚化とトラブルシューティングには、ダッシュボードを使用して主要データを表示し、関数を適用し、メトリクス相関を見つけることができます。

アカウントに不要な動作や予期せぬ動作があった場合に通知を受けるには、モニターを作成します。モニターは、アカウントに報告されたデータを一貫して評価し、正しい情報が正しいチームメンバーに届くように通知を送信します。チームに通知するすべての方法については、通知インテグレーションのリストを参照してください。

関連製品を見る

サーバーレス

サーバーレスアプリケーションを実行する AWS Lambda 関数のメトリクス、トレース、ログを Datadog で一元管理することができます。アプリケーションのインスツルメンテーション、サーバーレスライブラリとインテグレーション のインストール、サーバーレスアプリケーションによる分散型トレーシングの実装 、またはサーバーレストラブルシューティングについての説明はサーバーレスを確認してください。

APM

さらに深く掘り下げ、アプリケーションと AWS サービスからより多くのデータを収集するには、AWS X-Ray インテグレーション、または APM を使用して Datadog Agent を持つホストから分散トレースを収集できるようにしてください。その後、APM のドキュメントを読んで、このデータを使用してアプリケーションのパフォーマンスに対する洞察を得る方法について理解を深めてください。

さらに、APM パフォーマンスとインフラストラクチャーメトリクスのアルゴリズム機能である Watchdog を使用すると、アプリケーションの潜在的な問題を自動的に検出し、通知されるようにすることができます。

セキュリティ

Cloud SIEM

Cloud SIEM の概要を参照して、すぐに使えるログ検出ルールに照らし合わせてログを評価します。これらのルールはカスタマイズ可能で、脅威が検出されるとセキュリティシグナルエクスプローラーでアクセス可能なセキュリティシグナルが生成されます。適切なチームに通知するために、通知ルールを使用して複数のルールにまたがる通知設定を構成することができます。

クラウドセキュリティポスチャ管理(CSPM)

CSPM の概要ガイドを使用して、クラウド環境における誤構成の検出と評価について学びます。リソース構成データは、すぐに利用可能なポスチャ管理クラウドおよびインフラストラクチャーの検出ルールに対して評価され、攻撃者のテクニックと潜在的な誤構成にフラグを立て、迅速な対応と修復を可能にします。

トラブルシューティング

Datadog is not authorized to perform sts:AssumeRole というエラーが発生した場合は、専用のトラブルシューティングページを参照してください。その他の問題については、AWS インテグレーショントラブルシューティングガイドを参照してください。

その他の参考資料