Administración de pilas entre cuentas y regiones con StackSets - AWS CloudFormation

Administración de pilas entre cuentas y regiones con StackSets

AWS CloudFormation StackSets amplía la funcionalidad de las pilas al permitirle crear, actualizar o eliminar pilas de varias cuentas y Regiones de AWS con una sola operación. Con una cuenta de administrador, defina y gestione una plantilla de CloudFormation y utilice esta plantilla como base para aprovisionar pilas en cuentas de destino seleccionadas a lo largo de las Regiones de AWS especificadas.

Un conjunto de pilas es una colección de recursos en una plantilla que se implementan en varias cuentas y regiones.

Para obtener información acerca de la compatibilidad regional de StackSets, consulte StackSets regional support.

Esta sección le ayuda a comenzar a utilizar StackSets y responde a las preguntas más comunes acerca de cómo trabajar con pilas y resolver los problemas de creación, actualización y eliminación de los conjuntos de pilas.

Conceptos de StackSets

Cuando se utiliza StackSets, se trabaja con conjuntos de pilas, instancias de pila y pilas.

Cuentas de administrador y de destino

Una cuenta de administrador es la cuenta de AWS en la que se crean los conjuntos de pilas. Para conjuntos de pilas con permisos administrados por servicios, la cuenta de administrador es la cuenta de la organización cuenta de administración o una cuenta de administrador delegado. Puede administrar un conjunto de pilas iniciando sesión en la cuenta de administrador de AWS que creó el conjunto de pilas.

Una cuenta de destino es la cuenta en la que se crean, actualizan o eliminan una o varias pilas del conjunto de pilas. Para poder utilizar un conjunto de pilas para crear pilas en una cuenta de destino, configure una relación de confianza entre las cuentas de administrador y de destino.

AWS CloudFormation StackSets

Un conjunto de pilas permite crear pilas en las cuentas de Cuentas de AWS entre regiones mediante una única plantilla de CloudFormation. La plantilla de CloudFormation de un conjunto de pilas define todos los recursos de cada pila. Al crear el conjunto de pilas, especifique la plantilla que desea utilizar, además de todos los parámetros y las capacidades que se solicitan en la plantilla.

Una vez definido un conjunto de pilas, puede crear, actualizar o eliminar pilas de las cuentas de destino y las Regiones de AWS que especifique. Al crear, actualizar o eliminar pilas, también puede especificar las preferencias de operación. Por ejemplo, incluya el orden de las regiones en las que desea llevar a cabo la operación, el umbral de tolerancia a errores antes de que se detengan las operaciones de pila y el número de cuentas que llevan a cabo operaciones de pila simultáneamente.

Un conjunto de pilas es un recurso regional. Si crea un conjunto de pilas configurado en una Región de AWS, solo puede verla o cambiarla cuando vea esa región.

Modelos de permisos para conjuntos de pilas

Puede crear conjuntos de pilas mediante permisos autoadministrados o permisos administrados por servicios.

Con permisos autoadministrados puede crear los roles de IAM que StackSets necesita para la implementación en cuentas y regiones. Estos roles son necesarios para establecer una relación de confianza entre la cuenta desde la que está administrando el conjunto de pilas y la cuenta en la que está implementando instancias de pila. Con este modelo de permisos, StackSets puede implementar en cualquier Cuenta de AWS en la que tenga permisos para crear un rol de IAM.

Con los permisos administrados por servicios puede implementar instancias de pilas en cuentas administradas por AWS Organizations. Al usar el modelo de permisos, no tiene que crear los roles de IAM necesarios; StackSets crea los roles de IAM en su nombre. Con este modelo, también puede activar implementaciones automáticas en cuentas que agregará a su organización en el futuro.

AWS Organizations se integra con CloudFormation y ayuda a administrar y gobernar su entorno de forma centralizada a medida que escala y hace crecer sus recursos de AWS.

Para obtener más información acerca de cómo crear y administrar conjuntos de pilas con permisos administrados por servicios, consulte los temas siguientes:

Instancias de pila

Una instancia de pila es una referencia a una pila en una cuenta de destino dentro de una región. Puede existir una instancia de pila sin una pila. Por ejemplo, si la pila no se pudo crear por alguna razón, la instancia de pila muestra el motivo del error de creación de la pila. Una instancia de pila se asocia con un solo conjunto de pilas.

