Cloud Run で Datadog Agent をサイドカーで動かして、どうなったか【裏側】

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

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

今年の5月に『[**Cloud Run で Datadog Agent をサイドカーとして動かす**](https://qiita.com/AoTo0330/items/35a840462f219596e39d)』という記事を書き、様々な反響があったのでその内容をまとめました。

https://qiita.com/AoTo0330/items/35a840462f219596e39d

## 背景
本記事は Google Cloud のマネージドコンテナサービスである、**Cloud Run** のパブリックプレビューとして発表された、[マルチコンテナ機能(サイドカー)](https://cloud.google.com/run/docs/deploying?hl=ja#sidecars)の技術検証記事として執筆しました。

:::note info
本機能は現在、**一般公開(GA)** されています。
:::


そもそもは、Google の DevRel である山口さんの記事『[**Cloud RunでOpenTelemetry Collectorをサイドカーとして動かす**](https://zenn.dev/google_cloud_jp/articles/20230516-cloud-run-otel)」に触発され、Datadog Agent でも技術的には出来そうだな…と思い検証したのがスタートでした。[^1]
[^1]:タイトルもご本人の許可をいただいた上でかなり寄せました。

検証を行い記事を執筆する上で、<INS>技術的に問題がないこと・Datadog 公式にはサポートしていないこと・現状はサポートされている別の実装があること</INS>、を念頭に置いていました。実際の検証も同じチームの方々や、サポートエンジニアの知見をお借りして、シンプルで問題が起きづらい実装を行うことができました。[^2]
[^2]: Cloud Run 用の yaml での`run.googleapis.com/container-dependencies: '{"calendar":["dd-agent"]}'`の記載や`request`や`limit`の設定を明記するかは、実際の動作を元に決定しました。

:::note warn
Datadog では本機能を正式にはサポートしていません。(2023/12/12現在)
:::


さらに、注意点として実装上の注意やつまりやすい点をまとめ、[別の記事](https://zenn.dev/aotolog/articles/cr-sidecar-dda-notes)にしたことも新たな試みでした。これにより、簡潔な内容の記事になりながらも、実際に実装を試される方向けにより正確な案内ができたように思います。

https://zenn.dev/aotolog/articles/cr-sidecar-dda-notes

こうしたサポート範囲外の記事を執筆することは、企業に属する個人として**一定のリスク**がありつつも、**技術的には有用**であることが多いように思います。

実際に、この知見を元に社内外で多くの反応をいただきました。

## 反応・影響
まず初めは、<INS>Datadog Agent もコンテナで動かせるんだ</INS>、という Datadog や Observability に興味がある技術者の方々の反応でした。そもそも Datadog は Datadog Agent の [Docker イメージ](https://docs.datadoghq.com/ja/containers/docker/)を公式に用意していますが、知られていないことも多いです。

実装の方法としても、**AWS Fargate** を基盤として利用している場合に [**ECS**](https://docs.datadoghq.com/ja/integrations/ecs_fargate/?tab=webui), [**EKS**](https://docs.datadoghq.com/ja/integrations/eks_fargate/) の監視情報を取得するために、サイドカーの方式を**正式にサポート**しています。ですが、これらへの実装は権限や通信の問題でスムーズにいかないことが多く、マネージドコンテナ上では正式なサポートが出る前から検証をしておき知見を集めることができて良かったです。

さらに続いて、Datadog と Google Cloud の共通ユーザーの方々から、<INS>この記事を見たが Cloud Run の APM はどのように実現すれば良いか</INS>とご相談をいただくこともありました。正式にサポートがされていないので推奨はできないものの、サイドカーとしてデプロイすることのメリットを権限・デプロイ・依存関係の分離などに触れながらご説明をできました。この点に強いご要件がなければ、正式にサポートされている[同一イメージへのデプロイ](https://docs.datadoghq.com/ja/serverless/google_cloud_run/)をご案内するという形でした。

:::note warn
日本語ページでは「公開ベータ版」の記載が残っていますが、一般公開(GA)されています。(2023/12/12現在)
:::

そして最後に、Cloud Run への知見が少し深まったことで、マネージドコンテナにおけるマルチコンテナ機能(サイドカー)の必要性や革新について議論をする機会が得られました。一例として、[Google Cloud Next ’23](https://cloud.withgoogle.com/next) のセッションでも現地のエンジニアと会話をする機会がありました。

最近でも、[Google Developer Groups in Japan Advent Calendar 2023](https://adventar.org/calendars/9543)の[記事の一つ](https://zenn.dev/jj/articles/cloudrun-v2-with-nginx)で参考にしていただき、「Cloud Run サイドカー」で検索しても上位に出ていることからもその影響力を感じ嬉しく思うと共に検証記事を執筆する上での責任を再認識しました。[^3]
[^3]:とても良い記事なので、是非ご参照ください。

https://zenn.dev/jj/articles/cloudrun-v2-with-nginx

これらの良い反応や影響の他に、自らが動いて登壇にも繋げることができました。

## 登壇
『**Datadog Agent を入れて Cloud Run でサイドカーを利用するユースケースを考える**』というタイトルで、[Jagu'e'r Cloud Native 分科会 #12](https://jaguer-cloud-native.connpass.com/event/299863/) で登壇してきました。背景として、今回のイベントのテーマは「Cloud Run」であるということで、サイドカー機能の素晴らしさを広めようと記事の内容を少し広げてお話をすることに決めました。

https://jaguer-cloud-native.connpass.com/event/299863/

少し話が逸れますが、[**Jagu'e'r**](https://jaguer.jp/) では、さまざまなテーマの分科会があり、定期的にイベントを開催していますが、[Cloud Native 分科会](https://jaguer.jp/cloudnatiive/)は今年の半ばにイベントを行った後に長らくイベントが開催できておらず、久々のイベント開催となりました。これを盛り上げるためにも、今回の記事がきっかけで一助となれたならとても嬉しいです。

そして実は [Google Cloud Next Tokyo ’23](https://cloudonair.withgoogle.com/events/next-tokyo) の CfP に応募をしたり、社内でも英語で Cloud Run のサイドカーについて話すなど、この記事がきっかけで行えた活動がとても多かったです。[^3]
[^3]:CfP は残念ながら落選となりましたが、今回の挑戦をきっかけに [Datadog のパートナーセッション](https://cloudonair.withgoogle.com/events/next-tokyo?talk=d2-pl-10)を担当することとなりました。

このように1つの記事からさまざまな活動に波及して、自身の Google Cloud に関する活動の幅を広げるきっかけとなりました。また、個人的に期待をしている機能を語る機会を得ることで、よりその素晴らしさを広めて多くの方に触っていただくきっかけを作ることにも寄与できたように思います。

## おわりに
この記事では、私の中で今年最も多くの方々に影響を与えた Qiita の記事について振り返ってみました。企業に属するエンジニアとしての責任と技術を広める執筆活動の効果について改めて自分の肌で感じることができたとても良い機会でした。

現在も[**<font color="#6495ED">AoTo Advent Calendar 2023</font>**](https://qiita.com/advent-calendar/2023/aoto) を通じてたくさんの記事を執筆していますが、その根底には質の高い記事を執筆して、読んでいただいた方に有益な情報・面白いという感覚を共有したいという思いがあります。

これからもこのスタンスは変えずに、記事執筆を続けていきたいと思います🐶