Surveillance d' Amazon Web Services (AWS) avec l'agent Amazon Web Services (AWS)

Pour surveiller les services gérés par AWS, Instana doit collecter des données provenant des API de AWS, telles que CloudWatch,, S3 et X-Ray, sur lesquelles il n'est pas possible d'installer un agent hôte ni aucun autre type d'agent.

Toutefois, l'agent hôte d' Instana peut être configuré de manière spécifique pour surveiller les services gérés par AWS. L'agent hôte configuré de manière spécifique pour surveiller les services d' AWS s est appelé « agent d' AWS ». Il est recommandé d'installer l'agent AWS sur un serveur dédié. Veillez également à ce qu'au moins un agent « AWS » soit disponible dans chaque région d' AWS.

Après avoir installé l'agent AWS , vous pouvez obtenir des données dans et hors des services AWS pris en charge, mais vous n'avez pas accès aux infrastructures qui alimente les services.

Remarque :
  • Pour surveiller une machine virtuelle Amazon Elastic Computing ( EC2 ), un cluster d' Kubernetes s fonctionnant sur AWS (qu'il soit installé et géré par vos soins ou via Amazon Elastic Kubernetes Service ) ou un cluster d'Amazon Elastic Container, vous devez utiliser l'agent hôte Instana, et non l'agent AWS. Pour plus d'informations sur les étapes d'installation de l'agent hôte, voir les rubriques de la section Plateformes .
  • Pour surveiller AWS dans un cluster Kubernetes ou Red Hat OpenShift, n'installez pas l'agent Instana AWS sur chaque nœud du cluster. Installez l'agent d' AWS ation sur un serveur dédié.
  • Migration vers le SDK v2 d' AWS :
    1. AWS a officiellement mis fin au support du SDK d' AWS v1 le 31 décembre 2025. Instana procède actuellement à la migration de tous les capteurs et composants de découverte d' AWS vers le SDK AWS v2 afin de garantir la poursuite des mises à jour de sécurité, l'amélioration des performances et l'accès aux dernières fonctionnalités d' AWS.
    2. Pour terminer la migration, vous devez redémarrer ou mettre à jour votre agent d' Instana. Le processus de migration est conçu pour s'effectuer en toute transparence, sans interruption de surveillance et sans nécessiter de modifications de configuration.

    Pour plus d'informations sur les instructions de migration en fonction de votre type de déploiement (sur hôte, Docker ou Kubernetes ), consultez la page « Migration de l'API AWS v1 vers l'API AWS v2 ».

Services surveillés

Pour surveiller les services suivants gérés par AWS, installez l'agent AWS Instana comme décrit dans la section « Installation de l'agent AWS » :

Remarque : En raison de la nature de l'API AWS CloudWatch, un délai d'extraction de métriques est à prévoir. Les valeurs affichées pour les mesures sont également retardées pour garantir leur cohérence. Ce délai dépend du service AWS utilisé et de la disponibilité des données à ce moment-là, mais il est généralement d'environ 10 minutes.

Installation de l'agent d' AWS

Vous pouvez installer l'agent AWS sur EC2 ou sur Fargate sur ECS.

Remarques :

  • En fonction du nombre d'entités surveillées dans votre environnement de cloud, vous devrez peut-être augmenter la quantité maximale de mémoire disponible pour votre agent hôte. Vous pouvez augmenter la mémoire de l'agent en définissant la variable d'environnement AGENT_MAX_MEM sur une valeur supérieure à la valeur par défaut de 544 MiB. Par exemple, pour définir la mémoire de l'agent sur 1 Go, vous pouvez définir AGENT_MAX_MEM=1024M.

  • Installez un seul agent AWS par combinaison de compte AWS et de région AWS . L'installation de plusieurs agents AWS pour une même combinaison de compte AWS et de région AWS peut entraîner des coûts supplémentaires de la part de AWS, sans apporter d'avantage supplémentaire en termes de qualité de la surveillance via Instana.

Installation sur EC2