En el siguiente gráfico se muestran las relaciones lógicas entre los conjuntos de pilas, las operaciones de pila y las pilas. Al actualizar un conjunto de pilas, todas las instancias de pilas asociadas se actualizan en todas las cuentas y regiones.

Un conjunto de pilas puede crear, actualizar o eliminar instancias de pilas y pilas en varias cuentas y regiones.

Operaciones con conjuntos de pilas

Puede realizar las siguientes operaciones en conjuntos de pilas.

Crear conjunto de pilas

Para crear un nuevo conjunto de pilas es necesario especificar una plantilla de CloudFormation que desee utilizar para crear pilas, especificar las cuentas de destino en las que desee crear pilas e identificar las regiones de Regiones de AWS en las que desee implementar pilas en sus cuentas de destino. Un conjunto de pilas garantiza la implementación coherente de los mismos recursos de pila, con la misma configuración, en todas las cuentas de destino especificadas dentro de las regiones que elija.

Actualizar conjunto de pilas

Al actualizar un conjunto de pilas, envía cambios a las pilas del conjunto de pilas. Puede actualizar un conjunto de pilas de cualquiera de las siguientes formas. Las actualizaciones de la plantilla siempre afectan a todas las pilas; no puede actualizar la plantilla de manera selectiva para algunas pilas del conjunto de pilas, pero no para otras.

  • Cambiar la configuración existente en la plantilla o añadir nuevos recursos, como actualizar la configuración de los parámetros de un servicio específico o añadir nuevas instancias Amazon EC2.

  • Reemplazar la plantilla por otra.

  • Añadir pilas en cuentas de destino adicionales o existentes, en regiones adicionales o existentes.

Eliminar pilas

Al eliminar pilas, elimina una pila y todos sus recursos asociados de las cuentas de destino que especifique, dentro de las regiones que indique. Puede eliminar pilas de las siguientes maneras.

  • Eliminar pilas de algunas cuentas de destino, mientras deja en ejecución otras pilas en otras cuentas de destino.

  • Eliminar pilas de algunas regiones, dejando en ejecución pilas en otras regiones.

  • Eliminar pilas del conjunto de pilas, pero guardarlas para que sigan ejecutándose independientemente del conjunto de pilas al elegir la opción Retain Stacks (Conservar pilas). Luego puede administrar las pilas retenidas en AWS CloudFormation fuera del conjunto de pilas.

  • Eliminar todas las pilas del conjunto de pilas, como preparación para eliminar todo el conjunto de pilas.

Eliminar conjunto de pilas

Solo puede eliminar el conjunto de pilas cuando no haya instancias de pilas en él.

Opciones de operaciones con conjuntos de pilas

Las opciones que se describen en esta sección ayudan a controlar el tiempo y el número de errores que se permiten para llevar a cabo correctamente operaciones con conjuntos de pilas y evitan que pierda recursos de pila.

Maximum concurrent accounts

Esta configuración, disponible al crear, actualizar y eliminar flujos de trabajo, permite especificar el número máximo o el porcentaje de cuentas de destino en el que se lleva a cabo una operación en un momento dado. Un número o porcentaje menor significa que una operación se lleva a cabo en menos cuentas de destino a la vez. Las operaciones se llevan a cabo en una región a la vez, en el orden especificado en el cuadro Deployment order (Orden de implementación). Por ejemplo, si va a implementar pilas en 10 cuentas de destino en dos regiones, al establecer Maximum concurrent accounts (Número máximo de cuentas simultáneas) en 50 y By percentage (Por porcentaje), se implementarán pilas en cinco cuentas de la primera región, y luego en las segundas cinco cuentas de la primera región, antes de pasar a la siguiente región y empezar la implementación en las primeras cinco cuentas de destino.

Cuando elige By percentage (Por porcentaje), si el porcentaje especificado no representa un número entero de sus cuentas especificadas, CloudFormation lo redondea hacia abajo. Por ejemplo, si va a implementar pilas en 10 cuentas de destino, y establece Maximum concurrent accounts (Número máximo de cuentas simultáneas) en 25 y By percentage (Por porcentaje), CloudFormation hace un redondeo hacia abajo y pasa de implementar 2,5 pilas de forma simultánea (lo que no sería posible) a implementar dos pilas simultáneamente.

