Solución de problemas de CloudFormation
Cuando utiliza CloudFormation, puede encontrarse con problemas al crear, actualizar o eliminar pilas de CloudFormation. Las siguientes secciones pueden ayudarle a solucionar algunos problemas habituales que puede encontrarse.
Para preguntas generales sobre CloudFormation, consulte las Preguntas frecuentes sobre AWS CloudFormation
Guía para solucionar problemas
Si CloudFormation no crea, actualiza o elimina la pila, puede ver mensajes de error o registros que le ayudarán a obtener más información sobre el problema. Las siguientes tareas describen los métodos generales para la resolución de problemas de CloudFormation. Para obtener más información sobre errores y soluciones concretos, consulte la sección Solución de errores.
-
Utilice la consola de CloudFormation
para ver el estado de su pila. En la consola, puede ver una lista de los eventos de la pila cuando se crea, actualiza o elimina la pila. Desde esta lista, encuentre un evento de error y, a continuación, vea la razón del estado de dicho evento. La razón del estado podría contener un mensaje de error de CloudFormation o de un determinado servicio que puede ayudarle a solucionar el problema. Para obtener más información acerca de la visualización de eventos de pila, consulte Visualización de la información de la pila desde la consola de CloudFormation. -
Para los problemas de Amazon EC2, vea los registros de cloud-init y cfn. Estos registros se publican en la instancia Amazon EC2 del directorio
/var/log/
. Estos logs capturan los procesos y salidas de comandos mientras CloudFormation configura su instancia. Para Windows, consulte el servicio EC2Configure en%ProgramFiles%\Amazon\EC2ConfigService
, EC2 Launch en%ProgramData%\Amazon\EC2-Windows\Launch\Logs
, EC2 Launch v2 en%ProgramData%\Amazon\EC2Launch\log
y los registros de cfn enC:\cfn\log
.También puede configurar su plantilla de CloudFormation para que los registros se publiquen en Amazon CloudWatch, que muestra registros en la AWS Management Console para que no tenga que conectarse a la instancia de Amazon EC2. Para obtener más información, consulte Ver registros de CloudFormation en la consola
en el blog de administración de aplicaciones.
Solución de errores
Cuando se encuentra ante los siguientes errores con su pila de CloudFormation, puede utilizar las siguientes soluciones que le ayudarán a encontrar el origen de los problemas y corregirlos.
Temas
- Errores al eliminar la pila
- Error de dependencia
- Conflictos AWS Config y AWS Systems Manager
- Error de análisis de parámetro al pasar una lista
- Permisos insuficientes de IAM
- Valor no válido o propiedad de recurso no admitida
- Cuota excedida
- Las pilas anidadas se han quedado atascadas en UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS o UPDATE_ROLLBACK_IN_PROGRESS
- No hay actualizaciones que realizar.
- El recurso no se estabiliza durante una operación de creación, actualización o eliminación de pila.
- El grupo de seguridad no existe en la VPC
- Error en la restauración de actualización
- La condición de espera no recibió el número necesario de señales de una instancia Amazon EC2
- Recurso eliminado de la pila pero no borrado
Errores al eliminar la pila
Para resolver esta situación, pruebe lo siguiente:
-
Algunos recursos deben estar vacíos para poder eliminarlos. Por ejemplo, debe eliminar todos los objetos de un bucket de Amazon S3 o eliminar todas las instancias de un grupo de seguridad de Amazon EC2 para poder eliminar el bucket o grupo de seguridad.
-
Asegúrese de que tiene los permisos de IAM necesarios para eliminar los recursos de la pila. Además de los permisos de CloudFormation, debe poder utilizar los servicios subyacentes, como Amazon S3 o Amazon EC2.
-
Cuando las pilas están en el estado
DELETE_FAILED
porque CloudFormation no ha podido eliminar un recurso, vuelva a ejecutar la eliminación con elRetainResources
parámetro y especifique el recurso que CloudFormation no puede eliminar. CloudFormation elimina la pila sin eliminar el recurso conservado. Conservar los recursos resulta útil cuando no puede eliminar un recurso, como un bucket de S3 que contiene objetos que desea conservar, pero aun así desea eliminar la pila.Después de eliminar la pila, puede eliminar manualmente los recursos conservados mediante el servicio de AWS asociado.
Como alternativa, puede considerar la posibilidad de usar la opción
FORCE_DELETE_STACK
con el parámetroDeletionMode
. Para obtener más información sobre cómo forzar la eliminación de una pila, consulte DeleteStack. -
No puede eliminar pilas con protección de terminación habilitada. Si intenta eliminar una pila con protección de terminación habilitada, la eliminación falla y la pila, así como su estado, no cambian. Deshabilite la protección de terminación de la pila y, a continuación, realice la operación de eliminación de nuevo.
Esto incluye pilas anidadas cuyas pilas raíz tienen protección de terminación habilitada. Desactive la protección de terminación de la pila raíz y, a continuación, vuelva a llevar a cabo la operación de eliminación. Se recomienda que no elimine pilas anidadas directamente, sino como parte de la eliminación de la pila raíz y todos sus recursos.
Para obtener más información, consulte Protección de las pilas de CloudFormation para evitar la eliminación.
-
Para todos los demás problemas, si tiene AWS Support, puede crear un caso de AWS Support. Consulte Cómo contactar con soporte de .
Error de dependencia
Para resolver un error de dependencia, añada un atributo DependsOn
a recursos que dependen de otros recursos en la plantilla. En algunos casos, debe declarar explícitamente dependencias para que CloudFormation pueda crear o eliminar los recursos en el orden correcto. Por ejemplo, si crea una IP elástica y una VPC con una puerta de enlace de Internet en la misma pila, la IP elástica debe depender de la vinculación de la puerta de enlace de Internet. Para obtener información adicional, consulte Atributo DependsOn.
Conflictos AWS Config y AWS Systems Manager
AWS Configy AWS Systems Manager pueden automatizar las tareas de administración de la infraestructura que pueden provocar conflictos con la implementación de una pila de CloudFormation. Haga lo siguiente para evitar posibles conflictos:
-
Revise la configuración de AWS Config y Systems Manager en la Cuenta de AWS y la Región de AWS asociadas.
-
Compruebe si hay reglas activas o documentos de automatización que puedan activarse durante una implementación de CloudFormation. Esto puede provocar conflictos o dependencias de recursos que entren en conflicto con su implementación.
-
Consulte la plantilla de CloudFormation para ver si hay recursos gestionados por AWS Config y Systems Manager. Compruebe si hay posibles superposiciones o interdependencias y considere la posibilidad de ajustar la plantilla o la configuración de automatización para evitar conflictos.
-
Desactive o suspenda temporalmente cualquier regla AWS Config relacionada o las automatizaciones de Systems Manager durante la implementación de CloudFormation. Recuerde restaurar las configuraciones originales después de una implementación exitosa para mantener el nivel deseado de automatización y conformidad.
-
Revise los registros y los mensajes de error de CloudFormation para ver si hay referencias a problemas relacionados con AWS Config y Systems Manager y así poder identificar el origen del conflicto.
Para obtener más información sobre las reglas de AWS Config, consulte Evaluación de recursos con reglas deReglas de AWS Config.
Para obtener más información sobre las automatizaciones de Systems Manager, consulte Automatización de AWS Systems Manager.
Error de análisis de parámetro al pasar una lista
Cuando utilice AWS Command Line Interface o CloudFormation para transmitir una lista, añada el carácter de escape (\
) antes de cada coma. El siguiente ejemplo muestra cómo debe especificar un parámetro de entrada al utilizar la AWS CLI.
ParameterKey=CIDR,ParameterValue='10.10.0.0/16\,10.10.0.0/24\,10.10.1.0/24'
Permisos insuficientes de IAM
Al trabajar con una pila de CloudFormation no solo necesita permisos para usar CloudFormation, sino que también tiene que tener permiso para utilizar los servicios subyacentes que se describen en su plantilla. Por ejemplo, si está creando un bucket de Amazon S3 o iniciando una instancia Amazon EC2 necesita permisos para Amazon S3 o Amazon EC2. Revise la política de IAM y compruebe que dispone de los permisos necesarios antes de trabajar con pilas de CloudFormation. Para obtener más información, consulte, Control del acceso a CloudFormation con AWS Identity and Access Management.
Valor no válido o propiedad de recurso no admitida
Al crear o actualizar una pila de CloudFormation, la pila puede fallar debido a parámetros de entrada no válidos, nombres de propiedad de los recursos no admitidos o valores de propiedad de los recursos no admitidos. Para los parámetros de entrada, verificar que el recurso existe. Por ejemplo, cuando especifica un par de claves de Amazon EC2 o ID de la VPC, el recurso debe existir en su cuenta y en la región en la que está creando o actualizando su pila. Puede utilizar tipos de parámetros específicos de AWS para asegurarse de que utiliza valores válidos.
Para los nombres y valores de propiedades de recursos, actualice su plantilla para utilizar nombres y valores válidos. Para obtener una lista de todos los recursos y los nombres de las propiedades, consulte Referencia de tipos de recursos y propiedades de AWS.
Cuota excedida
Verifique que no haya alcanzado una cuota de recursos. Por ejemplo, el número máximo predeterminado de instancias bajo demanda de Amazon EC2 que puede lanzar es 5. Si intenta crear un número de instancias bajo demanda de Amazon EC2 superior a la cuota de su cuenta, se produce un error en la creación de instancias y recibe el error Status=start_failed
. Para ver las cuotas de AWS predeterminadas por servicio, consulte AWS Service Quotas en la referencia general de Referencia general de AWS.
Para conocer los límites de CloudFormation y las estrategias para realizar cambios, consulte Comprensión de las cuotas de CloudFormation.
Además, durante una actualización, si se sustituye un recurso, CloudFormation crea un recurso nuevo antes de eliminar el antiguo. Este reemplazo podría poner su cuenta por encima de la cuota de recursos, lo que provocaría el error de la actualización. Puede eliminar los recursos sobrantes o solicitar un aumento de cuota.
Las pilas anidadas se han quedado atascadas en UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
o UPDATE_ROLLBACK_IN_PROGRESS
No ha sido posible restaurar una pila anidada. Debido a posibles dependencias de recursos entre las pilas anidadas, CloudFormation no comienza la limpieza de recursos de pilas anidadas hasta que se han actualizado o se han restaurado todas las pilas anidadas. Cuando se produce un error en la restauración de una pila anidada, CloudFormation cancela todas las operaciones, independientemente del estado en que se encuentran las otras pilas anidadas. Una pila anidada que completó la actualización o la restauración pero no recibió una señal de CloudFormation para comenzar la limpieza porque otra pila anidada no se ha restaurado está en estado UPDATE_COMPLETE_CLEANUP_IN_PROGRESS
o UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS
. Una pila anidada que no se ha actualizado pero no recibió una señal para comenzar la restauración está en estado UPDATE_ROLLBACK_IN_PROGRESS
.
Podría producirse un error en la restauración de una pila anidada debido a cambios realizados fuera de CloudFormation, cuando la plantilla de la pila no refleja de manera precisa el estado de la pila. Una pila anidada también podría fallar si un grupo de escalado automático en una pila anidada tuvo un periodo de tiempo de espera de señal de recursos insuficiente cuando se creó o actualizó el grupo.
Para arreglar la pila, póngase en contacto con AWS Support.
No hay actualizaciones que realizar.
Para actualizar una pila de CloudFormation debe enviar los cambios de los valores de los parámetros o de la plantilla a AWS CloudFormation. Sin embargo, CloudFormation no reconoce algunos cambios de la plantilla como una actualización, como cambios en una política de eliminación, una política de actualización, una declaración de condiciones o una declaración de salidas. Si necesita realizar dichos cambios sin realizar ninguno más, puede añadir o modificar un atributo de metadatos para cualquiera de sus recursos. El atributo metadata puede tener cualquier valor arbitrario, ya que CloudFormation no interpreta su contenido.
El recurso no se estabiliza durante una operación de creación, actualización o eliminación de pila.
Un recurso no respondió porque la operación superó el periodo de espera de CloudFormation o se interrumpió un servicio de AWS. Para las interrupciones de servicio, compruebe
Si los servicios de AWS se han estado ejecutado correctamente, compruebe si la pila contiene uno de los siguientes recursos:
-
AWS::AutoScaling::AutoScalingGroup
para operaciones de creación, actualización y eliminación. -
AWS::CertificateManager::Certificate
para operaciones de creación -
AWS::CloudFormation::Stack
para operaciones de creación, actualización y eliminación. -
AWS::ElasticSearch::Domain
para operaciones de actualización. -
AWS::RDS::DBCluster
para operaciones de creación y actualización -
AWS::RDS::DBInstance
para operaciones de creación, actualización y eliminación. -
AWS::Redshift::Cluster
para operaciones de actualización.
Las operaciones para estos recursos podrían tardar más que el periodo de tiempo de espera predeterminado. El periodo de tiempo de espera depende de los recursos y las credenciales que utilice. Para ampliar el periodo de tiempo de espera, especifique un rol de servicio al realizar la operación de la pila. Si ya está usando un rol de servicio, o si la pila contiene un recurso que no aparece en la lista, contacte el AWS Support.
Si la pila está en el estado UPDATE_ROLLBACK_FAILED
, consulte Error de restauración de actualización.
El grupo de seguridad no existe en la VPC
Compruebe que el grupo de seguridad existe en la VPC que especificó. Si el grupo de seguridad existe, asegúrese de que especifica el ID del grupo de seguridad y no el nombre del grupo de seguridad. Por ejemplo, el recurso AWS::EC2::SecurityGroupIngress
tiene las propiedades SourceSecurityGroupName
y SourceSecurityGroupId
. Para grupos de seguridad de VPC tiene que utilizar la propiedad SourceSecurityGroupId
y especificar el ID del grupo de seguridad.
Error en la restauración de actualización
Un recurso dependiente no puede volver a su estado original, causando un error en la restauración (estado UPDATE_ROLLBACK_FAILED
). Por ejemplo, puede tener una pila que se está restaurando a una instancia de base de datos antigua que se eliminó fuera de CloudFormation. Dado que CloudFormation no sabe que se eliminó la base de datos, asume que la instancia de base de datos aún existe e intenta restaurarla, lo que provoca que la restauración de la actualización falle.
Dependiendo de la causa del error, puede solucionar el error manualmente y continuar con la restauración. Al continuar con la restauración, puede devolver la pila a un estado de funcionamiento (el estado UPDATE_ROLLBACK_COMPLETE
) y, a continuación, intentar actualizar la pila de nuevo. En la siguiente lista se describen las soluciones a los errores más habituales que causan los errores de restauración de la actualización:
-
- Error al recibir el número necesario de señales
-
Utilice el comando signal-resource para enviar manualmente el número necesario de señales con éxito al recurso que las está esperando y, a continuación, continuar restaurando la actualización. Por ejemplo, durante una restauración de actualización, las instancias en un grupo de Auto Scaling podrían no señalar el éxito dentro de la duración especificada del tiempo de espera. Envíe manualmente señales de éxito al grupo de Auto Scaling. Cuando continúa con la restauración de la actualización, CloudFormation ve sus señales y procede a realizar la restauración.
-
- Los cambios a un recurso se hicieron fuera de CloudFormation
-
Sincronice manualmente recursos para que coincidan con la plantilla de pila original y, a continuación, continúe restaurando la actualización. Por ejemplo, si eliminó manualmente un recurso que CloudFormation está intentando restaurar, debe crear manualmente dicho recurso con el mismo nombre y propiedades que tenía en la pila original.
-
- Permisos insuficientes
-
Compruebe que tiene suficientes permisos de IAM para modificar recursos y, a continuación, continúe con la restauración de la actualización. Por ejemplo, su política de IAM podría permitirle crear un bucket de S3, pero no modificar el bucket. Añada las acciones de modificación a su política.
-
- Token de seguridad no válido
-
CloudFormation requiere un nuevo conjunto de credenciales. No es necesario realizar ningún cambio. Continúe restaurando la actualización, lo cual actualiza las credenciales.
-
- Error de limitación
-
Elimine los recursos que no necesita o solicite un aumento de la cuota y, a continuación, siga restaurando la actualización. Por ejemplo, si su cuota de cuenta para el número de instancias bajo demanda de EC2 es de 5 y la restauración de la actualización supera ese límite, se producirá un error.
-
- El recurso no se estabilizó
-
Un recurso no respondió porque la operación podría haber superado el periodo de espera de CloudFormation o podría haberse interrumpido un servicio de AWS. No es necesario realizar ningún cambio. Una vez que se haya completado la operación de recursos o que el servicio de AWS vuelva a estar operativo, continúe restaurando la actualización.
Para seguir restaurando una actualización, puede usar la consola de CloudFormation o la interfaz de línea de comandos de AWS (AWS CLI). Para obtener más información, consulte Continuación de la restauración de una actualización.
Si ninguna de estas soluciones funciona, puede omitir los recursos que CloudFormation no puede restaurar correctamente. Para obtener más información, consulte el parámetro ResourcesToSkip
de la operación de la API ContinueUpdateRollback
en la Referencia de la API de AWS CloudFormation. CloudFormation establece el estado de los recursos especificados como UPDATE_COMPLETE
y continúa restaurando la pila. Después de que la restauración se haya completado, el estado de los recursos omitidos será incompatible con el estado de los recursos de la plantilla de pila. Antes de realizar otra actualización de pila, debe modificar los recursos o actualizar la pila o los recursos para que sean coherentes entre sí. De lo contrario, las actualizaciones de pilas posteriores podrían fallar provocando que la pila sea irrecuperable.
La condición de espera no recibió el número necesario de señales de una instancia Amazon EC2
Para resolver esta situación, pruebe lo siguiente:
-
Asegúrese de que la AMI que está utilizando tiene los scripts auxiliares de CloudFormation instalados. Si la AMI no incluyen los scripts auxiliares, también puede descargarlos a la instancia. Para obtener más información, consulte Referencia de scripts auxiliares de CloudFormation.
-
Compruebe que el comando
cfn-signal
se ejecuta correctamente en la instancia. Puede ver registros, como/var/log/cloud-init.log
o/var/log/cfn-init.log
, para ayudarle a depurar el lanzamiento de la instancia. Puede recuperar los registros iniciando sesión en la instancia, pero deberá inhabilitar la restauración en caso de error o de lo contrario CloudFormation eliminará la instancia después de producirse el error de creación de la pila. También puede publicar los registrosen Amazon CloudWatch. Para Windows, puede ver los registros de cfn en C:\cfn\log
y los registros de servicio de EC2Configure en%ProgramFiles%\Amazon\EC2ConfigService
. -
Compruebe que la instancia tiene una conexión a Internet. Si la instancia está en una VPC, la instancia debería poder conectarse a Internet a través de un dispositivo NAT si se encuentra en una subred privada o a través de un puerto de enlace a Internet si no se trata de una subred pública. Para probar la conexión a Internet de la instancia, pruebe a obtener acceso a una página web pública, como por ejemplo
http://aws.amazon.com
. Por ejemplo, puede ejecutar el siguiente comando en la instancia: Debería devolver un código de estado HTTP 200.curl -I https://aws.amazon.com
Para obtener más información acerca de cómo configurar un dispositivo NAT, consulte NAT en la Guía del usuario de Amazon VPC.
Recurso eliminado de la pila pero no borrado
Durante una actualización de pila, CloudFormation ha quitado un recurso de una pila pero no lo ha eliminado. El recurso sigue existiendo, pero ya no es accesible a través de CloudFormation. Esto puede ocurrir durante las actualizaciones de pila donde:
-
CloudFormation necesita reemplazar un recurso existente, por lo que primero crea un nuevo recurso y, a continuación, intenta eliminar el antiguo recurso.
-
Ha quitado el recurso de la plantilla de pila, por lo que CloudFormation intenta eliminar el recurso de la pila.
Sin embargo, puede haber casos en los que CloudFormation no puede eliminar el recurso. Por ejemplo, si el usuario no tiene permisos para eliminar un recurso de un tipo determinado.
CloudFormation intentará eliminar el antiguo recurso tres veces. Si CloudFormation no puede eliminar el recurso antiguo, lo elimina de la pila y continúa actualizando la pila. Cuando se completa la actualización de la pila, CloudFormation emite un evento de pila UPDATE_COMPLETE
, pero incluye un StatusReason
que indica que uno o más recursos no se pudieron eliminar. CloudFormation también emite un evento DELETE_FAILED
para el recurso específico, con un StatusReason
correspondiente que proporciona más detalles sobre por qué CloudFormation no pudo eliminar el recurso.
Para resolver esta situación, elimine el recurso directamente utilizando la consola o API para el servicio subyacente.
Cómo contactar con soporte de
Si tiene AWS Support, puede crear un caso de soporte técnico en https://console.aws.amazon.com/support/home#/
-
El ID de la pila. Puede encontrar el ID de la pila en la pestaña Información general de la consola de CloudFormation
. Para obtener más información, consulte Visualización de la información de la pila desde la consola de CloudFormation. importante
No realice cambios en la pila fuera de CloudFormation. Realizar cambios en la pila fuera de CloudFormation podría hacer que la pila entrara en un estado irrecuperable.
-
Cualquier mensaje de error de la pila. Para obtener más información sobre la visualización de mensajes de error de la pila, consulte la sección Guía para solucionar problemas.
-
Para los problemas de Amazon EC2, reúna los registros de cloud-init y cfn. Estos registros se publican en la instancia Amazon EC2 del directorio
/var/log/
. Estos logs capturan los procesos y salidas de comandos mientras se configura su instancia. Para Windows, recopile los registros del servicio EC2Configure y de cfn en%ProgramFiles%\Amazon\EC2ConfigService
yC:\cfn\log
.
También puede buscar respuestas y publicar preguntas en los foros de CloudFormation