Introducción a los StackSets con una plantilla de ejemplo - AWS CloudFormation

Introducción a los StackSets con una plantilla de ejemplo

Este tutorial lo ayudará a familiarizarse con los StackSets con la AWS Management Console. Se explica cómo crear un StackSet con una plantilla de ejemplo. Obtendrá información sobre cómo implementar pilas en varias regiones, supervisar las operaciones con StackSets y ver los resultados.

En este tutorial, creará un StackSet que habilite AWS Config en su Cuenta de AWS en la región Oeste de EE. UU. (Oregón) (us-west-2) y la región Este de EE. UU. (Norte de Virginia) (us-east-1). Con los StackSets, puede crear, actualizar o eliminar pilas en varias cuentas y regiones con una sola operación, lo que lo convierte en una solución ideal para administrar la infraestructura a escala. Aunque en este tutorial se usa una sola cuenta por motivos de simplicidad, se demuestra de manera efectiva las capacidades multirregionales de los StackSets.

La plantilla de ejemplo está disponible en el siguiente bucket de S3: https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml.

nota

Los StackSets son gratuitos, pero se le cobrarán los recursos de AWS que cree con ellos, como AWS Config en este tutorial. Para más información, consulte Precios de AWS Config.

Requisitos previos

Antes de iniciar este tutorial, asegúrese de que cumple los siguientes requisitos previos:

  • Debe haber configurado los roles de IAM necesarios para los permisos autoadministrados. Para crear un StackSet e implementar pilas en una sola cuenta, necesita los siguientes roles en su cuenta:

    • AWSCloudFormationStackSetAdministrationRole

    • AWSCloudFormationStackSetExecutionRole

    Para obtener instrucciones detalladas sobre cómo configurar estos roles, consulte Concesión de permisos autoadministrados.

Creación de un StackSet con una plantilla de ejemplo desde la consola