Vous pouvez installer l'agent « AWS » sur Windows ou « Linux » sur EC2. Il est préférable d'exécuter l'agent Instana AWS sur une machine polyvalente de dernière génération équipée d' Linux®. Les instances m5.large , par exemple, constituent une solution idéale.

Remarque : si vous installez l'agent AWS sur Windows, même si la machine Windows est hébergée sur AWS, vous devez tout de même effectuer les configurations décrites dans la section « Installation en dehors de votre infrastructure AWS ».
  1. Dans l'interface utilisateur d' Instana, cliquez sur Plus > Agents > Installer des agents > AWS.

  2. Dans la liste Technologie, sélectionnez Capteur Instana AWS.

  3. Dans la liste « Exécuter votre agent AWS », sélectionnez « Elastic Cloud Compute ( EC2 ) » (c'est l'option par défaut).

    La clé et l'emplacement de votre agent sont préremplis dans le script pour être utilisés en tant que User Data sur EC2. Copiez le script affiché. Le script se présente comme suit, sauf que toutes les informations nécessaires sont fournies:

    #!/bin/bash
    
    curl -o setup_agent.sh https://setup.instana.io/agent
    chmod 700 ./setup_agent.sh
    sudo -E ./setup_agent.sh -y -a <your-agent-key> -m aws -t dynamic -e <location> -s
     
  4. Lancez une machine virtuelle EC2 dédiée et utilisez le script copié en tant que User Data. Pour plus d'informations sur l'utilisation de la commande « user » User Data sur EC2, consultez la section « Exécution de commandes sur votre instance Linux » dans la documentation de Launch.

  5. Copiez les configurations du bloc de code de la rubrique Rôles IAM dans un fichier IAM_permission.json . Ces configurations sont utilisées pour le rôle IAM requis par la machine virtuelle EC2 qui exécute l'agent Instana AWS et permettent à l'agent AWS de détecter et de surveiller vos ressources AWS. Créez ensuite un rôle IAM avec le fichier IAM_permission.json . Pour plus d'informations, consultez la section Création d'un rôle pour déléguer des autorisations à un utilisateur IAM.

  6. Pour que le rôle IAM puisse effectuer AssumedRole l'action, modifiez le paramètre Trust Relationship comme suit (affiché sous la forme trust_relationship.json dans l'interface utilisateur d' Instana ) :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    Si l'agent s'exécute sur une machine EC2 e sans accès à Internet, modifiez le fichier Trust Relationship comme suit :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com.cn"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    Pour les autres configurations nécessaires, consultez la section « Configuration du point de terminaison régional STS ».

Installation sur Fargate sur ECS

Vous pouvez installer l'agent « AWS » sur Windows ou Linux sur Fargate dans ECS.

Remarque : si vous installez l'agent AWS sur Windows, même si la machine Windows est hébergée sur AWS, vous devez tout de même effectuer les configurations décrites dans la section « Installation en dehors de votre infrastructure AWS ».
  1. Dans l'interface utilisateur d' Instana, cliquez sur Plus > Agents > Installer des agents > AWS.

  2. Dans la liste Technologie, sélectionnez Capteur Instana AWS.

  3. Dans la liste Exécuter votre agent AWS sur , sélectionnez Elastic Container Service (ECS).

    L' JSON e d'une définition de tâche est pré-générée pour vous dans le modèle « Task Definition JSON ». Téléchargez le fichier « JSON » et utilisez-le avec les fonctions «Configurer à l'aide de l' JSON » de l'interface utilisateur de la définition de tâche.

  4. Téléchargez le fichier d' JSON s sur les autorisations IAM, puis attribuez à la nouvelle définition de tâche un rôle IAM qui comprend au moins les autorisations répertoriées dans le fichier d' JSON s téléchargé.

  5. Créez un service ECS avec une instance de la nouvelle définition de tâche.

Configuration

Installation hors de votre infrastructure AWS

