Perguntas frequentes sobre o AWS CloudFormation

Geral

O AWS CloudFormation é um serviço que fornece aos desenvolvedores e empresas uma forma fácil de criar um conjunto de recursos relacionados da AWS e de terceiros para provisioná-los e gerenciá-los de forma organizada e previsível.

Os desenvolvedores podem implantar e atualizar recursos de computação, bancos de dados e muitos outros recursos em um estilo simples e declarativo que abstrai a complexidade de APIs de recursos específicos. O AWS CloudFormation foi projetado para permitir que os ciclos de vida de recursos sejam gerenciados de forma repetível, previsível e segura, permitindo reversões automáticas, gerenciamento automático de estado e gerenciamento de recursos em várias contas e regiões. Os aprimoramentos e opções recentes oferecem várias maneiras de criar recursos, incluindo o uso do AWS CDK para codificar em linguagens de mais alto nível, importar recursos existentes, detectar variações de configuração e um novo Registry que facilita a criação de tipos personalizados que herdam muitos benefícios importantes do CloudFormation.

Estes serviços são projetados para serem complementares. O AWS Elastic Beanstalk disponibiliza um ambiente em que você pode implantar e executar facilmente aplicações na nuvem. Ele está integrado às ferramentas do desenvolvedor e oferece uma experiência unificada para gerenciar o ciclo de vida das aplicações. Se suas workloads de aplicações podem ser gerenciadas como workloads do Elastic Beanstalk, você pode aproveitar uma experiência pronta para uso na criação e atualização de aplicações. Internamente, o Elastic Beanstalk usa o CloudFormation para criar e manter recursos. Se os requisitos da aplicação exigem um controle mais personalizado, a funcionalidade adicional do CloudFormation oferece mais opções de controle de workloads.

O AWS CloudFormation é um mecanismo de provisionamento conveniente para uma grande variedade de recursos da AWS e de terceiros. Ele atende às necessidades de infraestrutura de muitos tipos diferentes de aplicações, como aplicações corporativas existentes, aplicações herdadas, aplicações criadas usando uma série de recursos da AWS e soluções baseadas em contêineres (incluindo as criadas usando o AWS Elastic Beanstalk).

O AWS CloudFormation oferece suporte a ambientes de aplicações do Elastic Beanstalk como um dos tipos de recursos da AWS. Isso permite que você, por exemplo, crie e gerencie uma aplicação hospedada no AWS Elastic Beanstalk junto a um banco de dados RDS para armazenar os dados da aplicação. Qualquer outro recurso com suporte da AWS também pode ser adicionado ao grupo.

O CloudFormation introduz quatro conceitos. Um modelo é um arquivo de código declarativo JSON ou YAML que descreve o estado pretendido de todos os recursos necessários para implantar uma aplicação. Uma pilha implementa e gerencia o grupo de recursos descritos no modelo e permite que o estado e as dependências desses recursos sejam gerenciados em conjunto. Um conjunto de mudanças é uma visualização das mudanças que serão executadas pelas operações de pilha para criar, atualizar ou remover recursos. Um conjunto de pilhas é um grupo de pilhas gerenciadas em conjunto que podem replicar um grupo.

Para ver uma lista completa de recursos da AWS com suporte e suas funcionalidades, acesse a página de serviços da AWS com suporte no histórico de lançamento da documentação.

Os recursos personalizados do AWS CloudFormation Registry e do AWS CloudFormation possibilitam o gerenciamento de recursos adicionais da AWS e de terceiros.

Sim, você pode. O CloudFormation não interfere. Você mantém controle completo de todos os elementos da infraestrutura e pode continuar a usar todas as ferramentas existentes da AWS e de terceiros para gerenciar os recursos da AWS. No entanto, como o CloudFormation permite regras, melhores práticas e controles de conformidade adicionais, recomendamos que você permita que o CloudFormation gerencie as alterações dos recursos. Essa abordagem previsível e controlada ajuda a gerenciar centenas ou milhares de recursos em todo o seu portfólio de aplicações.

Os modelos do CloudFormation são arquivos de texto em formato JSON ou YAML compostos por cinco tipos de elementos:

1. Uma lista opcional de parâmetros do modelo (valores de entrada fornecidos no momento da criação da pilha)
2. Uma lista opcional dos valores de saída (por exemplo, o URL completo para uma aplicação Web)
3. Uma lista opcional das tabelas de dados usadas para pesquisar valores estáticos de configuração (por exemplo, nomes de AMIs)
4. A lista de recursos do AWS e seus valores de configuração
5. Um número da versão do formato de arquivo do modelo

Os parâmetros de modelo são usados para personalizar aspectos dos modelos em tempo de execução, quando a pilha é criada. Por exemplo, o tamanho do banco de dados do Amazon RDS, os tipos de instância do Amazon EC2 e números de portas de bancos de dados e servidores Web podem ser passados para o AWS CloudFormation quando uma pilha é criada. Cada parâmetro tem um valor e uma descrição padrão e pode ser marcado como “NoEcho” para ocultar o valor real informado na tela e nos logs de evento do AWS CloudFormation. Ao criar uma pilha do AWS CloudFormation, o AWS Management Console automaticamente sintetizará e apresentará uma caixa de diálogo pop-up para que você edite valores dos parâmetros.

Os valores de saída são uma forma conveniente de apresentar os principais recursos de uma pilha (como o endereço de um load balancer do Elastic Load Balancing ou um banco de dados do Amazon RDS) para o usuário pelo Console de Gerenciamento da AWS ou pelas ferramentas de linha de comando. É possível usar funções simples para concatenar literais de strings e o valor dos atributos associados aos recursos reais da AWS. Um modelo também pode usar tipos de recursos do Registry, seus próprios tipos privados personalizados, suas próprias macros e a recuperação de parâmetros de configuração do AWS Secrets Manager e do AWS Systems Manager Parameter Store.

Em um modelo, é possível atribuir nomes lógicos aos recursos da AWS. Quando uma pilha é criada, o AWS CloudFormation vincula o nome lógico ao nome do recurso real correspondente da AWS. Os nomes dos recursos reais são uma combinação da pilha e do nome do recurso lógico. Isso permite que várias pilhas sejam criadas com base em um modelo sem medo de que ocorra coincidências de nomes entre os recursos da AWS.

Embora o AWS CloudFormation permita que você nomeie alguns recursos (como os buckets do Amazon S3), o CloudFormation não permite que você nomeie todos eles. A nomeação de recursos restringe a reutilização de modelos e, quando uma atualização provoca a substituição de um recurso, resulta em conflitos de nome. Para minimizar esses problemas, o CloudFormation oferece a nomeação de recursos analisando cada caso.

Sim. O AWS CloudFormation fornece um conjunto de scripts de inicialização de aplicações que permitem a instalação de pacotes, arquivos e serviços nas instâncias do EC2 simplesmente descrevendo-os no modelo do CloudFormation. Para obter mais detalhes e um guia detalhado, consulte Bootstrap de aplicações por meio do AWS CloudFormation.

O CloudFormation também pode ser integrado com o Systems Manager para realizar e manter instalações de software com o Systems Manager Automation Documents.

Sim. O AWS CloudFormation pode ser usado para iniciar o software Chef Server e Chef Client em instâncias do EC2. Para obter mais detalhes e um guia detalhado, consulte Integração entre o AWS CloudFormation e o Chef.

Sim. O AWS CloudFormation pode ser usado para iniciar o software Puppet Master e o Puppet Client em instâncias do EC2. Para obter mais detalhes e saber mais, consulte Integrating AWS CloudFormation with Puppet.

Sim. O CloudFormation pode iniciar um mecanismo Terraform em instâncias do EC2 e você pode usar provedores de recursos do Terraform para criar recursos em pilhas, utilizando gerenciamento de estado, dependências, estabilização e reversão de pilhas.

Sim. Os recursos do Amazon EC2 que oferecem suporte ao recurso de marcação com tags também podem ser marcados com tags em um modelo da AWS. Os valores de tag podem se referir a parâmetros do modelo, ao nome de outros recursos, valores de atributos de recursos (por ex., endereços) ou a valores computados por funções simples (por ex., uma lista de sequências de caracteres concatenadas). O CloudFormation marca automaticamente volumes do Amazon EBS e instâncias do Amazon EC2 com o nome da pilha do CloudFormation da qual fazem parte.

Sim. Você pode usar funções simples para concatenar literais de strings e valores de atributos dos recursos da AWS e transmiti-los para campos de dados dos usuários no seu modelo. Consulte nossos modelos de exemplo para obter mais informações sobre essas funções fáceis de usar.

Como padrão, o recurso “automatic rollback on error” está habilitado. Essa definição orienta o CloudFormation a criar ou atualizar todos os recursos da pilha somente se todas as operações individuais forem bem-sucedidas. Caso contrário, o CloudFormation reverte a pilha para a última configuração estável conhecida. Isso é útil quando, por exemplo, você ultrapassar acidentalmente o limite padrão dos endereços IP elásticos ou não tiver acesso a uma AMI do EC2 que está tentando executar. Esse recurso permite que você aproveite o fato de que as pilhas são criadas integralmente ou não são criadas, o que simplifica a administração do sistema e soluções em camadas criadas com base no CloudFormation.

Sim. Uma das opções oferecidas pelo CloudFormation é o recurso WaitCondition, que atua como uma barreira, bloqueando a criação de outros recursos até que um sinal de conclusão seja recebido de uma fonte externa como sua aplicação ou sistema de gerenciamento. Outras opções incluem a criação de lógica personalizada com funções do AWS Lambda.

Sim. O CloudFormation permite que você defina políticas de exclusão para recursos no modelo. É possível especificar a criação de snapshots para volumes do Amazon EBS ou instâncias do banco de dados do Amazon RDS antes de serem excluídas. Você também pode especificar que um recurso seja preservado e não excluído quando a pilha for excluída. Isso é útil para preservar os buckets do Amazon S3 quando a pilha for excluída.

Sim. O CloudFormation permite criar VPCs, sub-redes, gateways, tabelas de rota e ACLs de rede, assim como criar recursos, como IPs elásticos, instâncias do Amazon EC2, grupos de segurança do EC2, grupos de Auto Scaling, Elastic Load Balancers, instâncias do banco de dados do Amazon RDS e grupos de segurança do Amazon RDS em uma VPC.

Sim. Você pode usar o CloudFormation para modificar e atualizar os recursos em suas pilhas existentes de forma controlada e previsível. Ao usar modelos para gerenciar suas alterações de pilha, você passa a ter o controle de versão da sua infraestrutura na AWS da mesma maneira que controla o software em execução nela.

Sim. Com a importação de recursos, você pode trazer um recurso existente para o gerenciamento do AWS CloudFormation.

Conceitos básicos

Para se cadastrar no CloudFormation, clique em Create Free Account na página de produto do CloudFormation. Após fazer login, consulte a documentação do CloudFormation, que inclui nosso guia de conceitos básicos.

O registro do CloudFormation exige que você tenha um número de telefone válido e um endereço de e-mail registrados na AWS caso precisemos entrar em contato. Verificar o número de telefone leva apenas alguns minutos e envolve o recebimento de um telefonema automatizado durante o processo de registro e a inserção de um número PIN usando o teclado do telefone.

A melhor maneira de começar a usar o CloudFormation é consultar o Guia de conceitos básicos, que está incluído em nossa documentação técnica. Em alguns minutos, você poderá implantar e usar um dos nossos modelos de exemplo que ilustram como criar a infraestrutura necessária para executar aplicações como WordPress. Há várias outras fontes de treinamento do CloudFormation, de provedores externos de currículos a tutoriais e artigos na Web. Para obter mais informações, confira os recursos do CloudFormation.

Sim, o CloudFormation inclui modelos de exemplo que podem ser usados para testar a oferta e explorar sua funcionalidade. Nossos modelos de exemplo ilustram como interconectar e usar vários recursos da AWS em conjunto, seguindo melhores práticas para a redundância com várias zonas de disponibilidade, escalabilidade horizontal e alertas. Para começar, tudo de que você precisa é acessar o Console de Gerenciamento da AWS, clicar em Create Stack e seguir os passos para selecionar e executar um dos nossos exemplos. Uma vez criada, selecione a pilha no console e consulte as guias Template e Parameter para avaliar os detalhes do arquivo de modelo usado para criar a respectiva pilha. Exemplos de modelos também estão disponíveis no GitHub.

AWS CloudFormation Registry

O AWS CloudFormation Registry é um serviço gerenciado que permite registrar, usar e descobrir tipos de recursos da AWS e terceirizados. Os tipos de recursos terceirizados precisam ser registrados antes de serem usados para provisionar recursos com modelos do AWS CloudFormation. Consulte Usar o registro do AWS CloudFormation em nossa documentação para obter detalhes.

Um provedor de recursos é um conjunto de tipos de recursos com especificações e processadores que controlam o ciclo de vida de recursos subjacentes por meio de operações de criação, leitura, atualização, exclusão e listagem. Você pode usar provedores de recursos para modelar e provisionar recursos usando o CloudFormation. Por exemplo, AWS::EC2::Instance é um tipo de recurso do provedor Amazon EC2. Esse tipo pode ser usado para modelar e provisionar uma instância do Amazon EC2 usando o CloudFormation. Com o CloudFormation Registry, você pode criar e usar provedores de recursos para modelar e provisionar recursos terceirizados, como recursos de monitoramento de SaaS, produtividade de equipes ou gerenciamento de código-fonte.

A diferença entre provedores de recursos da AWS e terceirizados é a origem. Provedores de recursos da AWS são criados e mantidos pela Amazon e a AWS para gerenciar recursos e produtos da AWS. Por exemplo, três provedores de recursos da AWS ajudam a gerenciar os recursos do Amazon DynamoDB, AWS Lambda e Amazon EC2. Esses provedores têm tipos de recursos como AWS::DynamoDB::Table, AWS::Lambda::Function e AWS::EC2::Instance. Consulte nossa documentação para ver uma lista completa.

Os provedores de recursos terceirizados são criados por outra empresa, organização ou pela comunidade de desenvolvedores. Eles podem ajudar a gerenciar recursos da AWS ou de outro tipo, como recursos de aplicativos da AWS e serviços de software SaaS que não sejam da AWS, como ferramentas de monitoramento, produtividade em equipes, gerenciamento de incidentes e gerenciamento de controle de versões.

Um esquema de recursos define um tipo de recurso em um formato estruturado e consistente. Esse esquema também é usado para validar a definição de um tipo de recurso. O esquema inclui todos os parâmetros e atributos com suporte para um determinado tipo de recurso, bem como as permissões necessárias para criar o recurso com o menor número de privilégios possível.

Para criar provedores de recursos, use a ILC do AWS CloudFormation. Comece definindo um esquema declarativo simples para os recursos, o que inclui permissões obrigatórias e relações com outros recursos. Em seguida, use a ILC do CloudFormation para gerar o scaffolding de processadores do ciclo de vida de recursos (criação, leitura, atualização, exclusão e listagem) e também stubs para teste de unidades e integração.

Você pode usar a CLI de código aberto do AWS CloudFormation ou chamar diretamente a API RegisterType e as APIs Registry relacionadas usando os SDKs e a AWS CLI. Para obter mais detalhes, consulte Usar o registro do AWS CloudFormation, na nossa documentação. Os provedores de recursos da AWS estão disponíveis prontos para uso e não são necessárias etapas adicionais de registro.

Registro Público AWS CloudFormation

O Registro CloudFormation lançado em novembro de 2019 era composto de uma lista privada, permitindo aos clientes estender o CloudFormation para seu próprio uso privado. O Registro público amplia o Registro CloudFormation e adiciona uma localização pública, central e que pode ser pesquisada para compartilhar, encontrar, consumir e gerenciar os Tipos de Recursos e Módulos <>, fazendo com que seja muito mais fácil configurar e gerenciar a infraestrutura e as aplicações de maneira consistente para a AWS e para produtos de terceiros.

Sim. No Registro público CloudFormation você tem acesso a conteúdo selecionado de editores verificados. Primeiro verificamos a identidade de cada editor usando o AWS Marketplace ou terceiros como o GitHub e Bitbucket.

O Registro público CloudFormation é o novo catálogo de extensões que pode ser pesquisado e gerenciado e contém tipos de recurso (lógica de provisionamento) e módulos publicados pela Rede de Parceiros da AWS (APN) e pela comunidade de desenvolvedores. Com o Registro Público CloudFormation, qualquer um pode publicar tipos de recursos e Módulos no Registro. Os clientes podem descobrir e usar esses tipos de recurso e módulos facilmente, eliminando a necessidade de construir e manter os módulos eles mesmos.

Um Tipo de Recurso é um pacote de código que contém lógica de provisionamento, que permite a você gerenciar o ciclo de vida de um recurso como uma instância do Amazon EC2 ou uma Tabela Amazon DynamoDB desde a criação até a exclusão, abstraindo interações complexas da API. Os Tipos de Recurso contém um esquema que define a forma e as propriedades de um recurso, e a lógica necessária para provisionar, atualizar, excluir e descrever um recurso. Um exemplo de Tipo de Recurso de terceiro no Registro Público CloudFormation é um monitor do Datadog, Projeto Atlas do MongoDB ou um Usuário Atlassian Opsgenie, entre outros.

Módulos são componentes que podem ser reutilizados em vários modelos CloudFormation e que são usados como um recurso nativo do CloudFormation. Esses componentes podem ser para um único recurso, como a prática recomendada para definir uma instância Amazon Elastic Compute Cloud (Amazon EC2) ou podem ser para vários recursos, para definir padrões comuns da arquitetura de aplicação.

Você pode consultar este link para desenvolver e adicionar seu próprio recurso ou módulo ao Registro do AWS CloudFormation. Você pode escolher publicar de maneira privada ou no Registro Público.

Faturamento

Não há custos adicionais para usar o AWS CloudFormation com os provedores de recurso nos namespaces AWS::*, Alexa::* e Custom::*. Neste caso, você paga pelos recursos da AWS (como instâncias do Amazon EC2, load balancers do Elastic Load Balancing etc.) criados com o AWS CloudFormation como se tivesse criado os recursos manualmente. Você paga apenas pelo que usar, quando usar. Não há taxas mínimas nem compromissos iniciais obrigatórios.

Quando você usa provedores de recursos com o AWS CloudFormation fora dos namespaces mencionados acima, as cobranças usam como base o número de operações por processador. As operações de processadores são as ações de criação, atualização, exclusão, leitura e listagem de um recurso. Consulte nossa página de preços para obter mais informações.

Sim. Cobranças referentes a recursos da AWS criados durante a execução do modelo aplicam-se independentemente de a pilha como um todo ter sido criada com êxito ou não.

Limites e restrições

Para obter mais informações sobre o número máximo de pilhas do AWS CloudFormation que você pode criar, consulte Pilhas em Cotas do AWS CloudFormation. Preencha nossa solicitação de limite maior aqui, e responderemos à solicitação em até dois dias úteis.

Para obter mais informações, consulte Descrição de modelos em Cotas do AWS CloudFormation e Parâmetros, Recursos e Saídas na documentação da AWS.

Para obter mais informações sobre o número de parâmetros e saídas que você pode especificar em um modelo, consulte as seções Parâmetros e Saídas em Cotas do AWS CloudFormation.

Para obter mais informações sobre o número de recursos que você pode declarar em um modelo, consulte Recursos em Cotas do AWS CloudFormation. A criação de modelos e pilhas menores e a modularização de aplicações em várias pilhas é uma prática recomendada para reduzir o impacto das mudanças de recursos e agilizar a resolução de problemas com várias dependências de recursos, pois grupos menores de recursos têm dependências menos complexas do que grupos maiores.

Regiões e pontos finais

Os endpoints de cada região estão disponíveis em Endpoints do AWS CloudFormation, na documentação técnica.

Consulte produtos e serviços regionais para obter detalhes sobre a disponibilidade do CloudFormation por região.

Saiba mais sobre a definição de preço do AWS CloudFormation

Acesse a página de definição de preço do AWS CloudFormation