Creación de un StackSet que habilite AWS Config
  1. Abra la Consola de CloudFormation.

  2. En la barra de navegación de la parte superior de la pantalla, elija la Región de AWS desde la cual desea administrar el StackSet.

    Puede elegir cualquier región que admita StackSets. La región que seleccione no afecta a las regiones en las que puede llevar a cabo implementaciones con su StackSet.

  3. En el panel de navegación, seleccione StackSets (Conjuntos de pilas).

  4. En la parte superior de la página Conjuntos de pilas, seleccione Crear conjunto de pilas.

  5. En Permisos, elija Permisos de autoservicio y los roles de IAM que ha creado en los requisitos previos.

    • Para el rol de administrador de IAM, elija AWSCloudFormationStackSetAdministrationRole.

    • Para el nombre del rol de ejecución de IAM, elija AWSCloudFormationStackSetExecutionRole.

  6. En Prerequisite - Prepare template (Requisito previo: preparar plantilla), elija Use a sample template (Usar una plantilla de ejemplo).

  7. En Seleccionar una plantilla de muestra, elija la plantilla Habilitar AWS Config. A continuación, elija Siguiente.

    Esta plantilla crea los recursos necesarios para habilitar AWS Config en su cuenta, incluidos un registro de configuración y un canal de entrega.

  8. En la página Especificar detalles del StackSet, en Nombre del StackSet, ingrese my-awsconfig-stackset.

  9. En Descripción del StackSet, ingrese A StackSet that enables Config across multiple Regions.

  10. En Parámetros, defina la configuración de AWS Config de la siguiente manera:

    1. En Admitir todo tipo de recursos, mantenga el valor predeterminado, correcto, para registrar todos los tipos de recursos admitidos.

    2. En Incluir tipos de recursos globales, mantenga el valor predeterminado, incorrecto, para excluir los recursos globales, como los roles de IAM.

    3. Deje Lista de tipos de recursos si no son todos compatibles establecida en <Todos>.

    4. En La región que contiene el recurso de rol vinculado al servicio Config, sustituya <DeployToAnyRegion> por us-west-2.

      Esto significa que el rol vinculado al servicio denominado AWSServiceRoleForConfig solo se creará si se implementa una pila en la región Oeste de EE. UU (Oregón). Elegirá las regiones de implementación más adelante en este procedimiento.

    5. En Configuration recorder recording frequency, elija el registro DAILY.

  11. Elija Siguiente para continuar.

  12. En la página Configurar las opciones del StackSet, elija Agregar etiqueta nueva y especifique un par de clave y valor para agregar una etiqueta:

    1. En Clave, escriba Stage.

    2. En Valor, introduzca Test.

    Las etiquetas que se aplican a los StackSets se aplican a los recursos creados por las pilas.

  13. En Configuración de ejecución, elija Activo para habilitar la gestión optimizada de las operaciones de CloudFormation:

    • Las operaciones sin conflictos se ejecutan simultáneamente para acelerar los tiempos de implementación.

    • Las operaciones en conflicto se ponen en cola y se procesan automáticamente en el orden en que se solicitaron.

    Mientras las operaciones se estén ejecutando o estén en cola, CloudFormation pone en cola todas las operaciones entrantes (incluso si no están en conflicto). No puede cambiar la configuración de ejecución durante este tiempo.

  14. Elija Siguiente.

  15. En la página Establecer opciones de implementación, en Agregar pilas al StackSet, elija Implementar pilas nuevas.

  16. Para Accounts (Cuentas), seleccione Deploy stacks in accounts (Implementar pilas en cuentas).

  17. En el cuadro de texto, ingrese el ID de su Cuenta de AWS.

  18. En Especificar regiones, seleccione las siguientes regiones en este orden:

    1. Región Oeste de EE. UU (Oregón) (us-west-2)

    2. Región Este de EE. UU. (Norte de Virginia) (us-east-1)

    Use la flecha hacia arriba que aparece junto a la región Oeste de EE. UU. (Oregón) para moverla a la primera posición de la lista si es necesario. El orden de las regiones determina su orden de implementación.

  19. En Opciones de implementación, defina la siguiente configuración:

    1. En Maximum concurrent accounts (Máximo de cuentas simultáneas), mantenga los valores predeterminados de Number (Número) y 1.

      En el caso de las implementaciones en varias cuentas, esta configuración significa que CloudFormation implementa la pila en solo una cuenta a la vez.

    2. Para Tolerancia a errores, mantenga los valores predeterminados de Número y 0.

      Esto significa que puede fallar un máximo de cero implementaciones de la pila en una de las regiones especificadas antes de que CloudFormation detenga la implementación en la región actual y cancele la implementación en las regiones restantes.

    3. En Concurrencia de región, elija Secuencial (valor predeterminado).

      Esta configuración garantiza que CloudFormation complete las implementaciones en una región antes de pasar a la siguiente.

    4. En Modo de simultaneidad, mantenga el valor predeterminado de Tolerancia a errores estricta.

      En el caso de las implementaciones en varias cuentas, esto reduce el nivel de simultaneidad de cuentas cuando se producen errores, manteniéndose dentro de Tolerancia a errores +1.

  20. Elija Siguiente.

  21. En la página Review (Revisar), revise las opciones seleccionadas. Para realizar cambios, elija Editar en la sección correspondiente.

  22. Cuando lo tenga todo listo para crear su StackSet, elija Enviar.

Supervisión de la creación de un StackSet

Al elegir Enviar, CloudFormation comienza a crear su StackSet y a implementar las pilas en las regiones especificadas de su cuenta. La página de detalles del StackSet se abre automáticamente, donde puede supervisar el progreso de la operación.

Supervisión de la creación del StackSet
  1. En la página de detalles del StackSet, se muestra la pestaña Operaciones de forma predeterminada, en la que aparece la operación actual en curso.

  2. El estado de la operación debe ser RUNNING inicialmente. CloudFormation crea pilas en las regiones que especificó de acuerdo con las opciones de implementación que configuró.

  3. Para ver más detalles acerca de la operación, seleccione el ID de la operación en la lista.

  4. En la página de detalles de la operación, puede ver el estado de las instancias de pila que se están creando en cada región.

  5. Espere a que el estado de la operación cambie a SUCCEEDED, lo que indica que el StackSet y todas sus instancias de pila se crearon correctamente.

Visualización de los resultados del StackSet

Una vez completada la creación del StackSet, puede ver las instancias de pila implementadas y comprobar que AWS Config se ha habilitado en su cuenta en las regiones especificadas.

Visualización de los resultados del StackSet
  1. En la página de detalles del StackSet, elija la pestaña Instancias de pila.

  2. Debería ver una lista de las instancias de pila que se crearon en su cuenta en las regiones especificadas. Cada instancia de pila debe tener el estado SUCCEEDED, lo que indica que se implementó correctamente.

  3. Para comprobar si AWS Config se habilitó en su cuenta, puede consultar la consola de AWS Config en cada una de las regiones implementadas.

Actualización del StackSet

Después de crear el StackSet, es posible que desee actualizarlo para modificar los valores de los parámetros o agregar más regiones. En esta sección se indica cómo actualizar el parámetro de frecuencia de registro de AWS Config.

Actualización del StackSet
  1. En la página StackSets, seleccione su my-awsconfig-stackset.

  2. Con el StackSet seleccionado, elija Editar detalles de StackSet en el menú Acciones.

  3. En la página Elegir una plantilla, en Requisito previo: preparar la plantilla, elija Utilizar la plantilla actual.

  4. Elija Siguiente.

  5. En la página Especificar detalles del StackSet, en Parámetros, busque Configuration recorder recording frequency y cambie el valor de DAILY a CONTINUOUS.

  6. Elija Siguiente.

  7. En la página Configurar las opciones del StackSet, deje la configuración tal como está y elija Siguiente.

  8. En la página Establecer opciones de implementación, especifique el ID de su cuenta y las mismas regiones que utilizó al crear el StackSet.

  9. En Opciones de implementación, mantenga la misma configuración que antes.

  10. Elija Siguiente.

  11. En la página Revisar, revise los cambios y seleccione Enviar.

  12. CloudFormation empieza a actualizar el StackSet. Puede supervisar el progreso en la pestaña Operaciones de la página de detalles del StackSet.

Cómo agregar pilas al StackSet

Puede agregar más pilas a su StackSet implementándolas en otras regiones. En esta sección se muestra cómo agregar pilas a una nueva región.

Cómo agregar pilas al StackSet
  1. En la página StackSets, seleccione su my-awsconfig-stackset.

  2. Con el StackSet seleccionado, elija Agregar pilas al StackSet en el menú Acciones.

  3. En la página Establecer opciones de implementación, en Agregar pilas al StackSet, elija Implementar pilas nuevas.

  4. En Cuentas, elija Implementar pilas en cuentas e ingrese el ID de su cuenta.

  5. En Especificar regiones, seleccione una nueva región, como Europa (Irlanda) (eu-west-1).

  6. En Opciones de implementación, mantenga la misma configuración que antes.

  7. Elija Siguiente.

  8. En la página Especificar anulaciones, deje los valores de las propiedades tal y como se especifican y elija Siguiente.

  9. En la página Review (Revisar), revise las opciones y seleccione Submit (Enviar).

  10. CloudFormation comienza a crear nuevas pilas en la región especificada. Puede supervisar el progreso en la pestaña Operaciones de la página de detalles del StackSet.

Limpieza

Para evitar que se generen cargos por recursos de AWS Config no deseados, debe llevar a cabo una limpieza; para ello, elimine las pilas de su StackSet, el propio StackSet y los roles de IAM que creó para este tutorial. Como todos los recursos están implementados en su cuenta, la limpieza es sencilla.