Vous pouvez également dédier tout agent qui s'exécute en dehors de votre infrastructure AWS . Pour atteindre cet objectif, vous devez spécifier les variables d'environnement suivantes dans le fichier setenv :

  • Sous Linux :
    /opt/instana/agent/bin/setenv
  • Sous Windows :
    C:\Program Files\Instana\instana-agent\bin\setenv
  • La région que vous souhaitez surveiller:
    INSTANA_AWS_REGION_CONFIG=
  • Les données d'identification permettant d'accéder aux ressources AWS. Ces données d'identification doivent appartenir à un utilisateur, qui est autorisé à accéder aux ressources déjà décrites dans la section Configuration d' Amazon Web Services IAM .
    AWS_ACCESS_KEY_ID=
    AWS_SECRET_ACCESS_KEY=

Configuration de proxy

Par vos variables d'environnement

Pour configurer le détecteur AWS afin d'utiliser la configuration de proxy, spécifiez les variables d'environnement suivantes dans le *instanaAgentDir*/bin/setenv:

export HTTP_PROXY=
export HTTPS_PROXY=
 
Remarque : ces deux variables d'environnement doivent être définies. Une fois la configuration effectuée, l'agent d' Instana ation doit être redémarré pour que les modifications prennent effet.

Vous trouverez plus d'informations sur le proxy HTTP en cliquant sur ce lien.

Par l'agent configuration.yaml

Pour configurer l'agent AWS afin qu'il utilise la configuration de proxy, ajoutez les paramètres de configuration d'agent suivants:

com.instana.plugin.aws:
  proxy_host: 'example.com' # proxy host name or ip address
  proxy_port: 3128 # proxy port
  proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
  proxy_username: 'username' # OPTIONAL: proxy username
  proxy_password: 'password' # OPTIONAL: proxy password
  tagging: # proxy setup for AWS Tagging API, used for AWS resource monitoring filtering
    proxy_host: 'example.com' # proxy host name or ip address
    proxy_port: 3128 # proxy port
    proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
    proxy_username: 'username' # OPTIONAL: proxy username
    proxy_password: 'password' # OPTIONAL: proxy password
 

Les paramètres de proxy peuvent également être configurés au niveau de chaque détecteur AWS . Dans ce cas, la configuration globale mentionnée précédemment est remplacée par la configuration de détecteur AWS spécifique. Pour plus d'informations, voir la documentation spécifique du détecteur AWS .

Configuration du point de terminaison régional STS

Par défaut, l'agent « Instana » contacte le point de terminaison STS global à partir de l'instance « EC2 » afin de récupérer les informations d'identification du profil d'instance. Toutefois, si l'agent hôte d' Instana s s'exécute sur une machine EC2 sans accès à Internet (par exemple, dans certaines régions de Chine), le point de terminaison régional STS doit être défini sous forme de variable d'environnement, ce qui indique à l'agent d' Instana s d'utiliser les points de terminaison STS régionaux.

Une fois l'agent « Instana » installé, définissez la variable d'environnement suivante dans le fichier *instanaAgentDir*/bin/setenv:

export AWS_STS_REGIONAL_ENDPOINTS=regional
 

Activer la surveillance de services spécifiques

Pour chaque service, vous devez ajouter les droits nécessaires sur les pages de service individuelles, liées à partir de la section Services surveillés . Pour exclure un service de la surveillance, omettez les droits correspondants.

Une autre façon d'exclure un service de la surveillance consiste à ajouter l'indicateur-enabled_ approprié dans <agent_install_dir>/etc/instana/configuration.yml , comme décrit dans les pages de service individuelles suivantes.

Surveillance de plusieurs comptes AWS

L'agent AWS prend en charge les services de monitoring de plusieurs comptes AWS situés dans la même région. À l'heure actuelle, il existe deux approches : l'utilisation de profils nommés via AWS et l'utilisation du service de jetons de sécurité (STS) via AWS.

Remarque : lorsque vous configurez l'agent d' Instana s pour surveiller plusieurs comptes AWS, vous ne devez utiliser qu'une seule des deux méthodes disponibles.

Approche des profils nommés AWS

