AWS ECS Fargate: pidMode

AWS FargateのpidModeは、タスク内のコンテナ間でプロセスID(PID)名前空間を共有するための設定です。これにより、同じタスク内のコンテナが互いのプロセス情報にアクセスできるようになります¹²。

例えば、モニタリング用のサイドカーコンテナが、他のコンテナのプロセス情報を取得して監視することが可能になります。FargateではpidMode=taskのみがサポートされており、これを有効にすると、タスク内のすべてのコンテナが同じPID名前空間を共有します²。

この機能は、特にセキュリティや監視の観点から便利で、プロセスの監視やシステムコールのトラッキングが容易になります¹。

ソース: Copilot との会話、 2024/9/2 (1) 【アップデート】ECS on Fargateでサイドカーからプロセス …. https://dev.classmethod.jp/articles/ecs-on-fargate-support-shared-pid-namespace/. (2) AWS Fargate がプロセス ID 名前空間の共有とカーネルパラメータ …. https://aws.amazon.com/jp/about-aws/whats-new/2023/08/aws-fargate-pid-namespace-sharing-kernel-configuration/. (3) [ECS/Fargate] [request]: Support pidMode: task on Fargate #676. https://github.com/aws/containers-roadmap/issues/676. (4) 【アップデート】ECS on FargateがsystemControlsをサポートし …. https://dev.classmethod.jp/articles/ecs-on-fargate-support-systemcontrols/. (5) Amazon ECS on AWS Fargate - Datadog Infrastructure and …. https://docs.datadoghq.com/integrations/ecs_fargate/.

pidModeを指定しなくてもサイドカー構成を取ることは可能です。pidModeは、特定のユースケースでプロセスID名前空間を共有するためのオプションですが、サイドカーコンテナ自体は他の方法で連携できます。

例えば、サイドカーコンテナは以下のような方法で他のコンテナと連携します:

  • ネットワーク共有: 同じタスク内のコンテナはデフォルトで同じネットワーク名前空間を共有するため、互いに通信できます。
  • ボリューム共有: データを共有するために、同じボリュームをマウントすることができます。
  • 環境変数や設定ファイル: コンテナ間で設定情報を共有するために使用できます。

これらの方法を組み合わせることで、pidModeを使用しなくても効果的なサイドカー構成を実現できます。

記事