

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Comprobaciones de estado de los grupos de destinos del Equilibrador de carga de aplicación.
<a name="target-group-health-checks"></a>

El Equilibrador de carga de aplicación envía periódicamente solicitudes a los destinos registrados para comprobar su estado. Estas pruebas se denominan *comprobaciones de estado*.

Cada nodo del equilibrador de carga direcciona las solicitudes únicamente a los destinos en buen estado de las zonas de disponibilidad habilitadas para el equilibrador de carga. Cada nodo del equilibrador de carga comprueba el estado de cada destino; para ello, utiliza la configuración de comprobación de estado de los grupos de destino en los que está registrado el destino. Una vez que el destino está registrado, debe superar una comprobación de estado para que se considere que se encuentra en buen estado. Después de completar cada comprobación de estado, el nodo del equilibrador de carga cierra la conexión se estableció para la comprobación de estado.

Si un grupo de destino contiene solo destinos registrados en mal estado, el equilibrador de carga dirige las solicitudes a todos esos destinos, independientemente de su estado. Esto significa que si todos los destinos no pasan las comprobaciones de estado al mismo tiempo en todas las zonas de disponibilidad habilitadas, el equilibrador de carga no se abrirá correctamente. El efecto de la apertura por error es permitir que el tráfico llegue a todos los destinos de todas las zonas de disponibilidad habilitadas, independientemente de su estado, en función del algoritmo de equilibrio de carga.

Los controles de salud no son compatibles WebSockets.

Para obtener más información, consulte [Estado del grupo de destino](load-balancer-target-groups.md#target-group-health).

Puede utilizar los registros de comprobaciones de estado para capturar información detallada sobre las comprobaciones de estado realizadas en sus objetivos registrados para el balanceador de cargas y almacenarlas como archivos de registro en Amazon S3. Puede usar estos registros de chequeos de estado para solucionar problemas con sus objetivos. Para obtener más información, consulte [Registros de chequeos de salud](load-balancer-health-check-logs.md).

**Topics**
+ [Configuración de comprobación de estado](#health-check-settings)
+ [Estado del destino](#target-health-states)
+ [Códigos de motivo de comprobación de estado](#target-health-reason-codes)
+ [Comprobación del estado de los destinos](check-target-health.md)
+ [Actualización de la configuración de comprobación de estado](modify-health-check-settings.md)

## Configuración de comprobación de estado
<a name="health-check-settings"></a>

Puede configurar las comprobaciones de estado de los destinos de un grupo de destino según se indica en la siguiente tabla. Los nombres de configuración que se utilizan en la tabla son los que se utilizan en la API. El balanceador de cargas envía una solicitud de comprobación de estado a cada objetivo registrado cada **HealthCheckIntervalSeconds**segundo, utilizando el puerto, el protocolo y la ruta de comprobación de estado especificados. Cada solicitud de comprobación de estado es independiente y el resultado dura todo el intervalo. El tiempo que tarda el destino en responder no afecta al intervalo de la siguiente solicitud de comprobación de estado. Si las comprobaciones de estado superan los errores **UnhealthyThresholdCount**consecutivos, el equilibrador de cargas deja el objetivo fuera de servicio. Cuando las comprobaciones de estado superan las **HealthyThresholdCount**correctas consecutivas, el equilibrador de cargas vuelve a poner el objetivo en servicio.

Ten en cuenta que cuando cancelas el registro de un objetivo, este porcentaje disminuye **HealthyHostCount**pero no aumenta. **UnhealthyHostCount**


| Opción | Description (Descripción) | 
| --- | --- | 
| **HealthCheckProtocol** |  Protocolo que el equilibrador de carga utiliza al realizar comprobaciones de estado en los destinos. Para Equilibradores de carga de aplicación, los protocolos admitidos son HTTP y HTTPS. El valor predeterminado es el protocolo HTTP. Estos protocolos utilizan el método HTTP GET para enviar las solicitudes de comprobación de estado.  | 
| **HealthCheckPort** |  Puerto que el equilibrador de carga utiliza al realizar comprobaciones de estado en los destinos. El valor predeterminado es el puerto en el que cada destino recibe el tráfico procedente del equilibrador de carga.  | 
| **HealthCheckPath** |  El destino para las comprobaciones de estado en los destinos. Si la versión del protocolo es HTTP/1.1 o HTTP/2, especifique un URI válido (/*ruta*?*consulta*). El valor predeterminado es /. Si la versión del protocolo es gRPC, especifique la ruta del método de comprobación de estado personalizado con el formato `/package.service/method`. El valor predeterminado es `/AWS.ALB/healthcheck`.  | 
| **HealthCheckTimeoutSeconds** |  Cantidad de tiempo, en segundos, durante la cual ninguna respuesta de un destino significa una comprobación de estado fallida. El rango va de 2 a 120 segundos. El valor predeterminado es 5 segundos si el tipo de destino es `instance` o `ip` y 30 segundos si el tipo de destino es `lambda`.  | 
| **HealthCheckIntervalSeconds** |  Cantidad aproximada de tiempo, en segundos, que transcurre entre comprobaciones de estado de un destino individual. El rango va de 5 a 300 segundos. El valor predeterminado es 30 segundos si el tipo de destino es `instance` o `ip` y 35 segundos si el tipo de destino es `lambda`.  | 
| **HealthyThresholdCount** |  Número de comprobaciones de estado consecutivas que deben superarse para considerar que un destino en mal estado vuelve a estar en buen estado. El rango va de 2 a 10. El valor predeterminado es 5.  | 
| **UnhealthyThresholdCount** |  Número de comprobaciones de estado consecutivas no superadas que se requieren para considerar que un destino se encuentra en mal estado. El rango va de 2 a 10. El valor predeterminado es 2.  | 
| **Matcher** |  Códigos que se deben utilizar al comprobar si se ha recibido una respuesta exitosa de un destino. En la consola, se denominan **códigos de éxito**. Si la versión del protocolo es HTTP/1.1 o HTTP/2, los valores posibles oscilan entre 200 y 499. Puede especificar varios valores (por ejemplo, “200,202”) o un intervalo de valores (por ejemplo, “200-299”). El valor predeterminado es 200. Si la versión del protocolo es gRPC, los valores posibles van de 0 a 99. Puede especificar varios valores (por ejemplo, “0,1”) o un intervalo de valores (por ejemplo, “0-5”). El valor predeterminado es 12.  | 

## Estado del destino
<a name="target-health-states"></a>

Antes de que el equilibrador de carga envíe a un destino una solicitud de comprobación de estado, debe registrarlo en un grupo de destino, especificar su grupo de destino en una regla del oyente y asegurarse de que la zona de disponibilidad del destino esté habilitada en el equilibrador de carga. Para que un destino pueda recibir solicitudes desde el equilibrador de carga, debe superar las comprobaciones de estado iniciales. Una vez que ha superado estas comprobaciones de estado iniciales, su estado es `Healthy`.

En la siguiente tabla se describen los valores posibles del estado de un destino registrado.


| Valor | Description (Descripción) | 
| --- | --- | 
| `initial` |  El equilibrador de carga se encuentra en proceso de registrar el destino o de realizar las comprobaciones de estado iniciales en el destino. Códigos de motivo relacionados: `Elb.RegistrationInProgress` \$1 `Elb.InitialHealthChecking`  | 
| `healthy` |  El destino se encuentra en buen estado. Códigos de motivo relacionados: ninguno  | 
| `unhealthy` |  El destino no respondió a una comprobación de estado o no la ha superado. Códigos de motivo relacionados: `Target.ResponseCodeMismatch` \$1 `Target.Timeout` \$1 `Target.FailedHealthChecks` \$1 `Elb.InternalError`  | 
| `unused` |  El destino no está registrado en un grupo de destino, el grupo de destino no se utiliza en una regla del oyente, el destino se encuentra en una zona de disponibilidad que no está habilitada o el destino está en un estado detenido o terminado. Códigos de motivo relacionados: `Target.NotRegistered` \$1 `Target.NotInUse` \$1 `Target.InvalidState` \$1 `Target.IpUnusable`  | 
| `draining` |  El destino está en proceso de anulación del registro y de vaciado de conexiones. Código de motivo relacionado: `Target.DeregistrationInProgress`  | 
| `unavailable` |  Las comprobaciones de estado están deshabilitadas para el grupo de destino. Código de motivo relacionado: `Target.HealthCheckDisabled`  | 

## Códigos de motivo de comprobación de estado
<a name="target-health-reason-codes"></a>

Si el estado de un destino es un valor distinto de `Healthy`, el API devuelve un código de motivo y una descripción del problema, y la consola muestra la misma descripción. Los códigos de motivo que comienzan por `Elb` tienen su origen en el equilibrador de carga y que los códigos de motivo que comienzan por `Target` tienen su origen en el destino. Para obtener más información sobre las posibles causas de los errores en las comprobaciones de estado, consulte [Solución de problemas](load-balancer-troubleshooting.md#target-not-inservice).


| Código de motivo | Description (Descripción) | 
| --- | --- | 
| `Elb.InitialHealthChecking` |  Las comprobaciones de estado iniciales están en curso.  | 
| `Elb.InternalError` |  Las comprobaciones de estado no se han superado debido a un error interno.  | 
| `Elb.RegistrationInProgress` |  El registro del destino está en curso.  | 
| `Target.DeregistrationInProgress` |  La anulación del registro del destino está en curso.  | 
| `Target.FailedHealthChecks` |  Las comprobaciones de estado no se han superado.  | 
| `Target.HealthCheckDisabled` |  Las comprobaciones de estado están deshabilitadas  | 
| `Target.InvalidState` |  El destino se encuentra en estado detenido. El destino se encuentra en estado terminado. El destino se encuentra en estado terminado o detenido. El destino se encuentra en un estado no válido.  | 
| `Target.IpUnusable` |  La dirección IP no se puede utilizar como destino, ya que la utiliza un equilibrador de carga.  | 
| `Target.NotInUse` |  El grupo de destino no se ha configurado para recibir el tráfico del equilibrador de carga. El destino se encuentra en una zona de disponibilidad que no está habilitada para el equilibrador de carga.  | 
| `Target.NotRegistered` |  El destino no está registrado en el grupo de destino.  | 
| `Target.ResponseCodeMismatch` |  Las comprobaciones de estado no se han superado y se han emitido estos códigos: [*código*]  | 
| `Target.Timeout` |  Se agotó el tiempo de espera de la solicitud.  | 

# Comprobación del estado de los destinos del Equilibrador de carga de aplicación
<a name="check-target-health"></a>

Puede comprobar el estado de los destinos registrados en los grupos de destino. Para obtener ayuda con errores en la comprobación de estado, consulte [Solución de problemas: un destino registrado no está en servicio](load-balancer-troubleshooting.md#target-not-inservice).

Puede utilizar los registros de comprobaciones de estado para capturar información detallada sobre las comprobaciones de estado realizadas en sus objetivos registrados para el balanceador de cargas y almacenarlas como archivos de registro en Amazon S3. Puede usar estos registros de chequeos de estado para solucionar problemas con sus objetivos. Para obtener más información, consulte [Registros de chequeos de salud](load-balancer-health-check-logs.md).

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

**Para comprobar el estado de los destinos**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, en **Load Balancing** (Equilibración de carga), elija **Target Groups** (Grupos de destino).

1. Elija el nombre del grupo de destino para mostrar sus detalles.

1. En el pestaña **Detalles** se muestra la cantidad total de destinos, más la cantidad de destinos de cada estado.

1. En la pestaña **Targets** la **Status** columna indica el estado de cada destino.

1. Si el estado es un valor distinto de `Healthy`, la columna **Detalles del estado** contiene más información.

**Para recibir notificaciones por correo electrónico sobre destinos en mal estado**  
Utilice CloudWatch alarmas para activar una función Lambda que envíe detalles sobre objetivos en mal estado. Para step-by-step obtener instrucciones, consulta la siguiente entrada del blog: Cómo [identificar los objetivos insalubres de tu balanceador de cargas](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/).

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

**Para comprobar el estado de los destinos**  
Utilice el comando [describe-target-health](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html). Este ejemplo filtra la salida para incluir solo los destinos que no están en buen estado. En el caso de los destinos que no están en buen estado, la salida incluye un código de motivo.

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

A continuación, se muestra un ejemplo del resultado.

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

------

## Estados de los destinos y códigos de motivo
<a name="target-states-reason-codes"></a>

La siguiente lista muestra los posibles códigos de motivo para cada estado de destino.

**El estado del destino es healthy**  
No se proporciona un código de motivo.

**El estado del destino es initial**  
+  `Elb.RegistrationInProgress`: el destino está en proceso de registro en el equilibrador de carga.
+  `Elb.InitialHealthChecking`: el equilibrador de carga todavía envía al destino la cantidad mínima de comprobaciones de estado necesarias para determinar su estado.

**El estado del destino es unhealthy**  
+ `Target.ResponseCodeMismatch`: las comprobaciones de estado no devolvieron un código HTTP esperado.
+ `Target.Timeout`: las solicitudes de comprobación de estado excedieron el tiempo de espera.
+ `Target.FailedHealthChecks`: el equilibrador de carga recibió un error al intentar establecer una conexión con el destino o la respuesta del destino tenía un formato que no es válido.
+ `Elb.InternalError`: las comprobaciones de estado no se han superado debido a un error interno.

**El estado del destino es unused**  
+ `Target.NotRegistered`: el destino no está registrado en el grupo de destino.
+ `Target.NotInUse`: el grupo de destino no es utilizado por ningún equilibrador de carga, o el destino se encuentra en una zona de disponibilidad que no está habilitada para su equilibrador de carga.
+ `Target.InvalidState`: el destino se encuentra en estado detenido o terminado.
+ `Target.IpUnusable`: la dirección IP del destino está reservada para uso de un equilibrador de carga.

**El estado del destino es draining**  
+ `Target.DeregistrationInProgress`: el destino está en proceso de anulación de registro y el periodo de retardo para la anulación aún no ha caducado.

**El estado del destino es unavailable**  
+ `Target.HealthCheckDisabled`: las comprobaciones de estado están desactivadas para el grupo de destino.

# Actualización de la configuración de comprobación de estado del grupo de destino de un Equilibrador de carga de aplicación
<a name="modify-health-check-settings"></a>

Puede actualizar la configuración de comprobación de estado del grupo de destino en cualquier momento. Para ver la lista de configuraciones de comprobación de estado, consulte [Configuración de comprobación de estado](target-group-health-checks.md#health-check-settings).

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

**Para actualizar las configuraciones de comprobación de estado**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, en **Load Balancing** (Equilibración de carga), elija **Target Groups** (Grupos de destino).

1. Elija el nombre del grupo de destino para mostrar sus detalles.

1. En la pestaña **Health check**, elija **Edit**.

1. En la página **Editar configuraciones de comprobación de estado**, modifique los parámetros según sea necesario.

1. Seleccione **Save changes (Guardar cambios)**.

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

**Para actualizar las configuraciones de comprobación de estado**  
Utilice el comando [modify-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-target-group.html). En el siguiente ejemplo, se actualiza la **HealthCheckTimeoutSeconds**configuración **HealthyThresholdCount**y.

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

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

**Para actualizar las configuraciones de comprobación de estado**  
Actualice el [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-targetgroup.html)recurso para incluir la configuración de comprobación de estado actualizada. En el siguiente ejemplo, se actualiza la **HealthCheckTimeoutSeconds**configuración **HealthyThresholdCount**y.

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

------