AWS PrivateLink を介して Datadog に接続する

Datadog PrivateLink は選択された Datadog サイトをサポートしていません。

このガイドでは、Datadog で AWS PrivateLink を使用するための構成方法について説明します。

概要

全体のプロセスは、ローカルの Datadog Agent がデータを送信できるように、VPC 内に内部エンドポイントを構成することから成ります。その後、あなたの VPC エンドポイントは Datadog の VPC 内のエンドポイントとピアリングされます。

VPC ダイアグラムのスキーマ

セットアップ

Datadog は に AWS PrivateLink エンドポイントを公開しています。

しかし、他のリージョンから の Datadog の PrivateLink サービスにトラフィックをルーティングするには、リージョン間の Amazon VPC ピアリングを使用します。リージョン間 VPC ピアリングを使用すると、異なる AWS リージョン間で VPC の接続を確立できます。これにより、異なるリージョンの VPC リソースがプライベート IP アドレスを使用して相互に通信できます。詳細については、Amazon VPC ピアリングを参照してください。

  1. AWS コンソールをリージョン に接続し、VPC エンドポイントを作成します。
VPC エンドポイントの作成
  1. Find service by name を選択します。
  2. AWS PrivateLink を確立したいサービスに応じて、Service Name テキストボックスに入力します。
VPC サービス名
DatadogPrivateLink サービス名プライベート DNS 名
ログ (Agent HTTP インテーク)
ログ (User HTTP インテーク)
APIapi.
メトリクスmetrics.agent.
コンテナorchestrator.
プロセスprocess.
プロファイリングintake.profile.
トレースtrace.agent.
Database Monitoringdbm-metrics-intake.
Remote Configurationconfig.
  1. Verify をクリックします。これで Service name found が表示されない場合は、Datadog サポートに連絡してください。
  2. Datadog VPC サービスエンドポイントとピアリングする VPC とサブネットを選択します。
  3. Enable DNS name の項目で、Enable for this endpoint がチェックされていることを確認します。
DNS プライベートの有効化
  1. お好みのセキュリティグループを選択して、この VPC エンドポイントにトラフィックを送信できるものを制御します。

: セキュリティグループは TCP ポート 443 のインバウンドトラフィックを許可する必要があります。

  1. 画面の下部にある Create endpoint をクリックします。成功すると、以下が表示されます。
VPC エンドポイントが作成されました
  1. VPC エンドポイント ID をクリックして、そのステータスを確認します。
  2. ステータスが Pending から Available に変わるのを待ちます。これには最大 10 分かかることがあります。Available と表示されたら、AWS PrivateLink を使用できます。
VPC ステータス
  1. v6.19 または v7.19 より古いバージョンの Datadog Agent を実行している場合、ログデータを収集するために、Agent が HTTPS 経由でログを送信するように構成されていることを確認してください。データがまだない場合は、Agent の datadog.yaml コンフィギュレーションファイルに以下を追加します。
logs_config:
force_use_http: true

コンテナ Agent を使用している場合は、代わりに以下の環境変数を設定します。

DD_LOGS_CONFIG_FORCE_USE_HTTP=true

この構成は、AWS PrivateLink と Datadog Agent を使用してログを Datadog に送信する場合に必要であり、Lambda Extension には必要ありません。詳細については、Agent のログ収集を参照してください。

  1. Lambda Extension が環境変数 DD_API_KEY_SECRET_ARN で指定された ARN を使用して AWS Secrets Manager から Datadog API キーをロードする場合、Secrets Manager の VPC エンドポイントを作成する必要があります。

  2. Agent を再起動して、AWS PrivateLink 経由で Datadog にデータを送信します。

Amazon VPC ピアリング

  1. AWS コンソールをリージョン に接続し、VPC エンドポイントを作成します。
VPC エンドポイントの作成
  1. Find service by name を選択します。
  2. AWS PrivateLink を確立したいサービスに応じて、Service Name テキストボックスに入力します。
VPC サービス名

| Datadog | PrivateLink サービス名

ログ (Agent HTTP インテーク)
ログ (User HTTP インテーク)
API
メトリクス
コンテナ
プロセス
プロファイリング
トレース
Database Monitoring
Remote Configuration
  1. Verify をクリックします。これで Service name found が表示されない場合は、Datadog サポートに連絡してください。

  2. 次に、Datadog VPC サービスエンドポイントとピアリングする VPC とサブネットを選択します。Enable DNS name は選択しないでください。VPC ピアリングでは DNS を手動で構成する必要があります。

  3. お好みのセキュリティグループを選択して、この VPC エンドポイントにトラフィックを送信できるものを制御します。

: セキュリティグループは TCP ポート 443 のインバウンドトラフィックを許可する必要があります。

  1. 画面の下部にある Create endpoint をクリックします。成功すると、以下が表示されます。
VPC エンドポイントが作成されました
  1. VPC エンドポイント ID をクリックして、そのステータスを確認します。
  2. ステータスが Pending から Available に変わるのを待ちます。これには最大 10 分かかることがあります。
  3. エンドポイントを作成した後、VPC ピアリングを使用して、PrivateLink エンドポイントを別のリージョンで利用できるようにし、PrivateLink 経由で Datadog にテレメトリーを送信します。詳細は、AWS の VPC ピアリング接続の操作ページを参照してください。
VPC ステータス

Amazon Route53

  1. AWS PrivateLink エンドポイントを作成した各サービスに対して、Route53 プライベートホストゾーンを作成します。プライベートホストゾーンを の VPC に適用します。
Route53 プライベートホストゾーンの作成

以下のリストを使用して、Datadog の異なる部分にサービスと DNS 名をマッピングします。

DatadogPrivateLink サービス名プライベート DNS 名
ログ (Agent HTTP インテーク)agent-http-intake.logs.
ログ (User HTTP インテーク)http-intake.logs.
APIapi.
メトリクスmetrics.agent.
コンテナorchestrator.
プロセスprocess.
プロファイリングintake.profile.
トレースtrace.agent.
Database Monitoringdbm-metrics-intake.
Remote Configurationconfig.

また、AWS API の DescribeVpcEndpointServices を照会するか、以下のコマンドを使用して、この情報を見つけることができます。

aws ec2 describe-vpc-endpoint-services --service-names <service-name>`

例えば、 の Datadog メトリクスエンドポイントの場合:

aws ec2 describe-vpc-endpoint-services --service-names  | jq '.ServiceDetails[0].PrivateDnsName'

これは、Agent トラフィックの発信元となる VPC と関連付けるために必要な、プライベートホストゾーン名である metrics.agent. を返します。このレコードを上書きすると、メトリクスに関連するインテークホスト名がすべて取得されます。

  1. それぞれの新しい Route53 プライベートホストゾーン内に、同じ名前で A レコードを作成します。Alias オプションをトグルし、Route traffic to で、Alias to VPC endpoint を選び、DNS 名と関連付けられた VPC エンドポイントの DNS 名を入力します。

    :

    • DNS 名を取得するには、エンドポイントサービスのプライベート DNS 名構成ドキュメントを表示するを参照してください。
    • Agent は、バージョン管理されたエンドポイントにテレメトリーを送信します。例えば、[version]-app.agent. は、CNAME エイリアスを介して metrics.agent. に解決されます。したがって、必要なのは metrics.agent. 用のプライベートホストゾーンを設定することだけです。
A レコードの作成
  1. Datadog PrivateLink のエンドポイントを含む の VPC と、Datadog Agent を実行するリージョンの VPC の間で、VPC ピアリングとルーティングを構成します。

  2. VPC が異なる AWS アカウントにある場合、続行する前に Datadog Agent を含む VPC が Route53 プライベートホストゾーンとの関連付けを許可されている必要があります。Datadog Agent が実行する VPC のリージョンと VPC ID を使用して、各 Route53 プライベートホストゾーンに対して VPC 関連付け承認を作成します。このオプションは、AWS Console では利用できません。AWS CLI、SDK、または API を使用して構成する必要があります。

  3. Route53 ホストゾーンを編集して、他のリージョンの VPC を追加します。

Route53 のプライベートホストゾーンを編集する
  1. プライベートホストゾーン (PHZ) が接続されている VPC では、特定の設定、特に enableDnsHostnamesenableDnsSupport をオンにする必要があります。プライベートホストゾーンを使用する際の注意点を参照してください。

  2. Agent を再起動し、AWS PrivateLink 経由で Datadog にデータを送信します。

DNS の解決と接続のトラブルシューティング

DNS 名は、 の VPC の CIDR ブロックに含まれる IP アドレスに解決され、port 443 への接続に成功するはずです。

443 番ポートへの接続に成功

DNS がパブリック IP アドレスに解決している場合、Route53 ゾーンが代替地域の VPC に関連付けされていないか、A レコードが存在しないことが原因です。

DNS は正しく解決しているのに、port 443 への接続に失敗する場合、VPC のピアリングまたはルーティングが誤って構成されているか、ポート 443 が の VPC の CIDR ブロックへのアウトバウンドを許可されていない可能性があります。

プライベートホストゾーン (PHZ) が接続されている VPC は、いくつかの設定をオンにする必要があります。具体的には、PHZ が関連付けられている VPC で、enableDnsHostnamesenableDnsSupport がオンになっている必要があります。Amazon VPC 設定を参照してください。

Datadog Agent

  1. ログデータを収集する場合は、Agent が HTTPS 経由でログを送信するように構成されていることを確認してください。データがまだない場合は、Agent datadog.yaml コンフィギュレーションファイルに以下を追加します。

    logs_config:
        force_use_http: true
    

    コンテナ Agent をお使いの場合は、代わりに環境変数を設定してください。

    DD_LOGS_CONFIG_FORCE_USE_HTTP=true
    

    この構成は、AWS PrivateLink と Datadog Agent で Datadog にログを送信する際に必要で、Lambda Extension では必要ありません。詳しくは、Agent のログ収集をご参照ください。

  2. Lambda 拡張機能で、環境変数 DD_API_KEY_SECRET_ARN で指定した ARN を使って AWS Secrets Manager から Datadog API キーを読み込む場合、Secrets Manager 用の VPC エンドポイントを作成する必要があります。

  3. Agent を再起動します

参考資料