Pour surveiller plusieurs comptes, vous devez définir des profils nommés de la même manière que vous le feriez avec l 'interface de ligne de commande AWS, ou en créant le fichier manuellement. Le .aws/credentials fichier doit être créé dans le répertoire personnel de l'utilisateur qui exécute l'agent « Instana », qui est généralement root. L'interface CLI d' AWS utilise les fichiers ~/.aws/credentials d'identifiants comme suit :

[default]
aws_access_key_id = accessKey1
aws_secret_access_key = secretAccessKey1

[profile2]
aws_access_key_id = accessKey2
aws_secret_access_key = secretAccessKey2

[profile3]
aws_access_key_id = accessKey3
aws_secret_access_key = secretAccessKey3
 

Chaque profil représente le mappage entre le profil nommé AWS et les données d'identification d'accès à AWS. Lors de l'installation d'un AWS, un profil default AWS est créé. Il n'est pas nécessaire d'ajouter le profil default au fichier ~/.aws/credentials .

Les profils supplémentaires que doit utiliser l'agent AWS sont à indiquer dans le fichier de configuration de l'agent /opt/instana/agent/etc/instana/configuration.yaml comme suit :

com.instana.plugin.aws:
  profile_names:
    - 'profile2'
    - 'profile3'
 

Remarques :

  • La surveillance de plusieurs comptes AWS peut également être spécifiée pour des services AWS particuliers dans leur configuration spécifique. La liste des profils spécifiés pour un service spécifique remplace les configurations générales.
  • Veillez à suivre les recommandations concernant la création du fichier de données d'identification.

Pour éviter toute menace de sécurité, vous devriez soit définir des règles plus strictes pour l'instance EC2, soit créer un utilisateur distinct pour Instana AWS, ce qui vous évitera d'ajouter les identifiants de sécurité de l'utilisateur root au fichier ~/.aws/credentials .

Approche AWS STS

Cette approche utilise l'API de service AWS STS pour obtenir des données d'identification permettant l'accès à tous les comptes AWS supplémentaires qui doivent être surveillés par l'agent Instana. Une fois l'agent installé et configuré pour surveiller le compte par défaut, en suivant les étapes décrites dans la Installation section, vous devez fournir les ARN des rôles IAM de tous les comptes d' AWS s supplémentaires, de la manière suivante :

com.instana.plugin.aws:
  role_arns:
    - 'arn:aws:iam::<account_2_id>:role/<role_2_name>'
    - 'arn:aws:iam::<account_3_id>:role/<role_3_name>'
 
Remarque : la surveillance de plusieurs comptes AWS peut également être configurée pour certains services AWS dans le cadre de leur configuration spécifique. La liste des rôles IAM définis pour un service donné prévaut sur les configurations générales.

Chaque rôle, correspondant à l'ARN spécifié, doit également inclure les autorisations IAM requises pour la surveillance d' Instana AWS. Ainsi, chaque rôle doit permettre au compte par défaut d'effectuer l' sts:AssumeRole, en définissant la Trust relationship politique de la manière suivante :

  1. Si l'action sts:AssumeRole est effectuée à partir du contexte utilisateur AWS, lorsque l'agent est installé en dehors de votre infrastructure AWS

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<default_account_id>:user/<default_account_username>"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     
  2. Si l'action sts:AssumeRole est effectuée à partir du contexte de rôle IAM, lorsque l'agent est installé sur EC2 :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<default_account_id>:role/<default_account_IAM_role_name>"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    De la même manière, Compte par défaut devrait également être autorisé à fairests:AssumeRole à tous les comptes supplémentaires. Pour ce faire, il suffit de définir des politiques IAM supplémentaires au sein du rôle IAM utilisé pour la surveillance d' Instana, comme suit :

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            #Instana monitoring policy specifications
          },
          {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::<account_1_id>:role/<role_1_name>",
            "Effect": "Allow"
          },
          {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::<account_2_id>:role/<role_2_name>",
            "Effect": "Allow"
          }
        ]
      }
     

Filtrage et balisage

