No passado sombrio dos servidores físicos, a infraestrutura era provisionada usando chaves de fenda e cabos em porões úmidos. Esses tempos sombrios tornaram-se mais leves quando as soluções de nuvem pública começaram a substituir a infraestrutura local como a forma preferida de provisionar e executar servidores. Neste post do blog, aprenda como implantar soluções de nuvem com AWS CLI e CloudFormation.
Este é um post convidado de Karl Eriksson, co-fundador da Mocki – uma ferramenta que permite criar APIs simuladas em minutos.
Se você está executando um ambiente para sua aplicação, pode gerenciar facilmente as coisas por meio de uma interface gráfica do usuário (GUI), como a Console da AWS. Mas quando você tem vários ambientes, como desenvolvimento, teste e produção, as coisas ficam mais difíceis. Erros humanos e tempo entram na equação. AWS CLI e CloudFormation podem ajudar.
Você precisa gerenciar sua infraestrutura como código. No mundo da AWS, a maneira de fazer isso é com pilhas do CloudFormation.
Ao implantar uma pilha do CloudFormation pela primeira vez, a AWS criará tudo do zero. Se você implantar a pilha como uma atualização, ela detectará quaisquer alterações na infraestrutura e implantará apenas essas alterações.
As pilhas do CloudFormation garantem que as mesmas alterações sejam aplicadas em todos os seus diferentes ambientes.
CloudFormation: AWS Infrastructure as Code

AWS CloudFormation é uma ferramenta para escrever e provisionar infraestrutura como código em um ambiente AWS. A maioria dos serviços da AWS é suportada pelo CloudFormation. A maioria do que você pode criar usando o Console da AWS, como servidores virtuais, bancos de dados, balanceadores de carga e armazenamento de arquivos, pode ser adicionado a uma pilha do CloudFormation. Uma vez adicionados, todos esses recursos podem ser implantados a partir de uma linha de comando ou algum outro processo automatizado.
Para atualizações, o CloudFormation garante que as operações sejam realizadas da maneira mais eficiente e até reverte as alterações automaticamente se algo der errado.
Vamos aprender agora como criar infraestrutura usando a AWS CLI e o CloudFormation.
Pré-requisitos
Para seguir o tutorial do CloudFormation no resto deste artigo, certifique-se de ter o seguinte:
- Uma conta AWS
- AWS CLI – Aprenda como baixar e configurar aqui. Você pode confirmar se a CLI foi configurada com sucesso executando
aws s3 ls
. Se o comando retornar com sucesso, tudo está bem.
Se você tiver vários perfis AWS configurados via AWS CLI, por favor, use um adequado para desenvolvimento ou testes para este tutorial.
Criando sua Primeira Pilha CloudFormation
Suficiente informação de fundo, vamos ao trabalho e usar a AWS CLI e o CloudFormation para criar uma pilha!
Neste exemplo, você irá criar uma pilha contendo a infraestrutura necessária para implantar um site estático hospedado no serviço de hospedagem de arquivos estáticos AWS S3.
Para começar, crie um novo arquivo chamado template.yaml
e preencha-o com o conteúdo abaixo:
AWSTemplateFormatVersion
– determina a versão do formato para o modelo para que a AWS possa interpretá-lo corretamente ao implantá-lo.Descrição
– contém uma descrição do modelo que será exibida no Console AWS após implantá-lo.Recursos
– contém toda a infraestrutura que está sendo adicionada ao modelo. Neste caso, os recursos criarão um bucket S3 simples que hospedará um site estático.
A propriedade
BucketName
precisa ser única, então tente inventar algo diferente de seu-nome-de-bucket.
Implantando o Stack com AWS CLI e CloudFormation
Agora que você tem um modelo simples criado para implantar, implante-o na AWS usando a AWS CLI e o CloudFormation através do comando abaixo:
Após executar o comando, acesse o Console da AWS e vá para Serviços → CloudFormation. Você deverá então ver a implantação em execução. Após alguns minutos, você deverá então vê-la entrar no estado CREATE_COMPLETE
. Se sim, está completo!
Se houver algum erro, você deverá ser capaz de vê-los na seção Eventos ao visualizar os detalhes do seu stack.
Ao navegar até Serviços → S3, você deverá agora ver um novo bucket S3 criado.
Construindo o Website Simples
Assim que tiver um bucket S3 configurado para armazenar um site, crie um arquivo index.html que servirá como o site.
Se você não tem algo em mente, pode usar o conteúdo abaixo em seu arquivo index.html:
Salve o arquivo index.html e faça o upload para o seu bucket S3 através do Console da AWS.
Certifique-se de conceder acesso de leitura pública ao arquivo index, já que ele estará acessível a todos que visitarem o site.
Atualizando o Modelo
Neste momento, o bucket S3 acabado de criar não está configurado para hospedar um site. Vamos alterar isso. Atualmente, você pode baixar o arquivo de índice através do console da AWS, mas ele não é acessível pela internet pública. Usando a AWS CLI e o CloudFormation, altere a configuração para permitir hospedagem de site estático.
Altere o arquivo template.yaml como abaixo para habilitá-lo. Abaixo, apresentamos algumas novas propriedades para o nosso modelo.
AccessControl
– define os direitos de acesso do bucket S3 para leitura pública, para que qualquer usuário que visite o site possa ver o arquivoindex.html
WebsiteConfiguration
– configura o bucket S3 para funcionar como um site que servirá o arquivo index.html carregado quando os usuários acessarem a URL do bucketOutputs
– podem ser diferentes propriedades para recursos que fazem parte do conjunto. No exemplo acima, oWebsiteURL
é a saída do conjunto. Quando você implantar o modelo novamente, deverá ver a URL do site como uma saída no Console do AWS CloudFormation.
Agora, implante as alterações no conjunto existente usando o mesmo comando como no passo anterior:
Para confirmar o resultado, navegue até o console do CloudFormation. Após alguns minutos, você deverá notar que o stack está no estado UPDATE_COMPLETE
. Quando o stack entra neste estado, vá para a aba Outputs onde você deverá ver o WebsiteUrl
adicionado como uma saída no modelo.
Clique no URL fornecido e você deverá ver seu site em seu navegador.
Parabéns! Com o AWS CLI e o CloudFormation, você agora implantou seu primeiro stack usando infraestrutura como código! Neste ponto, continue adicionando ao seu arquivo de modelo para implantar novas alterações ou crie um novo de acordo com suas necessidades.
Conclusão
Neste tutorial, você aprendeu sobre o conceito de infraestrutura como código e as vantagens que ele tem sobre a provisionamento manual de infraestrutura. Usando a abordagem de infraestrutura como código com o AWS CLI e o CloudFormation, você implantou um stack para criar um site estático.
Usando os princípios aprendidos neste tutorial, você pode implantar um sistema pronto para produção completamente usando o CloudFormation.
Leitura adicional
Se você quiser ler mais sobre infraestrutura como código como um fenômeno, confira Infraestrutura como Código no Mundo Real da HashiCorp.
Se você quiser aprender mais sobre como integrar o CloudFormation ao seu fluxo de desenvolvimento e gerenciar toda a sua infraestrutura usando o CloudFormation, certifique-se de conferir:
- Crie um Pipeline com AWS CloudFormation pela AWS
- Construindo um Pipeline para Pilhas de Teste e Produção pela AWS
Boa sorte em sua jornada implantando toda a sua infraestrutura usando infraestrutura como código na AWS!
Source:
https://adamtheautomator.com/aws-cli-and-cloudformation/