Tenga en cuenta que esta configuración le permite especificar el número máximo de operaciones. En implementaciones grandes, el número real de cuentas sobre las que se actúa simultáneamente puede ser menor en determinadas circunstancias debido a la limitación controlada de los servicios. La velocidad máxima de implementación es de 100 instancias de pila simultáneas por conjunto de pila.

El número máximo de cuentas simultáneas puede depender del valor de la tolerancia a errores en función del modo de simultaneidad. Si el modo de simultaneidad está configurado con una tolerancia a errores estricta, el número máximo de cuentas simultáneas puede ser como máximo una vez más que el valor de tolerancia a errores.

Modo de simultaneidad

Esta configuración, disponible en los flujos de trabajo de creación, actualización y eliminación, le permite elegir cómo se comporta el nivel de simultaneidad durante las operaciones del conjunto de pilas. Para obtener más información, consulte Elegir el modo de simultaneidad con la AWS Management Console o la AWS CLI.

Failure tolerance

Esta configuración, disponible al crear, actualizar y eliminar flujos de trabajo, permite especificar el número o el porcentaje máximo de fallos en las operaciones de pila que pueden producirse, por región, a partir del cual CloudFormation detiene una operación automáticamente. Un número o porcentaje menor significa que la operación se lleva a cabo en menos pilas, pero puede empezar antes a solucionar problemas de las operaciones con errores. Por ejemplo, si va a actualizar 10 pilas en 10 cuentas de destino de tres regiones, establecer Tolerancia a errores en 20 y Por porcentaje significa que pueden fracasar como máximo dos actualizaciones de pila en una región para que la operación pueda continuar. Si se produce un error en una tercera pila de la misma región, CloudFormation detiene la operación. Si una pila no se puede actualizar en la primera región, la operación de actualización continúa en esa región y luego pasa a la siguiente región. Si dos pilas no se pueden actualizar en la segunda región, se alcanza la tolerancia a errores del 20 %; si se produce un error en una tercera pila de la región, CloudFormation detiene la operación de actualización y no continúa en las regiones siguientes.

Cuando elige By percentage (Por porcentaje), si el porcentaje especificado no representa un número entero de sus pilas dentro de cada región, CloudFormation lo redondea hacia abajo. Por ejemplo, si va a implementar pilas en 10 cuentas de destino de tres regiones, y establece Tolerancia a errores en 25 y Por porcentaje, CloudFormation hace un redondeo hacia abajo y pasa de una tolerancia a errores de 2,5 pilas (lo que no sería posible) a una tolerancia a errores de dos pilas por región.

Retain stacks

Esta configuración, disponible al eliminar flujos de trabajo de pila, le permite mantener en ejecución las pilas y sus recursos incluso después eliminarlas de un conjunto de pilas. Cuando retiene las pilas, AWS CloudFormation deja intactas las pilas de las cuentas y regiones individuales. Las pilas se desasocian del conjunto de pilas, pero la pila y sus recursos se guardan. Cuando la operación de eliminación de pilas ha finalizado, administra las pilas retenidas en CloudFormation, en la cuenta de destino (no en la cuenta de administrador) en la que se crearon.

Simultaneidad de región

Esta configuración, disponible en los flujos de trabajo de creación, actualización y eliminación, le permite elegir cómo se implementa StackSets en las regiones.

Secuencial: operación de implementación de StackSets en una región a la vez, tal como se especifica en el cuadro de Deployment order (Orden de implementación) de región, siempre y cuando los errores de implementación de una región no superen una tolerancia de error especificada. La implementación secuencial es la selección predeterminada.

Paralela: operaciones de implementación de StackSets en todas las regiones especificadas simultáneamente, siempre y cuando los errores de implementación de una región no superen una tolerancia a errores especificada.

Etiquetas

Puede añadir etiquetas durante las operaciones de creación y actualización de conjuntos de pilas especificando pares de clave y valor. Las etiquetas son útiles para ordenar y filtrar los recursos de los conjuntos de pilas de cara a la facturación y la asignación de costos. Para obtener más información acerca del uso de etiquetas en AWS, consulte Uso de etiquetas de asignación de costos en la Guía del usuario de AWS Billing and Cost Management. Después de especificar el par de clave-valor, elija + para guardar la etiqueta. Puede eliminar las etiquetas que ya no esté utilice con la X roja a la derecha de una etiqueta.

