

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.

# `AWSSupport-TroubleshootAWSECSHealthChecks`
<a name="automation-awssupport-troubleshootawsecshealthchecks"></a>

Este `AWSSupport-TroubleshootAWSECSHealthChecks` manual ayuda a diagnosticar y solucionar problemas en los que las tareas de Amazon Elastic Container Service (Amazon ECS) que se ejecutan en instancias de Amazon Elastic Compute Cloud (Amazon EC2) o (Fargate) no superan las comprobaciones de estado del Application Load Balancer AWS Fargate (ALB).

El manual realiza un análisis sistemático de la siguiente manera:

1. Verificar la conectividad de red entre las tareas de ALB y Amazon ECS

1. Comprobar si las tareas se cierran inesperadamente

1. Analizar el estado de salud y los códigos de respuesta del grupo objetivo

1. Examinar la configuración del ALB y los ajustes de verificación de estado

1. Validar la configuración del servicio, incluidos los períodos de gracia para comprobar el estado

1. Realizar diagnósticos personalizados para detectar discrepancias en los códigos de respuesta

**importante**  
Para realizar diagnósticos avanzados, el runbook implementa funciones temporales AWS Lambda (Lambda) en su Amazon Virtual Private Cloud (Amazon VPC) para simular las solicitudes de verificación de estado desde la misma perspectiva de red que su ALB. Estas funciones requieren un rol de ejecución de Lambda, que puede especificarse como un parámetro o crearse temporalmente con este libro de ejecución.

 [Ejecuta esta automatización (consola)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSECSHealthChecks) 

**Tipo de documento**

Automatización

**Propietario**

Amazon

**Plataformas**

/

**Permisos de IAM necesarios**

El parámetro `AutomationAssumeRole` requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpointServices`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcs`
+ `ecs:DescribeClusters`
+ `ecs:DescribeContainerInstances`
+ `ecs:DescribeServices`
+ `ecs:DescribeTaskDefinition`
+ `ecs:DescribeTaskSets`
+ `ecs:DescribeTasks`
+ `ecs:ListTasks`
+ `elasticloadbalancing:DescribeListeners`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeRules`
+ `elasticloadbalancing:DescribeTargetGroupAttributes`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `elasticloadbalancing:DescribeTargetHealth`
+ `iam:AttachRolePolicy`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:DetachRolePolicy`
+ `iam:GetRole`
+ `iam:ListRoles`
+ `iam:PassRole`
+ `iam:SimulateCustomPolicy`
+ `iam:SimulatePrincipalPolicy`
+ `iam:TagRole`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:GetFunctionConfiguration`
+ `lambda:InvokeFunction`
+ `lambda:TagResource`
+ `servicequotas:GetServiceQuota`
+ `ssm:GetAutomationExecution`

Política de IAM de ejemplo:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcEndpointServices",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcs",
                "ecs:DescribeClusters",
                "ecs:DescribeContainerInstances",
                "ecs:DescribeServices",
                "ecs:DescribeTaskDefinition",
                "ecs:DescribeTaskSets",
                "ecs:DescribeTasks",
                "ecs:ListTasks",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancerAttributes",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeRules",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:DetachRolePolicy",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:SimulateCustomPolicy",
                "iam:SimulatePrincipalPolicy",
                "iam:TagRole",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration",
                "lambda:InvokeFunction",
                "lambda:TagResource",
                "servicequotas:GetServiceQuota",
                "ssm:GetAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Action": [
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/AWSECSHealthChecks-*",
            "Condition": {
                "ArnLike": {
                    "iam:PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
                }
            },
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/AWSECSHealthChecks-*",
            "Effect": "Allow",
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "lambda.amazonaws.com"
                }
            }
        }
    ]
}
```

`ExecutionResult.message`- Un resumen de las conclusiones de todas las etapas del diagnóstico, incluida la conectividad de la red, el estado de las tareas, el estado del grupo objetivo y las recomendaciones.

Siga estos pasos para configurar la automatización:

1. Abra [ AWSSupport-TroubleshootAWSECSHealthChecks ](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAWSECSHealthChecks/description) en el Administrador de sistemas, en la sección Documentos.

1. Elija Ejecutar automatización.

1. Para los parámetros de entrada, introduzca lo siguiente:
   + **ECSClusterName (Obligatorio): **

     El nombre del clúster de Amazon ECS.
   + **ECSServiceName (Obligatorio): **

     El nombre del servicio Amazon ECS.
   + **LambdaExecutionRole (Opcional): **

     El ARN del rol de ejecución de Lambda utilizado para el paso de diagnóstico de la comprobación de estado personalizada. Si no se especifica ningún rol, el manual omite el paso de diagnóstico avanzado o crea un rol temporal.
   + **AutomationAssumeRole (Opcional): **

     El nombre de recurso de Amazon (ARN) del rol AWS Identity and Access Management (IAM) que permite a Systems Manager Automation realizar las acciones en su nombre. Si no se especifica ningún rol, Systems Manager Automation utiliza los permisos del usuario que comienza este manual de procedimientos.

1. Elija Ejecutar.

1. Se inicia la automatización.

1. Este documento realiza los siguientes pasos:
   + **`CheckPermissions`**:

     Verifica que el usuario o rol de IAM que inició la automatización tenga los permisos necesarios.
   + **`CheckTargetClusterExistence`**:

     Comprueba si el clúster de Amazon ECS especificado existe y está activo.
   + **`CheckEcsServiceExistence`**:

     Comprueba si el servicio Amazon ECS especificado existe y está activo.
   + **`CheckNetworkConnectivity`**:

     Comprueba la conectividad de red entre las tareas de ALB y Amazon ECS.
   + **`CheckTasksAreExiting`**:

     Comprueba si las tareas de Amazon ECS se cierran de forma inesperada.
   + **`CheckTargetHealth`**:

     Comprueba el estado de salud de los objetivos del grupo objetivo.
   + **`CreateLambdaExecutionRole`**:

     Crea un rol de ejecución temporal de Lambda si no se especifica el `LambdaExecutionRole` parámetro.
   + **`ExecuteCustomCheck`**:

     Implementa funciones temporales de Lambda para simular las solicitudes de comprobación de estado e identificar las discrepancias en los códigos de respuesta.
   + **`ExecuteAdditionalCheck`**:

     Realiza comprobaciones adicionales de los períodos de gracia de la configuración y de las comprobaciones de estado del ALB.
   + **`DeleteLambdaExecutionRole`**:

     Elimina la función de ejecución temporal de Lambda y las funciones de Lambda creadas durante el proceso de diagnóstico.
   + **`ExecutionResult`**:

     Recopila todos los hallazgos en un informe resumido con recomendaciones.

1. Una vez finalizada, revise la sección Resultados para ver los resultados detallados de la ejecución.

Automatización de Systems Manager
+  [Ejecuta esta automatización (consola)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAWSECSHealthChecks/description) 
+  [Ejecución de una automatización](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html) 
+  [Configuración de Automatización](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html) 
+  [Soporta flujos de trabajo de automatización ](https://aws.amazon.com/premiumsupport/technology/saw/) 