Remarque : pour activer le filtrage, l'autorisation IAM tag:GetResources doit figurer parmi les autorisations IAM accordées à l'agent AWS.

Une fois que vous avez activé la surveillance d'un service, vous pouvez déterminer quelles instances de ce service Instana seront surveillées en fonction des balises AWS, en modifiant le fichier /opt/instana/agent/etc/instana/configuration.yaml de configuration de l'agent AWS.

Les options disponibles dans le fichier de configuration sont les suivantes :

com.instana.plugin.aws:
  # Comma-separated list of tags in key:value format.
  # Any AWS resource containing at least one of the specified tags is discovered.
  include_tags: ...
  # Comma-separated list of tags in key:value format.
  # Any AWS resource containing at least one of the specified tags is omitted from discovery.
  exclude_tags: ...
  # Exclude untagged AWS resources by setting the flag to `false`
  include_untagged: ...
 

Plusieurs balises séparées par des virgules peuvent être définies. Les balises doivent être une paire clé-valeur séparée par :. Lorsque vous définissez des balises dans les deux listes (inclusion et exclusion), la priorité de la liste d'exclusion est plus élevée. S'il n'est pas nécessaire de filtrer les services, la configuration ne doit pas être définie.

L'agent d' Instana surveille automatiquement toutes les ressources AWS auxquelles aucune balise n'a été attribuée. {: note} Pour exclure les ressources non balisées de la surveillance, définissez le include_untagged paramètre sur false.

Le filtrage peut également être configuré sur le niveau de service. Dans ce cas, la configuration par défaut est remplacée pour le service concerné. Pour plus de détails sur le filtrage de reconnaissance par service spécifique, voir la documentation de service spécifique.

Taux d'interrogation des balises

Pour spécifier la fréquence à laquelle l'agent AWS interroge le service AWS surveillé pour obtenir les balises associées, utilisez la propriété de configuration tagged-services-poll-rate . La valeur par défaut est 300 secondes. L'agent utilise le client de service AWS pour interroger les balises.

La configuration du taux d'interrogation des ressources balisées est la suivante :

com.instana.plugin.aws:
  tagged-services-poll-rate: 60 #default 300
 

Intervalle d'interrogation

L'intervalle d'interrogation indique à quelle fréquence l'agent d' AWS interroge le serveur CloudWatch API. Il est configurable en tant que cloudwatch_period dans le fichier configuration.yml . La valeur par défaut est 300 secondes. Il est courant de voir les plateformes de surveillance utiliser une valeur comprise entre 5 et 10 minutes.

La fréquence d'interrogation est configurable à deux niveaux :

  • Au niveau de l'agent pour tous les services AWS surveillés par l'agent :

    com.instana.plugin.aws:
      cloudwatch_period: 300
     
  • Par service AWS :

    com.instana.plugin.aws.rds:
      cloudwatch_period: 300
     

La configuration par service unique remplace la configuration au niveau de l'agent.

Coûts liés à CloudWatch

Pour fournir des informations sur vos services AWS, les plateformes de monitoring comme Instana doivent utiliser l'API CloudWatch. Ce service API est fourni par AWS selon un modèle de tarification à l'utilisation. La présente documentation a pour objectif d'expliquer clairement comment Instana utilise l'interface CloudWatch API, afin que les utilisateurs puissent comprendre l'impact de cette utilisation sur leur facture AWS.

Les coûts liés à CloudWatch sont déterminés par :

  • Nombre d'instances surveillées de services AWS
  • Nombre de métriques collectées par agent AWS
  • Intervalle d'interrogation (configurable)

Chaque agent AWS envoie une requête à GetMetricData l'adresse CloudWatchAPI pour la collecte des métriques; en cas d'échec, GetMetricStatistics il est appelé en guise de solution de secours. Ces deux points de terminaison entraînent les mêmes coûts par indicateur (à noter que l'utilisation de la solution GetMetricStatistics de secours n'entraîne aucun coût supplémentaire). Vous trouverez plus de détails sur ces deux produits sur la page des tarifs d' AWS, à l'adresse CloudWatch.

Le tableau suivant contient une estimation approximative des coûts quotidiens pour les différents agents AWS lorsque l'intervalle d'interrogation est de 5 minutes et que les frais Amazon sont de0.01 $ pour 1000 métriques CloudWatch :

Capteur AWS Nombre de mesures Coût quotidien par instance Important
API Gateway 5 à 11 $0.0144 - $0.0317 Le nombre de métriques dépend du protocole d' API.
AppSync 18 $0.0518
Auto Scaling 13 $0.0374
Beanstalk 31 $0.0893
CloudFront 13 $0.0374 Le nombre de métriques dépend du nombre de fonctions associées. Par exemple, le tableau montre une fonction associée pour la distribution surveillée.
DynamoDB 71 $0.2045
EBS 9 $0.0230
ElastiCache 25 à 39 $0.0720 - $0.1123 Le nombre de métriques dépend du moteur utilisé.
OpenSearch 12 $0.0346
ELB 5 à 15 $0.0144 - $0.0432 Le nombre de métriques dépend du type d'équilibreur de charge et du nombre de zones de disponibilité.
dossier médical électronique 30 $0.0432
IoT Noyau 23 $0.0662
Kinesis 16 $0.0461
Lambda 21 $0.0605
MQ 22 $0.0634
Memorial Sloan Kettering 37 $0.0844 Le nombre de métriques dépend du nombre de courtiers au sein d'une grappe. Par exemple, le tableau montre qu'un courtier est surveillé.
RDS 18 $0.0518
Redshift 17 $0.0490 Le nombre de métriques dépend du nombre de nœuds au sein d'une grappe. Par exemple, le tableau montre qu'un nœud est surveillé.
S3 13 $0.0374
SNS 7 $0.0202
SQS 9 $0.0230
Timestream 9 $0.0230

Notez que CloudWatch n'est pas utilisé pour EC2 et pour les balises d'interrogation. Par conséquent, aucun coût CloudWatch n'y est encouru.

Vous pouvez réduire les coûts de CloudWatch en augmentant la fréquence d'interrogation. L'inconvénient de l'augmentation de l'intervalle d'interrogation est que vous réduisez les métriques de granularité de CloudWatch. Chaque demande fournit une valeur de métrique unique, de sorte que la différence entre un intervalle d'interrogation de 60s et de 300s est de cinq valeurs de métrique ou d'une valeur de métrique pour une période de 300s .

Il vous appartient de déterminer si l'intervalle d'interrogation par défaut est approprié pour votre entreprise ou s'il convient de le personnaliser afin de trouver l'équilibre entre le coût et la qualité des connaissances.

Traitement des incidents

Impossible de surveiller les services d' AWS s dans les environnements isolés physiquement

Si l'agent hôte d' Instana. est exécuté sur une machine EC2. ne disposant pas d'accès à Internet, l'agent ne pourra pas accéder aux API publiques des services AWS. et ne pourra donc pas surveiller les services AWS. pris en charge.

AWS PrivateLink offre un accès privé aux services hébergés sur AWS, avec une haute disponibilité et une grande évolutivité, sans nécessiter l'utilisation d'adresses IP publiques ni que le trafic transite par Internet.

Pour utiliser l' AWS PrivateLink, créez un point de terminaison VPC pour tous les services AWS qui doivent être surveillés. Le point de terminaison VPC fournit une interface réseau élastique au sein de votre sous-réseau, dotée d'une adresse IP privée, pour le service AWS ( API ), qui peut être utilisée par l'agent hôte Instana.

Remarque : pour l' API de balisage des groupes de ressources AWS, qui est utilisé par l'agent hôte Instana pour assurer le filtrage et le balisage, aucun point de terminaison VPC ne peut être utilisé, et cette API n'est accessible que via une adresse IP publique. Une solution possible consiste à configurer un proxy afin de rendre accessible l'adresse AWS Resource Groups Tagging API à l'agent hôte Instana.