Geral

P: O que é o AWS CloudFormation?

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.

P: O que os desenvolvedores podem fazer com o AWS CloudFormation?

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.

P: Qual é a diferença entre o CloudFormation e o AWS Elastic Beanstalk?

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.

P: Quais os novos conceitos introduzidos pelo AWS CloudFormation?

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.

P: Para quais recursos o AWS CloudFormation oferece suporte?

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.

P: Posso gerenciar recursos individuais da AWS que fazem parte de uma pilha do AWS CloudFormation?

Sim. 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.

P: Quais são os elementos de um modelo do AWS CloudFormation?

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. Na criação de uma pilha do AWS CloudFormation, o Console de Gerenciamento da AWS automaticamente sintetiza e apresenta 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.

P: Como o AWS CloudFormation seleciona nomes de recursos reais?

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 recear conflitos de nomes entre os recursos da AWS.

P: Por que não posso nomear todos os meus recursos?

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.

P: Posso instalar software no momento de criação da pilha usando o AWS CloudFormation?

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 Bootstrapping Applications via 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.

P: Posso usar o AWS CloudFormation com o Chef?

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 Integrating AWS CloudFormation with Chef.

P: Posso usar o AWS CloudFormation com o Puppet?

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.

P: Posso usar o AWS CloudFormation com o Terraform?

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.

P: O AWS CloudFormation oferece suporte à marcação com tags do Amazon EC2?

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 exemplo, endereços) ou a valores calculados por funções simples (por exemplo, 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.

P: Tenho acesso à instância do Amazon EC2 ou aos campos de dados de usuário da configuração de execução do Auto Scaling?

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.

P: O que acontece quando um dos recursos em uma pilha não pode ser criado com êxito?

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.

P: A criação de uma pilha pode aguardar a inicialização da aplicação?

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.

P: Posso salvar os dados quando uma pilha é excluída?

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 é excluída.

P: Posso atualizar minha pilha após ela ter sido criada?

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.

P: Posso criar pilhas em uma Virtual Private Cloud (VPC)?

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.

P: Como posso participar da comunidade do CloudFormation?

Inscreva-se na comunidade do GitHub do AWS CloudFormation.

P: Posso gerenciar recursos criados fora do CloudFormation?

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

Conceitos básicos

P: Como faço para me cadastrar no AWS CloudFormation?

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.

P: Por que devo confirmar meu número de telefone ao me cadastrar no AWS CloudFormation?

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 uma chamada automática durante o processo de registro e a inserção de um número PIN usando o teclado do telefone.

P: Como começo a usar após o cadastramento?

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.

P: Há modelos de exemplo que posso usar para experimentar o AWS 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

P: O que é o 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.

P: Quais são os tipos de recursos do AWS CloudFormation?

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.

P: Qual é a diferença entre provedores de recursos da AWS e terceirizados?

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.

P: O que é um esquema de recursos?

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.

P: Como desenvolvo tipos de recursos?

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.

P: Como registro um provedor de recursos?

Você pode usar a ILC de código aberto do AWS CloudFormation ou chamar diretamente a API RegisterType e as APIs Registry relacionadas usando os SDKs e a ILC da AWS. Para obter mais detalhes, consulte Usar o registro do AWS CloudFormation em 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.

Faturamento

P: Quanto custa o AWS CloudFormation?

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 definição de preço para obter mais informações.

P: Haverá cobrança pelos recursos que foram revertidos durante uma tentativa malsucedida de criação de uma pilha?

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

P: Há limites quanto ao número de modelos ou pilhas?

Não há limites quanto ao número de modelos. Cada conta do AWS CloudFormation tem um limite máximo de 200 pilhas. Preencha nossa solicitação de limite maior aqui e responderemos à solicitação em até dois dias úteis.

P: Há limites quanto ao tamanho dos campos de descrição?

Os campos de descrição de modelo, parâmetro, saída e recurso são limitados em 4096 caracteres.

P: Há limites quanto ao número de parâmetros ou saídas em um modelo?

Você pode incluir até 60 parâmetros e 60 saídas em um modelo.

P: Há limite para o número de recursos que podem ser criados em uma pilha?

No momento, você pode criar até 200 recursos por pilha. A criação de modelos e pilhas menores e a modularização de aplicações em várias pilhas é uma melhor prática 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 que grupos maiores.

Regiões e endpoints

P: Quais são os pontos de acesso de serviço do AWS CloudFormation em cada região?

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

P: Quais são as regiões da AWS onde o AWS CloudFormation já está disponível?

Consulte os 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