Integre pilas dentro de otras pilas mediante pilas anidadas - AWS CloudFormation

Integre pilas dentro de otras pilas mediante pilas anidadas

Las pilas anidadas son pilas creadas como parte de otras pilas. Las pilas anidadas en otra pila se crean mediante el recurso AWS::CloudFormation::Stack.

A medida que crece su infraestructura, pueden surgir patrones comunes en los que declare los mismos componentes en varias plantillas. Puede separar estos componentes comunes y crear plantillas exclusivas para ellos. Después, utilice el recurso en la plantilla para hacer referencia a otras plantillas, y así crear pilas anidadas.

Por ejemplo, imagine que tiene una configuración de balanceador de carga que utiliza para la mayoría de sus pilas. En lugar de copiar y pegar las mismas configuraciones en las plantillas, puede crear una plantilla exclusiva para el balanceador de carga. A continuación, que acaba de utilizar el recurso para hacer referencia a dicha plantilla desde otras plantillas.

Las pilas anidadas pueden a su vez contener otras pilas anidadas, lo que se traduce en una jerarquía de pilas, como se ilustra en el diagrama que aparece a continuación. La pila raíz es la pila de nivel superior a la que pertenecen todas las demás pilas. Además, cada pila anidada dispone de una pila primaria inmediata. Para el primer nivel de pilas anidadas, la pila raíz es a su vez la pila primaria. En el diagrama de abajo, por ejemplo:

  • La pila A es la raíz de todas las demás pilas anidadas de la jerarquía.

  • En el caso de la pila B, la pila A es tanto su pila primaria como la pila raíz.

  • Para la pila D, la C es su pila primaria, del mismo modo que para la pila C, la B es su pila primaria.

Las pilas anidadas, que se crean como parte de otra pila, disponen de una pila primaria inmediata y de una pila raíz de nivel superior.

Dividir una plantilla de CloudFormation

En este ejemplo, se muestra cómo tomar una plantilla grande y única de CloudFormation y reorganizarla en un diseño más estructurado y reutilizable mediante plantillas anidadas. Inicialmente, la plantilla “Antes de anidar las pilas” muestra todos los recursos definidos en un archivo. Esto puede resultar complicado y difícil de administrar a medida que aumenta la cantidad de recursos. La plantilla “Después de anidar las pilas” divide los recursos en plantillas más pequeñas e independientes denominadas pilas anidadas. Cada pila anidada gestiona un conjunto específico de recursos relacionados, lo que hace que la estructura general esté más organizada y sea más fácil de mantener.

Antes de anidar las pilas

Después de anidar las pilas

AWSTemplateFormatVersion: '2010-09-09' Parameters: InstanceType: Type: String Default: 't2.micro' Description: 'The EC2 instance type' Environment: Type: String Default: 'Production' Description: 'The deployment environment' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-1234567890abcdef0 InstanceType: !Ref InstanceType MyS3Bucket: Type: 'AWS::S3::Bucket'
AWSTemplateFormatVersion: '2010-09-09' Resources: MyFirstNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/first-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed InstanceType: 't3.micro' MySecondNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/second-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed Environment: 'Testing' DependsOn: MyFirstNestedStack

Realizar operaciones de apilamiento en pilas anidadas

Determinadas operaciones de las pilas, como las actualizaciones de pilas, deben iniciarse en la pila raíz en lugar de directamente en las pilas anidadas. Además, en algunos casos, las pilas anidadas afectan a la forma en que se realizan las operaciones de pilas.

Para ver la pila raíz de una pila anidada
  1. Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation/. Seleccione la pila que desee.

    Las pilas anidadas tienen la palabra NESTED junto a su nombre.

  2. En la pestaña Overview (Información general), elija el nombre de la pila que aparece como Root stack (Pila raíz).

Para ver las pilas anidadas que pertenecen a una pila raíz
  1. Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation/. Elija el nombre de la pila raíz cuyas pilas anidadas desea ver.

  2. Amplíe la sección Resources (Recursos).

    Busque recursos del tipo AWS::CloudFormation::Stack.