AWS App Mesh

Supported OS Linux Mac OS Windows

概要

AWS App Mesh は、AWS ECS Fargate クラスターや AWS EKS クラスターで実行するマイクロサービスにアプリケーションレベルのネットワーキングを提供するサービスメッシュです。

セットアップ

下記の指示に従って、Envoy と呼ばれる AWS App Mesh のサイドカープロキシのメトリクスの収集を有効にします。デプロイ、後でデプロイをパッチ、AWS App Mesh インジェクターコントローラーを使用、のいずれかの方法を選択してサイドカーを追加します。どの方法を選択しても、下記のステップで実行できます。

メトリクスの収集

前提条件: EKS インテグレーションドキュメントを参考にして、Datadog Agent を Kubernetes クラスターで DaemonSet としてデプロイします。

  1. App Mesh の制限により、EKS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic に設定する必要があります。

  2. クラスターで ConfigMap を作成し、各ポッドに追加されている App Mesh の Envoy サイドカーを自動的に検出します。

      apiVersion: v1
      kind: ConfigMap
      metadata:
      name: datadog-config
      data:
      envoy: |-
        ad_identifiers:
        - aws-appmesh-envoy
        init_config:
        instances:
        - stats_url: http://%%host%%:9901/stats
          tags:
            - <TAG_KEY>:<TAG_VALUE>  # Example - cluster:eks-appmesh    
    
  3. Datadog Agent の DaemonSet YAML ファイルで volumeMounts オブジェクトをアップデートします。

          volumeMounts:
           - name: datadog-config
             mountPath: /conf.d
    
  4. Datadog Agent の DaemonSet YAML ファイルで volumes オブジェクトをアップデートします。

         volumes:
          - name: datadog-config
            configMap:
              name: datadog-config
              items:
              - key: envoy
                path: envoy.yaml
    

ログの収集

ログ収集は、このサイトではサポートされていません。

ログの収集を有効にするには、Kubernetes ログ収集の説明に従って Agent の DaemonSet をアップデートします。

トレースの収集

namespace を選択して、datadog-agent とサービス (例: monitoring) をデプロイします。オプションでこれを使用し、以下のように appmesh-injector をデプロイします。

```shell
  helm upgrade -i appmesh-controller eks/appmesh-controller \
  --namespace appmesh-system \
  --set sidecar.logLevel=debug \
  --set tracing.enabled=true \
  --set tracing.provider=datadog \
  --set tracing.address=ref:status.hostIP \
  --set tracing.port=8126
```

または、EKS を使用した App Mesh ドキュメントの説明に従って、オプションの enable-datadog-tracing=true や環境変数の ENABLE_DATADOG_TRACING=true を使用して appmesh インジェクターをデプロイすることもできます。

メトリクスの収集

前提条件: ECS Fargate インテグレーションドキュメントを参考にして、有効化された App Mesh (Envoy サイドカーがインジェクト済みなど) により Datadog Agent を各 Fargate タスク定義に追加します。

  1. App Mesh の制限により、ECS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic に設定する必要があります。

  2. 下記の Docker ラベルを使用して、Envoy サイドカーと Datadog Agent を含むタスク定義をアップデートします。詳細については、ECS Fargate インテグレーションのセットアップをご参照ください。

        "dockerLabels": {
              com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
              com.datadoghq.ad.check_names : ["envoy"]
              com.datadoghq.ad.init_configs : [{}]
            },
    

ログの収集

ログ収集は、このサイトではサポートされていません。

ECS Fargate インテグレーションドキュメントの説明に従って、ログの収集を有効化します。

トレースの収集

  1. ECS Fargate インテグレーションドキュメントの説明に従って、トレースの収集を有効化します。

AWS App Mesh パラメーター ENABLE_ENVOY_DATADOG_TRACING および DATADOG_TRACER_PORT を ECS Fargate タスク定義の環境変数として設定します。詳細は AWS App Mesh ドキュメントを参照してください。

メトリクスの収集

前提条件: ECS インテグレーションドキュメントを参考にして、有効化された App Mesh (Envoy サイドカーがインジェクト済みなど) により、Datadog Agent を各 ECS EC2 タスク定義に追加します。

  1. App Mesh の制限により、ECS から Datadog へメトリクスを転送するには Egress フィルターを Allow External Traffic に設定する必要があります。

  2. 下記の Docker ラベルを使用して、Envoy サイドカーと Datadog Agent を含むタスク定義をアップデートします。詳細については、ECS Fargate インテグレーションのセットアップをご参照ください。

        "dockerLabels": {
              com.datadoghq.ad.instances : [{"stats_url": "http://%%host%%:9901/stats"}]
              com.datadoghq.ad.check_names : ["envoy"]
              com.datadoghq.ad.init_configs : [{}]
            },
    

ログの収集

ログ収集は、このサイトではサポートされていません。

ECS インテグレーションドキュメントの説明に従って、ログの収集を有効化します。

トレースの収集

  1. ECS インテグレーションドキュメントの説明に従って、トレースの収集を有効化します。

  2. AWS App Mesh パラメーター ENABLE_ENVOY_DATADOG_TRACING および DATADOG_TRACER_PORT を ECS タスク定義の環境変数として設定します。詳細は AWS App Mesh ドキュメントを参照してください。

収集データ

メトリクス

メトリクス一覧については、Envoy インテグレーションをご参照ください。

イベント

AWS App Mesh インテグレーションには、イベントは含まれません。

サービスのチェック

AWS App Mesh インテグレーションには、サービスチェック機能は含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。

その他の参考資料

お役に立つドキュメント、リンクや記事: