

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Surveillances de l’état des groupes cibles Application Load Balancer
<a name="target-group-health-checks"></a>

Votre Application Load Balancer envoie périodiquement des demandes à ses cibles enregistrées pour tester leur état. Ces tests sont appelés *vérifications de l'état*.

Chaque nœud de l'équilibreur de charge achemine les demandes uniquement vers les cibles saines dans les zones de disponibilité activées pour l'équilibreur de charge. Chaque nœud d'équilibreur de charge vérifie l'état de santé de chaque cible en utilisant les paramètres de vérification de l'état des groupes cibles auprès desquels les cibles sont enregistrées. Une fois que votre cible est enregistrée, elle doit passer avec succès une seule vérification de l'état pour être considérée comme saine. Lorsque toutes les vérifications de l'état sont terminées, le nœud d'équilibreur de charge ferme la connexion qui a été établie pour la vérification de l'état.

Si un groupe cible ne contient que des cibles enregistrées non conformes, l'équilibreur de charge achemine les demandes vers toutes ces cibles, quel que soit leur état. Cela signifie que si toutes les cibles échouent aux surveillances de l'état en même temps dans toutes les zones de disponibilité activées, l'équilibreur de charge passe en mode fail-open. L'effet de fail-open est d'autoriser le trafic à destination de toutes les cibles situées dans toutes les zones de disponibilité activées, quel que soit leur état, sur la base de l'algorithme de répartition de charge.

Les bilans de santé ne sont pas pris en charge WebSockets.

Pour de plus amples informations, veuillez consulter [État du groupe cible](load-balancer-target-groups.md#target-group-health).

Vous pouvez utiliser les journaux de contrôle de santé pour recueillir des informations détaillées sur les contrôles d'état effectués sur vos cibles enregistrées pour votre équilibreur de charge et les stocker sous forme de fichiers journaux dans Amazon S3. Vous pouvez utiliser ces journaux de vérification de l'état pour résoudre les problèmes liés à vos cibles. Pour de plus amples informations, veuillez consulter [Journaux de bilan de santé](load-balancer-health-check-logs.md).

**Topics**
+ [Paramètres de surveillance de l'état](#health-check-settings)
+ [État de santé d'une cible](#target-health-states)
+ [Codes de motif de vérification de l'état](#target-health-reason-codes)
+ [Vérifiez la santé de la cible](check-target-health.md)
+ [Mettre à jour les paramètres de contrôle de santé](modify-health-check-settings.md)

## Paramètres de surveillance de l'état
<a name="health-check-settings"></a>

Vous configurez les surveillances de l'état pour les cibles d'un groupe cible comme décrit dans le tableau suivant. Les noms de paramètres utilisés dans le tableau sont les noms utilisés dans l'API. L'équilibreur de charge envoie une demande de contrôle de santé à chaque cible enregistrée toutes les **HealthCheckIntervalSeconds**secondes, en utilisant le port, le protocole et le chemin de contrôle d'état spécifiés. Chaque demande de vérification de l'état est indépendante et le résultat dure pendant la totalité de l'intervalle. Le temps nécessaire pour que la cible réponde n'affecte pas l'intervalle pour la demande de vérification de l'état suivante. Si les bilans de santé dépassent le nombre de défaillances **UnhealthyThresholdCount**consécutives, l'équilibreur de charge met la cible hors service. Lorsque les bilans de santé dépassent le nombre de réussites **HealthyThresholdCount**consécutives, l'équilibreur de charge remet la cible en service.

Notez que lorsque vous annulez l'enregistrement d'une cible, ce chiffre diminue **HealthyHostCount**mais n'augmente pas. **UnhealthyHostCount**


| Paramètre | Description | 
| --- | --- | 
| **HealthCheckProtocol** |  Protocole utilisé par l'équilibreur de charge lors des vérifications de l'état des cibles. Pour les équilibreurs de charge d'application, les protocoles possibles sont HTTP et HTTPS. La valeur par défaut est le protocole HTTP. Le chemin d'accès auquel envoyer les demandes de surveillance de l'état.  | 
| **HealthCheckPort** |  Port utilisé par l'équilibreur de charge lors des vérifications de l'état des cibles. La valeur par défaut consiste à utiliser le port sur lequel chaque cible reçoit le trafic depuis l'équilibreur de charge.  | 
| **HealthCheckPath** |  La destination des surveillances de l'état des cibles. Si la version du protocole est HTTP/1.1 ou HTTP/2, spécifiez un URI valide (/*path*?*query*). La valeur par défaut est /. Si la version du protocole est gRPC, indiquez le chemin d'une méthode de surveillance de l'état personnalisée au format `/package.service/method`. La valeur par défaut est `/AWS.ALB/healthcheck`.  | 
| **HealthCheckTimeoutSeconds** |  Durée, en secondes, pendant laquelle l'absence de réponse d'une cible indique l'échec de la vérification de l'état. La plage est comprise entre 2 et 120 secondes. La valeur par défaut est de 5 secondes si le type de la cible est `instance` ou `ip` et de 30 secondes si le type de la cible est `lambda`.  | 
| **HealthCheckIntervalSeconds** |  Durée approximative, en secondes, entre les vérifications de l'état d'une cible. La plage est comprise entre 5 et 300 secondes. La valeur par défaut est de 30 secondes si le type de la cible est `instance` ou `ip` et de 35 secondes si le type de la cible est `lambda`.  | 
| **HealthyThresholdCount** |  Le nombre de réussites consécutives de la vérification de l'état à partir duquel une cible défectueuse est considérée comme saine. La plage est comprise entre 2 et 10. La valeur par défaut est 5.  | 
| **UnhealthyThresholdCount** |  Le nombre d'échecs consécutifs de la vérification de l'état à partir duquel une cible est considérée comme défectueuse. La plage est comprise entre 2 et 10. La valeur par défaut est 2.  | 
| **Matcher** |  Les codes à utiliser lors de la recherche d'une réponse positive provenant d'une cible. Ils sont appelés **codes de réussite** dans la console. Si la version du protocole est HTTP/1.1 ou HTTP/2, les valeurs possibles sont comprises entre 200 et 499. Vous pouvez spécifier plusieurs valeurs (par exemple, « 200,202 ») ou une plage de valeurs (par exemple, « 200-299 »). La valeur par défaut est 200. Si la version du protocole est gRPC, les valeurs possibles sont comprises entre 0 et 99. Vous pouvez spécifier plusieurs valeurs (par exemple, « 0,1 ») ou une plage de valeurs (par exemple, « 0-5 »). La valeur par défaut est 12.  | 

## État de santé d'une cible
<a name="target-health-states"></a>

Avant que l'équilibreur de charge n'envoie une demande de vérification de l'état à une cible, vous devez enregistrer cette cible auprès d'un groupe cible, spécifier son groupe cible dans une règle d'écouteur et vous assurer que la zone de disponibilité de la cible est activée pour l'équilibreur de charge. Pour qu'une cible puisse recevoir des demandes de l'équilibreur de charge, elle doit passer avec succès les vérifications de l'état initiales. Lorsqu'une cible a passé avec succès les vérifications de l'état initiales, son état est `Healthy`.

Le tableau suivant décrit les valeurs possibles de l'état de santé d'une cible enregistrée.


| Value | Description | 
| --- | --- | 
| `initial` |  L'équilibreur de charge est en train d'enregistrer la cible ou d'exécuter les vérifications de l'état initiales sur la cible. Codes de motif connexes : `Elb.RegistrationInProgress` \$1 `Elb.InitialHealthChecking`  | 
| `healthy` |  La cible est saine. Codes de motif connexes : aucun  | 
| `unhealthy` |  La cible n'a pas répondu à une vérification de l'état ou a échoué à la vérification de l'état. Codes de motif connexes : `Target.ResponseCodeMismatch` \$1 `Target.Timeout` \$1 `Target.FailedHealthChecks` \$1 `Elb.InternalError`  | 
| `unused` |  La cible n'est pas enregistrée auprès d'un groupe cible, le groupe cible n'est pas utilisé dans une règle d'écouteur, la cible est dans une zone de disponibilité qui n'est pas activée pour l'équilibreur de charge, ou l'état de la cible indique qu'elle a été arrêtée ou résiliée. Codes de motif connexes : `Target.NotRegistered` \$1 `Target.NotInUse` \$1 `Target.InvalidState` \$1 `Target.IpUnusable`  | 
| `draining` |  L'enregistrement de la cible est en cours d'annulation et le drainage de la connexion est en cours. Code motif connexe : `Target.DeregistrationInProgress`  | 
| `unavailable` |  Les vérifications de l'état sont désactivées pour le groupe cible. Code motif connexe : `Target.HealthCheckDisabled`  | 

## Codes de motif de vérification de l'état
<a name="target-health-reason-codes"></a>

Si l'état d'une cible correspond à une valeur autre que `Healthy`, l'API renvoie un code de motif et une description du problème, et la console affiche la même description. Les codes de motif qui commencent par `Elb` proviennent de l'équilibreur de charge et ceux qui commencent par `Target` proviennent de la cible. Pour plus d'informations sur les causes possibles des échecs liés aux surveillances de l'état, consultez [Résolution des problèmes](load-balancer-troubleshooting.md#target-not-inservice).


| Code de motif | Description | 
| --- | --- | 
| `Elb.InitialHealthChecking` |  Vérifications de l'état initiales en cours  | 
| `Elb.InternalError` |  Échec des vérifications de l'état initiales en raison d'une erreur interne  | 
| `Elb.RegistrationInProgress` |  Enregistrement de la cible en cours  | 
| `Target.DeregistrationInProgress` |  Annulation de l'enregistrement de la cible en cours  | 
| `Target.FailedHealthChecks` |  Échec des vérifications de l'état  | 
| `Target.HealthCheckDisabled` |  Les vérifications de l'état sont désactivées  | 
| `Target.InvalidState` |  La cible est à l'état arrêté. La cible est à l'état résilié. La cible est à l'état résilié ou arrêté. La cible est à un état non valide.  | 
| `Target.IpUnusable` |  L'adresse IP ne peut pas être utilisée en tant que cible, car elle est utilisée par un équilibreur de charge  | 
| `Target.NotInUse` |  Le groupe cible n'est pas configuré de façon à recevoir le trafic de l'équilibreur de charge La cible est dans une zone de disponibilité qui n'est pas activée pour l'équilibreur de charge  | 
| `Target.NotRegistered` |  La cible n'est pas enregistrée auprès du groupe cible  | 
| `Target.ResponseCodeMismatch` |  Les vérifications de l'état ont échoué et généré les codes suivants : [*code*]  | 
| `Target.Timeout` |  Délai d'attente de la demande dépassé  | 

# Vérifiez l'état de vos cibles Application Load Balancer
<a name="check-target-health"></a>

Vous pouvez vérifier l'état de santé des cibles enregistrées auprès de vos groupes cible. Pour obtenir de l'aide en cas d'échec du bilan de santé, voir [Résolution des problèmes : une cible enregistrée n'est pas en service](load-balancer-troubleshooting.md#target-not-inservice).

Vous pouvez utiliser les journaux de contrôle de santé pour recueillir des informations détaillées sur les contrôles d'état effectués sur vos cibles enregistrées pour votre équilibreur de charge et les stocker sous forme de fichiers journaux dans Amazon S3. Vous pouvez utiliser ces journaux de vérification de l'état pour résoudre les problèmes liés à vos cibles. Pour de plus amples informations, veuillez consulter [Journaux de bilan de santé](load-balancer-health-check-logs.md).

------
#### [ Console ]

**Pour vérifier l'état de santé de vos cibles**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, sous **Load Balancing** (Répartition de charge), choisissez **Target Groups** (Groupes cibles).

1. Sélectionnez le nom du groupe cible pour afficher sa page de détails.

1. L'onglet **Détails** affiche le nombre total de cibles, plus le nombre de cibles pour chaque état de santé.

1. Dans l'onglet **Targets**, la colonne **Status** indique l'état de chaque cible.

1. Si le statut est une valeur autre que `Healthy`, la colonne **Détails de l'état** contient des informations supplémentaires.

**Pour recevoir des notifications par e-mail concernant des cibles non saines**  
Utilisez des CloudWatch alarmes pour déclencher une fonction Lambda afin d'envoyer des informations sur les cibles défectueuses. Pour step-by-step obtenir des instructions, consultez le billet de blog suivant : [Identifier les cibles défectueuses de votre équilibreur de charge](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/).

------
#### [ AWS CLI ]

**Pour vérifier l'état de santé de vos cibles**  
Utilisez la commande [describe-target-health](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html). Cet exemple filtre la sortie pour n'inclure que les cibles qui ne sont pas saines. Pour les cibles qui ne sont pas saines, la sortie inclut un code de motif.

```
aws elbv2 describe-target-health \
    --target-group-arn target-group-arn \
    --query "TargetHealthDescriptions[?TargetHealth.State!='healthy'].[Target.Id,TargetHealth.State,TargetHealth.Reason]" \
    --output table
```

Voici un exemple de sortie.

```
----------------------------------------------
|            DescribeTargetHealth            |
+--------------+---------+-------------------+
|  172.31.0.57 |  unused |  Target.NotInUse  |
|  172.31.0.50 |  unused |  Target.NotInUse  |
+--------------+---------+-------------------+
```

------

## États cibles et codes de motif
<a name="target-states-reason-codes"></a>

La liste suivante indique les codes de motif possibles pour chaque État cible.

**L'état cible est healthy**  
Aucun code de motif n'est fourni.

**L'état cible est initial**  
+  `Elb.RegistrationInProgress`- La cible est en cours d'enregistrement auprès de l'équilibreur de charge.
+  `Elb.InitialHealthChecking`- L'équilibreur de charge envoie toujours à la cible le nombre minimum de bilans de santé requis pour déterminer son état de santé.

**L'état cible est unhealthy**  
+ `Target.ResponseCodeMismatch`- Les bilans de santé n'ont pas renvoyé le code HTTP attendu.
+ `Target.Timeout`- Les demandes de bilan de santé ont expiré.
+ `Target.FailedHealthChecks`- L'équilibreur de charge a reçu une erreur lors de l'établissement d'une connexion avec la cible ou la réponse de la cible a été mal formée.
+ `Elb.InternalError`- Les contrôles de santé ont échoué en raison d'une erreur interne.

**L'état cible est unused**  
+ `Target.NotRegistered`- La cible n'est pas enregistrée auprès du groupe cible.
+ `Target.NotInUse`- Le groupe cible n'est utilisé par aucun équilibreur de charge ou la cible se trouve dans une zone de disponibilité non activée pour son équilibreur de charge.
+ `Target.InvalidState`- La cible est à l'état arrêté ou terminé.
+ `Target.IpUnusable`- L'adresse IP cible est réservée à l'utilisation d'un équilibreur de charge.

**L'état cible est draining**  
+ `Target.DeregistrationInProgress`- La cible est en cours de désinscription et le délai de désinscription n'est pas expiré.

**L'état cible est unavailable**  
+ `Target.HealthCheckDisabled`- Les bilans de santé sont désactivés pour le groupe cible.

# Mettre à jour les paramètres de contrôle de santé d'un groupe cible d'Application Load Balancer
<a name="modify-health-check-settings"></a>

Vous pouvez mettre à jour les paramètres du bilan de santé de votre groupe cible à tout moment. Pour consulter la liste des paramètres du bilan de santé, voir[Paramètres de surveillance de l'état](target-group-health-checks.md#health-check-settings).

------
#### [ Console ]

**Pour mettre à jour les paramètres du bilan de santé**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, sous **Load Balancing** (Répartition de charge), choisissez **Target Groups** (Groupes cibles).

1. Sélectionnez le nom du groupe cible pour afficher sa page de détails.

1. Dans l'onglet **Health checks**, choisissez **Edit**.

1. Sur la page **Modifier les paramètres du bilan de santé**, modifiez les paramètres selon vos besoins.

1. Sélectionnez **Enregistrer les modifications**.

------
#### [ AWS CLI ]

**Pour mettre à jour les paramètres du bilan de santé**  
Utilisez la commande [modify-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-target-group.html). L'exemple suivant met à jour les **HealthCheckTimeoutSeconds**paramètres **HealthyThresholdCount**et.

```
aws elbv2 modify-target-group \
    --target-group-arn target-group-arn \
    --healthy-threshold-count 3 \
    --health-check-timeout-seconds 20
```

------
#### [ CloudFormation ]

**Pour mettre à jour les paramètres du bilan de santé**  
Mettez à jour la [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-targetgroup.html)ressource pour inclure les paramètres de contrôle de santé mis à jour. L'exemple suivant met à jour les **HealthCheckTimeoutSeconds**paramètres **HealthyThresholdCount**et.

```
Resources:
  myTargetGroup:
    Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
    Properties:
      Name: my-target-group
      Protocol: HTTP
      Port: 80
      TargetType: instance
      VpcId: !Ref myVPC
      HealthyThresholdCount: 3
      HealthCheckTimeoutSeconds: 20
```

------