Eliminación de pilas del StackSet
  1. En la página StackSets, seleccione su my-awsconfig-stackset.

  2. Una vez seleccionado el StackSet, elija Eliminar pilas de StackSet en el menú Acciones.

  3. En la página Establecer opciones de implementación, en Cuentas, elija Implementar pilas en cuentas e ingrese el ID de su cuenta.

  4. En Especificar regiones, seleccione todas las regiones en las que ha implementado pilas.

  5. En Opciones de implementación, mantenga la configuración predeterminada.

  6. Asegúrese de que la opción Retener pilas no esté activada para que las pilas y sus recursos se eliminen.

  7. Elija Siguiente.

  8. En la página Review (Revisar), revise las opciones y seleccione Submit (Enviar).

  9. CloudFormation comienza a eliminar las pilas de su StackSet. Puede supervisar el progreso en la pestaña Operaciones de la página de detalles del StackSet.

Eliminación del StackSet
  1. Una vez eliminadas todas las pilas, en la página StackSets, seleccione su my-awsconfig-stackset.

  2. Con el StackSet seleccionado, elija Eliminar StackSet en el menú Acciones.

  3. Cuando se le pida confirmación, elija Eliminar.

Eliminación de los roles de servicio de IAM

Como solo llevó a cabo la implementación en su cuenta, solo tiene que eliminar los roles de IAM de esta única cuenta, lo que simplifica mucho más la limpieza en comparación con las implementaciones en varias cuentas.

  1. Abra la consola de IAM.

  2. En el panel de navegación, elija Roles.

  3. En el cuadro de búsqueda, escriba AWSCloudFormationStackSet para buscar los roles que creó para este tutorial.

  4. Seleccione la casilla de verificación que hay junto a AWSCloudFormationStackSetAdministrationRole.

  5. Elija Eliminar en la parte superior de la página.

  6. En el cuadro de diálogo de confirmación, escriba delete y elija Eliminar.

  7. Repita el mismo proceso para eliminar AWSCloudFormationStackSetExecutionRole.

Después de eliminar el StackSet, quedará un bucket de Amazon S3 en cada Región de AWS debido al atributo DeletionPolicy del recurso AWS::S3::Bucket. Esto preserva los datos del historial de AWS Config. Si ya no necesita estos datos, puede eliminar el bucket de forma manual y segura. Para eliminar un bucket, primero debe vaciarlo. Al vaciar un bucket, se eliminan todos los objetos que incluye.

Vaciado y eliminación de buckets de Amazon S3
  1. Abra la consola de Amazon S3.

  2. En el panel de navegación del lado izquierdo de la consola, elija Buckets (Buckets).

  3. En la lista Buckets, verá los buckets creados para este StackSet en cada región en la que llevó a cabo la implementación. Seleccione la opción situada junto al nombre del bucket creado para este StackSet y, a continuación, elija Empty.

  4. En la página Vaciar bucket, confirme que desea vaciar el bucket escribiendo permanently delete en el campo de texto y, a continuación, elija Vaciar.

  5. Supervise el progreso del proceso de vaciado del bucket en la página Vaciado del bucket: estado.

  6. Para volver a la lista de buckets, seleccione Salir.

  7. Seleccione la opción situada junto al nombre del bucket y, a continuación, seleccione Eliminar.

  8. Cuando se le pida la confirmación, escriba el nombre del bucket y, a continuación, seleccione Eliminar bucket.

  9. Supervise el progreso del proceso de eliminación del bucket en la lista Buckets. Cuando Amazon S3 completa la eliminación del bucket, lo elimina de la lista.

  10. Repita este proceso para cada bucket creado por el StackSet en las diferentes regiones.

Pasos a seguir a continuación

¡Enhorabuena! Ha creado correctamente un StackSet con una plantilla de ejemplo, ha implementado pilas en varias regiones de su cuenta, ha actualizado el StackSet, ha agregado más pilas y ha limpiado sus recursos. Al centrarse en la implementación en una sola cuenta, ha simplificado el proceso de limpieza y, al mismo tiempo, ha aprendido las capacidades multirregionales principales de los StackSets.

Para obtener más información sobre los StackSets, consulte los siguientes temas: