Como o AWS CloudFormation funciona? - AWS CloudFormation

Como o AWS CloudFormation funciona?

Ao criar uma pilha, o AWS CloudFormation faz chamadas de serviço subjacentes à AWS para provisionar e configurar seus recursos. O CloudFormation só pode executar ações para as quais você ter permissão. Por exemplo, para criar instâncias do EC2 usando o CloudFormation, você precisa ter permissões para criar instâncias. Você precisará de permissões semelhantes para encerrar instâncias ao excluir pilhas com instâncias. Você usa o AWS Identity and Access Management (IAM) para gerenciar permissões.

As chamadas que o CloudFormation faz são todas declaradas por seu modelo. Por exemplo, suponha que você tem um modelo que descreve uma instância EC2 com um tipo de instância t2.micro. Quando você usa esse modelo para criar uma pilha,CloudFormation chama a API de criação de instância Amazon EC2 e especifica o tipo de instância comot2.micro. O diagrama a seguir resume o fluxo de trabalho do CloudFormation para a criação de pilhas.

  1. Use o AWS CloudFormation Designer ou seu próprio editor de texto para criar ou modificar um modelo de CloudFormation no formato JSON ou YAML. Você também pode optar por usar um modelo fornecido. O modelo de CloudFormation descreve os recursos que você quer e suas configurações. Por exemplo, suponha que você deseje criar uma instância EC2. Seu modelo pode declarar uma instância Amazon EC2 e descrever suas propriedades, conforme mostrado no exemplo a seguir:

    exemplo JSON

    { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "A simple EC2 instance", "Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-0ff8a91507f77f867", "InstanceType" : "t2.micro" } } } }

    exemplo YAML

    AWSTemplateFormatVersion: '2010-09-09' Description: A simple EC2 instance Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro
  2. Salve o modelo localmente ou em um bucket do S3. Se você tiver criado um modelo, salve-o com qualquer extensão de arquivo, como .json, .yaml ou .txt.

  3. Crie uma pilha do CloudFormation especificando o local do arquivo de modelo, como um caminho em seu computador local ou um URL do Amazon S3. Se o modelo contiver parâmetros, você poderá especificar valores de entrada ao criar a pilha. Os parâmetros permitem que você passe valores para seu modelo, para que possa personalizar seus recursos toda vez que você criar uma pilha.

    Você pode criar pilhas usando o console do CloudFormation, a API ou a AWS CLI.

    nota

    Se você especificar um arquivo de modelo armazenado localmente, o CloudFormation fará upload dele em um bucket do S3 na sua conta da AWS. O CloudFormation cria um bucket para cada região na qual você faz o upload de um arquivo de modelo. Os buckets são acessíveis a qualquer pessoa com permissões do Amazon Simple Storage Service (Amazon S3) em sua conta da AWS. Se um bucket criado pelo CloudFormation já estiver presente, o modelo será adicionado a esse bucket.

    Você pode usar seu próprio bucket e gerenciar suas permissões fazendo upload manual dos modelos para o Amazon S3. Em seguida, sempre que você criar ou atualizar uma pilha, especifique a URL do Amazon S3 de um arquivo de modelo.

O CloudFormation provisiona e configura os recursos por meio de chamadas aos serviços da AWS que são descritos em seu modelo.

Depois que todos os recursos foram criados, o CloudFormation informa que sua pilha foi criada. Em seguida, você pode começar a usar os recursos de sua pilha. Se houver falha na criação da pilha, o CloudFormation reverterá as alterações excluindo os recursos que ele criou.

Atualizar uma pilha com conjuntos de alterações

Quando precisar atualizar os recursos da pilha, você poderá modificar o modelo da pilha. Você não precisa criar uma nova pilha e excluir a antiga. Para atualizar uma pilha, crie um conjunto de alterações enviando uma versão modificada do modelo da pilha original, diferentes valores de parâmetros de entrada ou ambos. O CloudFormation compara o modelo modificado com o modelo original e gera um conjunto de alterações. O conjunto de alterações lista as alterações propostas. Depois de revisar as alterações, você pode iniciar o conjunto de alterações para atualizar sua pilha ou criar um novo conjunto de alterações. O diagrama a seguir resume o fluxo de trabalho da atualização de uma pilha.

Importante

As atualizações podem causar interrupções. Dependendo do recurso e das propriedades que você está atualizando, uma atualização pode interromper ou até substituir um recurso existente. Para obter mais informações, consulte Atualizações de pilhas do AWS CloudFormation.

  1. Você pode modificar um modelo de pilha do CloudFormation usando o AWS CloudFormation Designer ou um editor de texto. Por exemplo, se você desejar alterar o tipo de instância de uma instância EC2, altere o valor da propriedade InstanceType no modelo original da pilha.

    Para obter mais informações, consulte Modificar um modelo de pilha.

  2. Salve o modelo do CloudFormation localmente ou em um bucket do S3.

  3. Crie um conjunto de alterações especificando a pilha que você deseja atualizar e o local do modelo modificado, como um caminho no seu computador local ou uma URL do Amazon S3. Se o modelo contiver parâmetros, você poderá especificar valores ao criar o conjunto de alterações.

    Para obter mais informações sobre como criar conjuntos de alterações, consulte Atualizar pilhas usando conjuntos de alterações.

    nota

    Se você especificar um modelo armazenado em seu computador local, o CloudFormation fará upload de seu modelo automaticamente para um bucket do S3 em sua conta da AWS.

  4. Visualize o conjunto de alterações para verificar se o CloudFormation executará as alterações que você espera. Por exemplo, verifique se o CloudFormation substituirá todos os recursos cruciais da pilha. Você pode criar quantos conjuntos de alterações precisar até ter incluído as alterações desejadas.

    Importante

    Os conjuntos de alterações não indicam se a atualização da pilha será bem-sucedida. Por exemplo, um conjunto de alterações não verifica se você irá ultrapassar a cota de uma conta, se você está atualizando um recurso que não oferece suporte a alterações ou se você tem permissões suficientes para modificar um recurso,o que pode provocar uma falha na atualização da pilha.

  5. Inicie o conjunto de alterações que deseja aplicar à sua pilha. O CloudFormation atualizará a sua pilha apenas com os recursos que você modificou, e sinalizará que ela foi atualizada com êxito. Se houver falha na atualização da pilha, o CloudFormation reverterá as alterações para restaurar a pilha para o estado de funcionamento conhecido mais recente.

Excluir uma pilha

Ao excluir uma pilha, você especifica a pilha a ser excluída, e o CloudFormation faz a exclusão dela e de todos os respectivos recursos. Você pode excluir pilhas usando o console do CloudFormation, a API ou a AWS CLI.

Se quiser excluir uma pilha, mas manter alguns recursos da pilha, você poderá usar uma política de exclusão para reter esses recursos.

Depois que todos os recursos forem excluídos, o CloudFormation sinalizará que a pilha foi excluída com êxito. Se o CloudFormation não puder excluir um recurso, a pilha não será excluída. Todos os recursos que não foram excluídos permanecerão até que você possa excluir a pilha com êxito.

Recursos adicionais

  • Para mais informações sobre como criar modelos do CloudFormation, consulte Anatomia do modelo.

  • Para obter mais informações sobre como criar, atualizar ou excluir pilhas, consulte Trabalhar com pilhas.