Como excluo uma pilha do AWS CloudFormation sem excluir todos os recursos?

4 minuto de leitura
0

Quero excluir pilhas novas e pilhas já existentes do AWS CloudFormation, mas não quero excluir todos os recursos das pilhas.

Resumo

Para manter alguns recursos ao excluir uma pilha, insira o atributo DeletionPolicy no modelo do CloudFormation.

Antes de excluir a pilha, defina Retain, Snapshot ou Delete como política para cada recurso que você quiser manter:

  • Retain mantém o recurso caso a pilha seja excluída.
  • Snapshot cria um snapshot do recurso antes de sua exclusão.
    Observação: só é possível usar essa política em recursos compatíveis com snapshots.
  • Delete exclui o recurso junto com a pilha.
    Observação: a exclusão do recurso é o padrão caso você não defina uma DeletionPolicy.

Resolução

As etapas a seguir mostram como definir a política Retain no atributo DeletionPolicy para que os recursos não sejam excluídos juntos com a pilha do CloudFormation.

Especifique o atributo DeletionPolicy e seu valor no modelo do AWS CloudFormation

No modelo do CloudFormation, insira Retain como valor de DeletionPolicy nos recursos que você quiser manter. Nos seguintes exemplos em JSON e YAML, a política Retain foi definida para os recursos de AWS::EC2::SecurityGroup no modelo.

JSON:

{
  "Description": "AWS CloudFormation DeletionPolicy demo",
  "Resources": {
    "SGroup1": {
      "Type": "AWS::EC2::SecurityGroup",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupDescription": "EC2 Instance access"
      }
    },
    "SGroup2": {
      "Type": "AWS::EC2::SecurityGroup",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupDescription": "EC2 Instance access"
      }
    },
    "SGroup1Ingress": {
      "Type": "AWS::EC2::SecurityGroupIngress",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupName": {
          "Ref": "SGroup1"
        },
        "IpProtocol": "tcp",
        "ToPort": "80",
        "FromPort": "80",
        "CidrIp": "0.0.0.0/0"
      }
    },
    "SGroup2Ingress": {
      "Type": "AWS::EC2::SecurityGroupIngress",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupName": {
          "Ref": "SGroup2"
        },
        "IpProtocol": "tcp",
        "ToPort": "80",
        "FromPort": "80",
        "CidrIp": "0.0.0.0/0"
      }
    }
  }
}

YAML:

Description: AWS CloudFormation DeletionPolicy demo
Resources:
  SGroup1:
    Type: 'AWS::EC2::SecurityGroup'
    DeletionPolicy: Retain
    Properties:
      GroupDescription: EC2 Instance access
  SGroup2:
    Type: 'AWS::EC2::SecurityGroup'
    DeletionPolicy: Retain
    Properties:
      GroupDescription: EC2 Instance access
  SGroup1Ingress:
    Type: 'AWS::EC2::SecurityGroupIngress'
    DeletionPolicy: Retain
    Properties:
      GroupName: !Ref SGroup1
      IpProtocol: tcp
      ToPort: '80'
      FromPort: '80'
      CidrIp: 0.0.0.0/0
  SGroup2Ingress:
    Type: 'AWS::EC2::SecurityGroupIngress'
    DeletionPolicy: Retain
    Properties:
      GroupName: !Ref SGroup2
      IpProtocol: tcp
      ToPort: '80'
      FromPort: '80'
      CidrIp: 0.0.0.0/0

Fazer upload do modelo atualizado no CloudFormation

  1. Abra o console do AWS CloudFormation.
  2. Se deseja usar o modelo em uma nova pilha, escolha Criar pilha. Se deseja usá‑lo em uma pilha já existente, selecione a pilha e escolha Atualizar pilha.
  3. Em Escolher um modelo, selecione Fazer upload de um modelo no Amazon S3. Em seguida, escolha o modelo do CloudFormation que você atualizou inserindo as políticas de exclusão.
  4. Escolha Próximo.
  5. Se estiver criando uma pilha, dê um nome a ela em Nome da pilha. Depois, escolha Próximo.
  6. Na página Opções, selecione as opções que forem pertinentes à pilha. Em seguida, escolha Próximo.
  7. Escolha Criar.

Testar a política do DeletionPolicy

  1. Exclua a pilha do AWS CloudFormation.
  2. Confira se os recursos para os quais você definiu o atributo DeletionPolicy com a política Retain ainda existem depois que a exclusão da pilha for concluída. É possível conferir os recursos em seus respectivos serviços usando o Console de Gerenciamento da AWS ou a AWS CLI.

Por exemplo, você pode conferir se a política Retain dos modelos anteriores funcionou. Conclua as etapas a seguir após excluir a pilha do CloudFormation se quiser verificar.

  1. Abra o console do Amazon EC2.
  2. Escolha Grupos de segurança na seção Rede e segurança do painel de navegação.
  3. Confira se os grupos de segurança com a política Retain anexada continuam disponíveis.

Informações relacionadas

Criar uma pilha no console do AWS CloudFormation

Como evito que os recursos na minha pilha do CloudFormation sejam excluídos ou atualizados?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos