概要
This guide provides an overview of the process for integrating an Amazon Web Services(AWS) account with Datadog using Datadog’s CloudFormation template.
簡単に言うと、これには 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 アカウントに対して繰り返すことができますし、API、AWS CLI、Terraform を使って一度に複数のアカウントを設定することも可能です。詳しくは、Datadog-Amazon CloudFormation ガイドをご参照ください。
前提条件
はじめに、以下の前提条件を確認してください。
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:TagRole
- 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
- s3:PutLifecycleConfiguration
- secretsmanager:CreateSecret
- secretsmanager:DeleteSecret
- secretsmanager:GetSecretValue
- secretsmanager:PutSecretValue
- serverlessrepo:CreateCloudFormationTemplate
セットアップ
Datadog の AWS インテグレーション構成ページに移動し、Add AWS Account をクリックします。
Automatically using CloudFormation のオプションで、インテグレーションの設定を行います。
a. インテグレーションする AWS リージョンを選択します。
b. Datadog API キーを追加します。
c. オプションで、Datadog Forwarder Lambda でログなどを Datadog に送ります。
d. Optionally, enable Cloud Security Management Misconfigurations to scan your cloud environment, hosts, and containers for misconfigurations and security risks.
Launch CloudFormation Template をクリックします。これで AWS コンソールが開き、CloudFormation スタックがロードされます。すべてのパラメーターは、事前の Datadog フォームでの選択に基づいて入力されているため、必要な場合以外は編集する必要はありません。
注: DatadogAppKey
パラメーターは、CloudFormation スタックが Datadog に API コールを行い、この AWS アカウントに対して Datadog の構成を追加・編集できるようにするものです。キーは自動的に生成され、Datadog アカウントに結びつけられます。
AWS から必要な項目にチェックを入れ、Create stack をクリックします。これにより、Datadog スタックと 3 つのネストされたスタックの作成プロセスが開始されます。これには数分かかる場合があります。続行する前に、スタックが正常に作成されたことを確認します。
スタック作成後、Datadog の AWS インテグレーションタイルに戻り、Ready! をクリックします。
データ収集が開始されるまで最大 10 分待ち、すぐに使える AWS 概要ダッシュボードを表示し、AWS サービスやインフラストラクチャーから送信されるメトリクスを確認します。
個々の AWS サービスに対するインテグレーションを有効にする
利用可能なサブインテグレーションの全リストは、Integrations ページをご覧ください。これらのインテグレーションの多くは、Datadog が AWS アカウントから入ってくるデータを認識する際に、デフォルトでインストールされます。
ログを送信
AWSサービスログを Datadog に送信する方法はいくつかあります。
- Amazon Data Firehose destination: Amazon Data Firehose 配信ストリームで Datadog の宛先を使用して、ログを Datadog に転送します。CloudWatch から非常に大量のログを送信する際は、このアプローチを使用することが推奨されます。
- Forwarder Lambda 関数: S3 バケットまたは CloudWatch ロググループにサブスクライブする Datadog Forwarder Lambda 関数をデプロイし、ログを Datadog に転送します。Lambda 関数からログを介して非同期でトレース、拡張カスタムメトリクス、またはカスタムメトリクスを送信するには、このアプローチを使用する必要があります。また、S3 またはデータを Kinesis に直接ストリーミングできないその他のリソースからログを送信する場合、Datadog ではこのアプローチを使用することをお勧めしています。
最も利用されている AWS サービスのログを流すには、AWS サービスのログを有効にするのセクションを読んでください。
検証
ログを有効にしたら、ログエクスプローラー でファセット・パネルから source
または service
ファセットを使用して、ログを見つけます (S3 からの以下の例のように)。
Datadog のプラットフォームをさらに活用する
EC2 上の Datadog Agent でより深く視覚化する
Datadog AWS インテグレーションは、デフォルトでは CloudWatch API をクロールして AWS が提供するメトリクスを取得しますが、Datadog Agent を使用すると EC2 インスタンスをさらに深く視覚化することが可能です。Agent はメトリクスやイベントをレポートする軽量なデーモンで、ログやトレースを構成することもできます。Datadog アプリケーションの Agent Installation セクションには、さまざまな OS に Agent をインストールするための手順が記載されています。多くのオペレーティングシステム (例えば、Amazon Linux) には、インスタンスターミナルから実行して Agent をインストールできるワンステップインストールコマンドがあります。
Agent がインストールされると、インフラストラクチャーリスト内に骨のアイコンとしてグラフィカルに表示されます。
上のスクリーンショットは、Datadog Agent が System と NTP のチェックからデータを報告しているホストを示しています。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 以降が必要です。
Fargate オーケストレーションタイプによる AWS Batch
Amazon ECS on AWS Fargate for AWS Batch のドキュメントを使用して、アプリケーションと同じ AWS Batch ジョブ定義でコンテナとして 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 リソースを作成することが可能です。視覚化とトラブルシューティングには、ダッシュボードを使用して主要データを表示し、関数を適用し、メトリクス相関を見つけることができます。
To get notified of any unwanted or unexpected behavior in your account, create monitors. Monitors consistently evaluate the data reported to your account, and send Notifications to ensure that the right information gets to the right team members. Review the List of Notification Integrations for all the ways to notify your team.
関連製品を見る
サーバーレス
サーバーレスアプリケーションを実行する AWS Lambda 関数のメトリクス、トレース、ログを Datadog で一元管理することができます。アプリケーションのインスツルメンテーション、サーバーレスライブラリとインテグレーション のインストール、サーバーレスアプリケーションによる分散型トレーシングの実装 、またはサーバーレストラブルシューティングについての説明はサーバーレスを確認してください。
APM
さらに深く掘り下げ、アプリケーションと AWS サービスからより多くのデータを収集するには、AWS X-Ray インテグレーション、または APM を使用して Datadog Agent を持つホストから分散トレースを収集できるようにしてください。その後、APM のドキュメントを読んで、このデータを使用してアプリケーションのパフォーマンスに対する洞察を得る方法について理解を深めてください。
さらに、APM パフォーマンスとインフラストラクチャーメトリクスのアルゴリズム機能である Watchdog を使用すると、アプリケーションの潜在的な問題を自動的に検出し、通知されるようにすることができます。
セキュリティ
Cloud SIEM
Cloud SIEM の概要を参照して、すぐに使えるログ検出ルールに照らし合わせてログを評価します。これらのルールはカスタマイズ可能で、脅威が検出されるとセキュリティシグナルエクスプローラーでアクセス可能なセキュリティシグナルが生成されます。適切なチームに通知するために、通知ルールを使用して複数のルールにまたがる通知設定を構成することができます。
Cloud Security Management Misconfigurations
CSM Misconfigurations の設定ガイドを使用して、クラウド環境における誤構成の検出と評価について学びます。リソース構成データは、すぐに利用可能なクラウドおよびインフラストラクチャーのコンプライアンスルールに対して評価され、攻撃者のテクニックと潜在的な誤構成にフラグを立て、迅速な対応と修復を可能にします。
トラブルシューティング
Datadog is not authorized to perform sts:AssumeRole
というエラーが発生した場合は、専用のトラブルシューティングページを参照してください。その他の問題については、AWS インテグレーショントラブルシューティングガイドを参照してください。
その他の参考資料