Las etiquetas que se aplican a los conjuntos de pilas se aplican a todas las pilas y a los recursos creados por sus pilas. Las etiquetas se pueden agregar solo en la pila en CloudFormation, pero puede que esas etiquetas no se muestren en StackSets.

Aunque StackSets no agrega actualmente etiquetas definidas por el sistema, no debe usar la cadena aws: al principio de los nombres de clave de ninguna etiqueta.

Códigos de estado de StackSets

AWS CloudFormation StackSets genera códigos de estado para las operaciones con conjuntos de pilas.

En la siguiente tabla se describen los códigos de estado para las operaciones con conjuntos de pilas.

RUNNING

La operación está en curso actualmente.

SUCCEEDED

La operación terminó sin superar la tolerancia a fallos de la operación.

FAILED

El número de pilas en las que la operación no se completó superó la tolerancia a errores definida por el usuario. El valor de tolerancia a errores que ha establecido para una operación aplica a cada región durante las operaciones de creación y actualización de pilas. Si el número de pilas con errores dentro de una región supera la tolerancia a errores, el estado de la operación en la región cambia a FAILED. El estado de la operación en su conjunto también se establece en FAILED y CloudFormation cancela la operación en las regiones restantes.

QUEUED

[Service-managed permissions] Para implementaciones automáticas que requieren una secuencia de operaciones, la operación entra en una cola para llevarla a cabo. Por ejemplo:

  • Si se mueve una cuenta de una unidad organizativa (OU), OU1, a otra, OU2, se activa una implementación automática. StackSets ejecuta una operación de eliminación para quitar la instancia de pila de la cuenta de OU1 de destino en la región de destino y pone en cola una operación de creación para añadir una instancia de pila a la cuenta de OU2 de destino en la región de destino.

  • Si se añade una cuenta AccountA a una unidad organizativa, se activa una implementación automática. StackSets ejecuta una operación de creación para añadir una instancia de pila a AccountA en la región de destino. Si añade otra cuenta AccountB a la unidad organizativa mientras se ejecuta la operación de creación, StackSets pone en cola una segunda operación de creación. Cuando se completa la primera operación de creación, StackSets ejecuta la segunda operación de creación para añadir una instancia de pila a AccountB en la región de destino.

STOPPING

La operación se encuentra en proceso de detención, a petición del usuario.

STOPPED

La operación se detuvo a petición del usuario.

Códigos de estado de la instancia de pila

AWS CloudFormation StackSets genera códigos de estado para las instancias de pilas.

En la siguiente tabla, se describen los códigos de estado para las instancias de pilas dentro de los StackSets.

CURRENT

La pila está actualizada con el conjunto de pilas.

OUTDATED

La pila no está actualizada con el conjunto de pilas por una de las siguientes razones.

INOPERABLE

Se produjo un error en una operación DeleteStackInstances y dejó la pila en un estado inestable. Las pilas que se encuentran en este estado quedan excluidas de otras operaciones UpdateStackSet. Es posible que necesite realizar una operación DeleteStackInstances, con RetainStacks establecido en true, para eliminar la instancia de la pila, y a continuación tenga que eliminar la pila manualmente.

CANCELLED

La operación de la cuenta y la región especificadas se ha cancelado. Esto se debe a que un usuario detuvo la operación del conjunto de la pila, o a que se excedió la tolerancia a errores de la operación del conjunto de la pila.

FAILED

Ha habido un error en la región y cuenta especificadas. Si la operación del conjunto de la pila falla en las cuentas suficientes dentro de una misma región, se puede exceder la tolerancia a errores del total de la operación del conjunto de la pila.

FAILED_IMPORT

Se produjo un error en la importación de la instancia de pila en la cuenta y región especificadas y dejó la pila en un estado inestable. Una vez que se hayan solucionado los problemas que causaron el error, se puede volver a intentar la operación de importación. Si la cantidad necesaria de operaciones del conjunto de la pila falla en las cuentas suficientes dentro de una misma región, se puede exceder la tolerancia a errores del total de la operación del conjunto de la pila.

PENDING

La operación aún no ha empezado en la cuenta y región especificadas.

RUNNING

La operación está actualmente en curso en la cuenta y región especificadas.

SKIPPED_SUSPENDED_ACCOUNT

No se realizó la operación en la cuenta y región especificadas porque la cuenta estaba suspendida en el momento de la operación.

SUCCEEDED

La operación se ha completado correctamente en la cuenta y región especificadas.