AWS PrivateLink を使って Datadog AP1(東京)サイトに接続してみた
こんにちは。テクニカルサポートチームのShiinaです。
はじめに
Datadog は AWS の東京リージョン(ap-northeast-1)に AWS PrivateLink エンドポイントを公開しています。
Datadog の AP1(東京)サイトを利用することで、同一リージョン内で PrivateLink 接続が可能です。
これにより、セキュアな通信を確立できるだけでなく、リージョン間通信が発生しないことによるコストメリットも得られます。
今回は東京リージョンの EC2 上で稼働している Datadog エージェントから Datadog の AP1(東京)サイトへ PrivateLink 接続をやってみました。
注意事項
異なるリージョン間の通信には、クロスリージョン PrivateLink エンドポイントもしくはリージョン間 VPC ピアリングを利用する必要があります。
リージョン間 VPC ピアリングを利用した場合は以下の記事をご参考ください。
同一リージョンの PrivateLink エンドポイントを利用するメリット
セキュリティ向上
Datadog への通信がプライベートネットワーク内部で完結します。
インターネットを経由しないため、よりセキュアな通信が確立できます。
データ転送料金のコスト削減
同一リージョン内の通信は、異なるリージョン間通信やインターネット通信と比べてデータ転送料金が安価です。
そのため、PrivateLink エンドポイントの利用によりコスト削減が期待できます。
東京リージョン(ap-northeast-1)の同一リージョン内データ転送料金(OUT)は USD 0.01/GB です。
一方、東京とバージニア北部リージョン間のデータ転送料金(OUT)は USD 0.09/GB です。
料金は変動する可能性があるため、最新の情報をご確認ください。[1]
Datadog AP1(東京)サイトの AWS PrivateLink エンドポイントについて
AWS 東京リージョンには下記のエンドポイントが公開されています。
用途 | Datadog エンドポイントサービス名 | プライベート DNS 名 |
---|---|---|
ログ (Agent HTTP インテーク) | com.amazonaws.vpce.ap-northeast-1.vpce-svc-03e139d1f2766685b | agent-http-intake.logs.ap1.datadoghq.com |
ログ (ユーザー HTTP インテーク) | com.amazonaws.vpce.ap-northeast-1.vpce-svc-08799aabff1cfd8a3 | http-intake.logs.ap1.datadoghq.com |
API | com.amazonaws.vpce.ap-northeast-1.vpce-svc-008cd79a7a09e0a1e | api.ap1.datadoghq.com |
メトリクス | com.amazonaws.vpce.ap-northeast-1.vpce-svc-002d904d5e69340ad | metrics.agent.ap1.datadoghq.com |
コンテナ | com.amazonaws.vpce.ap-northeast-1.vpce-svc-03ffd8d552f0d957d | orchestrator.ap1.datadoghq.com |
プロセス | com.amazonaws.vpce.ap-northeast-1.vpce-svc-0e86b29a0dc2c8a26 | process.ap1.datadoghq.com |
プロファイリング | com.amazonaws.vpce.ap-northeast-1.vpce-svc-0d598057ecde10596 | intake.profile.ap1.datadoghq.com |
トレース | com.amazonaws.vpce.ap-northeast-1.vpce-svc-0a5d94b2e8f6e70fc | trace.agent.ap1.datadoghq.com |
データベースモニタリング | com.amazonaws.vpce.ap-northeast-1.vpce-svc-0cc53180ae06bb977 | dbm-metrics-intake.ap1.datadoghq.com |
リモート構成 | com.amazonaws.vpce.ap-northeast-1.vpce-svc-00e15ab206f23b98c | config.ap1.datadoghq.com |
やってみた
1. セキュリティグループ作成
PrivateLink エンドポイントで使用するセキュリティグループを作成します。
- VPC サービスのナビゲーションペインより「セキュリティグループ」を選択します。
- 「セキュリティグループの作成」を選択します。
- 以下の値を入力の上、セキュリティグループを作成します。
- セキュリティグループ名:任意(例:DatadogPrivateLinkSG)
- 説明:任意(例:to datadog)
- インバウンドルール
- タイプ:HTTPS
- ソース:VPCCIDR やサブネット CIDR
2. PrivateLink エンドポイント作成
利用用途に沿って、必要となる PrivateLink エンドポイントの作成を行います。
コンソールの場合
- VPC サービスのナビゲーションペインより「エンドポイント」を選択します。
- 「エンドポイントを作成」を選択します。
- 以下の値を入力の上、一度「サービスの検証」を行います。
- 名前:任意(例:datadog-agent-http-intake-logs)
- タイプ:PrivateLink Ready パートナーのサービス
- サービス名:Datadog エンドポイントサービス名(例:com.amazonaws.vpce.ap-northeast-1.vpce-svc-03e139d1f2766685b)
- 以下の値を入力の上、「エンドポイント作成」を選択します。
- VPC:作成先のVPC
- DNS 名を有効化:チェックを入れる
- サブネット:作成先のサブネットID
- セキュリティグループ:エンドポイント用のセキュリティグループ
- ステータスが「使用可能」となれば作成完了です。
CLIの場合
事前に VPC ID、サブネット ID、セキュリティグループ ID を確認しておいてください。
# 変数設定(リソースIDを指定ください)
VPC_ID="vpc-XXXXXXXXX"
SUBNET_IDS="subnet-XXXXXXXXX"
SECURITY_GROUP_ID="sg-XXXXXXXXX"
# 1. ログ (Agent HTTP インテーク)
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-03e139d1f2766685b \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-agent-http-intake-logs}]'
# 2. ログ (ユーザー HTTP インテーク)
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-08799aabff1cfd8a3 \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-user-http-intake-logs}]'
# 3. API
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-008cd79a7a09e0a1e \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-api}]'
# 4. メトリクス
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-002d904d5e69340ad \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-metrics}]'
# 5. コンテナ
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-03ffd8d552f0d957d \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-orchestrator}]'
# 6. プロセス
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-0e86b29a0dc2c8a26 \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-process}]'
# 7. プロファイリング
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-0d598057ecde10596 \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-profiling}]'
# 8. トレース
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-0a5d94b2e8f6e70fc \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-trace}]'
# 9. データベースモニタリング
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-0cc53180ae06bb977 \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-dbm}]'
# 10. リモート構成
aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.vpce.ap-northeast-1.vpce-svc-00e15ab206f23b98c \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_IDS \
--security-group-ids $SECURITY_GROUP_ID \
--private-dns-enabled \
--tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=datadog-remote-config}]'
3. 名前解決の確認
Datadog エージェントが導入されている EC2 インスタンスに接続し、プライベート DNS 名に対して名前解決ができるか確認します。
エンドポイントのプライベート IPアドレスが返されていれば、問題なく設定できています。
Linux
dig agent-http-intake.logs.ap1.datadoghq.com
; <<>> DiG 9.18.33 <<>> agent-http-intake.logs.ap1.datadoghq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13827
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;agent-http-intake.logs.ap1.datadoghq.com. IN A
;; ANSWER SECTION:
agent-http-intake.logs.ap1.datadoghq.com. 60 IN A 10.3.3.159
;; Query time: 0 msec
;; SERVER: 10.3.0.2#53(10.3.0.2) (UDP)
;; WHEN: Tue Jun 03 02:35:55 UTC 2025
;; MSG SIZE rcvd: 85
Windows
nslookup agent-http-intake.logs.ap1.datadoghq.com
Server: ip-10-3-0-2.ap-northeast-1.compute.internal
Address: 10.3.0.2
Non-authoritative answer:
Name: agent-http-intake.logs.ap1.datadoghq.com
Address: 10.3.3.159
4. 疎通確認
エンドポイントに通信できるか疎通確認を行います。
Linux
nc -w1 agent-http-intake.logs.ap1.datadoghq.com -vz 443
Ncat: Version 7.93 ( https://nmap.org/ncat )
Ncat: Connected to 10.3.3.159:443.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
"Connected"と表示されたら疎通できています。
Windows
Test-NetConnection agent-http-intake.logs.ap1.datadoghq.com -Port 443
ComputerName : agent-http-intake.logs.ap1.datadoghq.com
RemoteAddress : 10.3.3.159
RemotePort : 443
InterfaceAlias : Ethernet
SourceAddress : 10.3.13.129
TcpTestSucceeded : True
"TcpTestSucceeded : True"と表示されたら疎通できています。
5. ログ転送プロトコル設定(旧バージョンのみ)
PrivateLink エンドポイント経由でログデータを送信するには HTTPS を利用する必要があります。
Datadog エージェント v6.19 または v7.19 以降はデフォルトで HTTPS となるため、設定不要です。
それ以前のバージョンを利用している場合は、ログデータが TCP で転送されるため、datadog.yaml
でforce_use_http: true
パラメータの設定が必要です。
ログ転送プロトコルは status コマンドで確認が行えます。
Linux
datadog-agent status "logs agent"
Windows
& "$env:ProgramFiles\Datadog\Datadog Agent\bin\agent.exe" status "logs agent"
==========
Logs Agent
==========
Reliable: Sending compressed logs in HTTPS to agent-http-intake.logs.ap1.datadoghq.com on port 443
BytesSent: 0
EncodedBytesSent: 2
Sending compressed logs in HTTPS
と表示されていれば HTTPS を利用しています。
TCP を利用している場合はdatadog.yaml
を修正し、エージェントの再起動が必要です。
logs_enabled: true
logs_config:
force_use_http: true
6. エージェント再起動
エンドポイント経由の通信に切り替えるため、Datadog エージェントを再起動します。
Linux
systemctl restart datadog-agent
Windows
& "$env:ProgramFiles\Datadog\Datadog Agent\bin\agent.exe" restart-service
動作確認
Datadog エージェントがエンドポイントを利用してメトリクス、ログを送信できているか確認します。
メトリクスの確認
- Datadog コンソールメニューの「Infrastructure」より「Hosts」を選択します。
- 一覧より該当のホスト名を選択します。
- 「Metrics」タブを選択します。
- 各メトリクスが表示されていることを確認します。
ログの確認
- Datadog コンソールメニューの「Logs」より「Explorer」を選択します。
- ログメッセージが表示されていることを確認します。
まとめ
Datadog AP1(東京)サイトへのデータ転送には東京リージョンの AWS PrivateLink エンドポイントを利用することができます。
インターネットを経由しないため、セキュリティが向上するとともに、データ転送料金も抑えられます。
設定手順もシンプルなので Datadog AP1(東京)サイトを利用している方にはおすすめです。
本記事が参考になれば幸いです。
参考