AWS re:Invent 2024 で発表された Datadog の新機能: AWS integration & support 編

## はじめに
こんにちは、Datadog Japan で Sales Engineer をしている [**AoTo**](https://qiita.com/AoTo0330) です。

この投稿は **[<font color="#6495ED">AoTo Advent Calendar 2024</font>](https://qiita.com/advent-calendar/2024/aoto) 9日目**の記事です。

AWS の最大の年次イベント「**AWS re:Invent 2024**」に併せて Datadog が発表した様々な新機能を日本語でまとめました。AWS も Datadog の両方に興味がある・利用しているという方は是非ご参考ください:dog:

https://www.datadoghq.com/aws-reinvent/products/

こちらの内容は Datadog の製品の新機能に焦点を当てた**後編**となります。Datadog の製品の新機能は[**前編**](https://qiita.com/AoTo0330/items/a5c74a9c4a30257a783d)でまとめています。

https://qiita.com/AoTo0330/items/a5c74a9c4a30257a783d

Datadog で利用できる AWS サービスへの integration と新しいサポートは、**8つの内容**がアナウンスされました。これらのプロダクトの概要を AWS と Datadog の観点から解説します。

:::note warn
2024年12月時点での情報を元に記載しています。
最新の情報は [Datadog の公式ドキュメント](https://docs.datadoghq.com/ja/)をご参照ください。
:::

## AWS Trainium & AWS Inferentia
### AWS 概要
[**AWS Inferentia**](https://aws.amazon.com/ai/machine-learning/inferentia/) や [**AWS Trainium**](https://aws.amazon.com/ai/machine-learning/trainium/) は特に生成 AI モデルのような数千億から数兆を超えるパラメータを持つモデルのトレーニングや推論に最適化されたインスタンスです。その特徴として、どちらも専用のチップを持ち **AWS Neuron** により ML フレームワークの AWS ネイティブなサポートが提供されています。

[**AWS Nueuron**](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/) は **AWS Inferentia** および **AWS Trainium** を搭載した **Amazon EC2 インスタンス** および [**UltraServer**](https://aws.amazon.com/ec2/ultraservers/) で利用できる SDK です。**AWS Nueuron** SDK はディープラーニング・生成 AI ワークロードの実行に利用できるコンパイラ・ランタイム・トレーニング/推論ライブラリ・プロファイリングのツールが含まれています。

**Neuron** を利用する際は、**PyTorch, JAX, TensorFlow** に対して **Neuron, NeuronX** のプラグインを選択できます。それぞれによって利用・機能の制限があるため、[公式ドキュメント](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/quick-start/index.html)や **Amazon Q for Developer** を活用し情報をご確認ください。

### Datadog 概要
こうした ML や LLM に最適されたワークロードの監視は、[**Neuron Monitor**](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html#overview) によってネイティブに提供されています。**Neuron Monitor** は **Neuron** を利用して構築されたアプリケーションの監視情報を `stdout` に [`JSON` 形式](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html#id10)でストリーミング出力します。

また、ランタイムは [**Runtime Configuration**](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/neuron-runtime/nrt-configurable-parameters.html) によるログ出力が可能です。

[**Datadog Neuron integration/AWS Inferentia and AWS Trainium Monitoring**](https://docs.datadoghq.com/integrations/aws_neuron/) は **AWS Inferentia** および **AWS Trainium** インスタンスにインストールされた **Datadog Agent** を利用してこれらの出力を Datadog プラットフォームに取り込む機能です。

**Neuron Monitor** で出力されるメトリクスは **Prometheus** 形式でのエンドポイントを `neuron-monitor-prometheus.py` を用いて構成し、**Datadog Agent** は `aws_neuron.d/conf.yaml` で **Prometheus** エンドポイントを指定してパフォーマンスメトリクスを取得します。

**Neuron Monitor** を [**Neuron Monitor Daemonset**](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/containers/kubernetes-getting-started.html#neuron-monitor-daemonset) としてコンテナ環境でデプロイする場合、そのログは `stdout/stderr` に出力されます。Datadog Agent はログ設定で `type: docker` を指定することでそのログを取得します。

https://aws.amazon.com/blogs/machine-learning/enhanced-observability-for-aws-trainium-and-aws-inferentia-with-datadog/

ドキュメントには記載がありませんが、[**Neuron Runtime**](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/neuron-runtime/nrt-configurable-parameters.html) から出力されるログは、ログの出力先に合わせて収集設定できます。例えば、`NEURON_RT_LOG_LOCATION=syslog` で `/var/log/syslog` にログを出力し保存していれば、`type: file` で対象のログファイルを指定して最新のログを Tail して Datadog に転送できます。

## Amazon Q Developer Plugin
### AWS 概要
[**Amazon Q for Developer**](https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/what-is.html) は、LLM を活用したアシスタント機能で、主に　AWS アプリケーションの理解・構築・拡張・運用に役立つ内容を提供します。 **Amazon Q** は機能を継続的に更新しているため、質問に対して最も状況に即した実用的な回答が得られます。

**Amazon Q** は **Amazon Bedrock** を搭載しており、そのモデルは高品質の AWS コンテンツで強化されています。これにより公式ドキュメントの参照を加えた回答を得ることができ、信頼性の高い高品質な AWS 上の開発体験を得られます。

[**Amazon Q Developer plugins**](https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/plugins.html) はサードパーティのプラットフォームと統合され、AWS 環境から AWS アプリケーションの分析情報にアクセスできます。**AWS Management Console** から、チャットでアプリケーションのパフォーマンス・エラー・脆弱性についての質問を行い、その回答を得ながら AWS 上で対処できます。

**Amazon Q Developer plugins** を設定すると、質問の先頭にプラグインのエイリアスを追加することでサードパーティプロバイダー API を呼び出してリソースを取得し、外部リソースへのディープリンクを含む応答を生成します。

### Datadog 概要
[**Amazon Q Developer Datadog plugin**](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/datadog-plugin.html) は Amazon Q Developer plugins の中でも最初に発表されたプラグインの1つです。

https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-q-developer-plugins-datadog-wiz-services/

プラグインを設定するには Datadog の [**API Key, App Key**](https://docs.datadoghq.com/ja/account_management/api-app-keys/) をそれぞれ作成し、**API Key** による **Datadog Organization** の認証と **App Key** による監視情報の読み取り権限の認可で利用します。

これらの情報は **AWS Secrets Manager** シークレットとして AWS に保管し、**Amazon Q** に付与する **IAM サービスロール**が **Secrets Manager** シークレットにアクセスする権限を持つ必要があります。

**Amazon Q** から Datadog プラグインを利用する際は、質問の冒頭に `@Datadog` と入力することで Datadog に関する質問に対し、Datadog 上の監視情報を元に Amazon Q が回答を生成します。これにより、Datadog Monitor でトリガーされているアラートの状態を把握したり、ケースとして管理されているシグナルを要約して AWS 上で確認できます。

## Amazon EKS Auto Mode
### AWS 概要
[**Amazon EKS Auto Mode**](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/automode.html) は Amazon EKS に追加された新しい機能です。ワークロードに適切な **AMI** の選択や自動スケーリング・アップグレードをはじめ、負荷分散・ネットワーク・ストレージ・IAM の管理のそれぞれを自動化コンポーネントとして扱い、EKS の管理タスクを削減します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/babe71b1-fa1a-cdba-5d0d-0ecfdf3db226.png)

**EKS Auto Mode** は Kubernetes **v1.29** 以上を実行している任意の EKS クラスターで追加の費用なく有効化できます。**Auto Mode** が担うコンピューティングの自動化と同様の役割を持つ **Karpenter** を利用している場合も、並行して両機能を実行しながら[段階的な移行](https://docs.aws.amazon.com/eks/latest/userguide/auto-migrate-karpenter.html)が可能です。

https://aws.amazon.com/blogs/aws/streamline-kubernetes-cluster-management-with-new-amazon-eks-auto-mode/

**Auto Mode** は **Karpenter** の原則に基づいて構築されており、機能を有効化するとパッチが適用された **Karpenter Controller** が実行されます。**Karpenter** は **Nodepool** リソースによりワークロードで使用する EC2 のインスタンスタイプの指定をします。**Auto Mode** のデフォルトでは `general-purpose` と `system` Nodepool が作成されます。

この他にも、**EBS CSI Controller** や **AWS Load Balancer Controller** によって、ストレージやネットワークの管理を自動化できるのが **Auto Mode** の優れている点です。

### Datadog 概要
**Datadog** は **EKS Auto Mode** の **validated partners** の一員です。

**Datadog Container Monitoring** を利用することで、**Auto Mode** にデプロイされたアプリケーション環境はもちろん、これらによって管理されている各 Controller の監視を実現します。

その中でも [**Orhestrator Explorer**](https://docs.datadoghq.com/infrastructure/containers/orchestrator_explorer/) は Kubernetes などのオーケスとレーターを効果的に監視するために、特定の名前空間・アベイラビリティーゾーン内のポッド・デプロイメントなどのリソース仕様を表示したり、ノードのアクティビティを関連するログと紐づけたりできます。

## AWS AppConfig - Monitoring deployments for automatic rollback
### AWS 概要
[**AWSApp Config**](https://docs.aws.amazon.com/ja_jp/appconfig/latest/userguide/what-is-appconfig.html) は Systems Manager の機能の一部で、機能フラグとアプリケーション動的設定を行う機能です。

新しい機能フラグや構成を実働環境にデプロイする際は、デプロイ戦略に基づいて段階的な変更が行えます。デプロイは **AWS Management Console, AWS CLI/SDK** を使用して作成し、`StartDeployment` API を呼び出して開始されます。

構成情報は **AppConfig Agent** か `GetConfiguration` API を利用して取得します。**AppConfig Agent** がデプロイされている場合、Agent が設定データをローカルにキャッシュし、アプリケーションで設定データを常に利用できます。Agent を利用しない場合、`GetConfiguration` API を利用して構成情報を取得することもできます。

デプロイは必ずしも成功しません。App Config はデプロイを監視し、失敗を検知して自動ロールバックを行えます。**Amazon CloudWatch アラーム**をはじめとするトリガーでデプロイの失敗が検知されると、**AWS AppConfig** は設定データを自動的に以前のバージョンにロールバックし、アプリケーションの停止やエラーを防止します

### Datadog 概要
**AppConfig** の自動ロールバックでサードパーティーのアラートがサポートされたことで、Datadog Monitor に基づくアラートをトリガーとして自動ロールバックを実現します。

https://aws.amazon.com/about-aws/whats-new/2024/11/aws-appconfig-automatic-rollback-safety-third-party-alerts/

サードパーティーのアラートを利用するには、**AWS Lambda** を活用して **AppConfig extensions** を設定します。この拡張機能は [`AT_DEPLOYMENT_TICK` アクションポイントで実行する](https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions-about.html)ように設定します。実行された拡張機能は確認したい **Datadog Monitor** の モニター ID を利用して、[**Datadog Monitors API**](https://docs.datadoghq.com/api/latest/monitors/) にモニターの状態を問い合わせ、そのステータスに応じてロールバックの是非を決定します。

上記の Datadog 用の拡張機能は GitHub の [`aws-samples
aws-appconfig-tick-extn-for-datadog`](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog) 上で公開されています。

これにより、**Datadog Infrastructure Monitoring** の高頻度なメトリクス収集による迅速な障害検知や、**APM** の詳細なトレースによるアプリケーションパフォーマンス・エラー検知、**Synthetics, RUM** によるフロントエンドのユーザーエクスペリエンスの劣化による事前検知など、Datadog の強みを活かした障害検知と **AppConfig** の自動ロールバックを組み合わせることができます。

## Amazon EC2 Image Builder
### AWS 概要
[**Amazon EC2 Image Builder**](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) は **Amazon Machine Image(AMI)** やコンテナイメージの作成・管理・展開を自動化するのに役立つフルマネージドな機能です。**パイプライン**によるタグ付けや脆弱性スキャン、**ワークフロー**によるイメージ作成・テストの自動化、**コンポーネント**によるイメージに組み込めるソフトウェアや設定の再利用などが提供されています。

こうしたコンポーネントを利用したイメージのビルドやテストを含むワークフローは、コンポーネント管理アプリケーション **AWS Task Orchestrator and Executor (AWSTOE)** と呼ばれるスタンドアロンアプリケーションを Amazon EC2 にインストールすることでローカル環境でもワークフローを管理・実行できます。

### Datadog 概要
**AWS Marketplace** に ISV(独立系ソフトウェアベンダー) の EC2 Image Builder コンポーネントの提供が発表され、Datadog も **Datadog Agent, Datadog Agent for Windows** の2つのコンポーネントの提供を開始しました。これらのコンポーネントはもちろん無償で利用できます。

https://aws.amazon.com/about-aws/whats-new/2024/12/aws-marketplace-ec2-image-builder-components-software-vendors/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/17a719ed-953c-0fd3-d453-406a699b18c7.png)

従来の AMI ゴールデンイメージを作成する際は、**Datadog Agent** のインストールスクリプトの直接実行と設定変更のためにカスタムコードを作成する必要がありました。Marketplace より **Datadog Agent** のコンポーネントが提供されることで、これらのカスタムコードの作成が不要となり既存のゴールデンイメージに直接組み込みが実現できます。

## Cross-Region support on PrivateLink
### AWS 概要
[**AWS PrivateLink**](https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/what-is-privatelink.html) は VPC 内のサービスから VPC 外のエンドポイントへ、プライベートネットワークのみを介して接続できる機能です。**VPC エンドポイント**を中心に **PrivateLink 接続**や**エンドポイントサービス**を介して、AWS, AWS パートナー, 外部 AWS アカウントへの接続ができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2363567/9f9c24f5-0b35-db7f-a970-47f545d1560c.png)

**AWS PrivateLink** の Cross-region サポートにより、**インターフェイス VPC エンドポイント**が異なるリージョンの **VPC エンドポイントサービス**への接続が可能になりました。

https://aws.amazon.com/about-aws/whats-new/2024/11/aws-privatelink-across-region-connectivity/

従来は、**同じリージョン**内の VPC エンドポイントサービスへの接続のみをサポートしており、主に AWS パートナーが提供する PrivateLink サービスへの接続は用意されたリージョンの VPC を介した接続を行う必要がありました。

### Datadog 概要
Datadog は AWS 上の環境として Datadog Site を **US1, AP1** で提供しています。これらの Datadog Site 上に **Organization** を作成すると、AWS PrivateLink が利用できます。**PrivateLink** 設定では VPC エンドポイントサービスとして `us-east-1`, ` ap-northeast-1` を選択し Datadog Agent の監視情報やログ転送が可能です。

従来は転送元の VPC エンドポイントのリージョンが転送先の VPC エンドポイントサービスと一致している必要がありました。そのため、`us-east-1`, ` ap-northeast-1` 以外の VPC は **VPC ピアリング** を設定し、PrivateLink が設定できるリージョンの VPC と接続する必要がありました。

今回のアップデートにより、どのリージョンで作成された VPC であっても追加の設定を必要とせずに **PrivateLink** を設定できます。これにより、複数の VPC を Datadog の監視対象とする場合に、ハブ VPC を作成し PrivateLink を作成することなく各 VPC で設定を独立して行えます。

## AWS Parallel Computing Service 
### AWS 概要
[**AWS Parallel Computing Service(PCS)**](https://docs.aws.amazon.com/ja_jp/pcs/latest/userguide/what-is-service.html) はハイパフォーマンスコンピューティング (HPC) ワークロードの実行とスケーリングを容易にするマネージドサービスとして2024年8月に発表されました。**AWS PCS** はワークロードの実行を **Slurm AWS** を使用して制御できます。

https://aws.amazon.com/jp/blogs/news/announcing-aws-parallel-computing-service-to-run-hpc-workloads-at-virtually-any-scale/

本サービスの提供前は AWS ParallelCluster が提供されていましたが、**PCS** となることでジョブスケジューラがマネージドサービスとなり、可用性が大幅に向上しました。ジョブスケジューラは基本的に常時起動している機能であり、ヘッドノードとして EC2 を利用する場合冗長化ができず運用上の負荷が上昇していました。

### Datadog 概要
[**Datadog AWS PCS integration**](https://docs.datadoghq.com/ja/integrations/amazon_pcs/) はマネージドサービス化したことにより取得されるメトリクスを元に、ワークロードの稼働状況を簡単に把握できるメトリクスを計算し Datadog のインテグレーションダッシュボードで確認できる機能です。

## ECS Explorer
### Datadog 概要
従来はコンテナオーケストレーションサービスの監視は　**Kubernetes Explorer** が提供され、Kubernetes によって定義されるリソースごとに状態を正しく把握することを手助けするビューが提供されていました。

ECS Explorer により Kuberenetes Explorer と同様に、ECS によって定義されるリソース毎の専用のビューを提供します。具体的には、タスク・タスク定義・サービス・クラスター毎にビューを提供し、関連するリソースを [Related Resources] タブで可視化します。

さらに Kubernetes と同様に、宣言的に定義した `yaml` ファイルを [Manifest] タブから確認できるようになります。これにより、AWS 環境内で直接宣言された定義を参照することなく設定内容を確認し、トラブルシューティングの速度を早めることが可能です。

https://www.datadoghq.com/ja/blog/ecs-explorer/

## おわりに
AWS re:Invent 2024 の新機能に合わせて、Datadog は多くのサービスがアップデートされ AWS サービス・機能により連携できる選択肢は増え続けています。AWS, Datadog の公式ドキュメントにも明記されていない実際の変化と利用方法を解説しているため、ご参考となれば幸いです。

特に、今回の re:Ivetnt 2024 では AWS のプレスリリースの中にも何度か Datadog が言及されていた点がで印象的でした。Datadog は今後も AWS の強力なパートナーとして、ユーザーのシステム環境の可観測性を向上するソリューションを提供していくでしょう。