Laboratório Guiado: Automatizando a Implantação de Infraestrutura com AWS CloudFormation

A implantação de infraestrutura de forma consistente e confiável pode ser um desafio. Exige que as equipes sigam procedimentos documentados sem desvios. Além disso, pode ser complicado implantar infraestrutura fora do horário de expediente, quando há menos pessoas disponíveis. O AWS CloudFormation surge como uma solução, permitindo definir a infraestrutura em um modelo que pode ser implantado automaticamente, até mesmo em horários programados.

Neste artigo, você vai aprender a implantar várias camadas de infraestrutura com o AWS CloudFormation, atualizar uma stack do CloudFormation e excluir uma stack, mantendo alguns recursos.

Recursos do AWS CloudFormation

  • Utilizar o AWS CloudFormation para implantar uma camada de rede de nuvem privada virtual (VPC).
  • Empregar o AWS CloudFormation para implantar uma camada de aplicação que referencia a camada de rede.
  • Explorar modelos com o AWS CloudFormation Designer (Infrastructure Composer).
  • Excluir uma stack que tenha uma política de exclusão.

Instruções de Configuração

Tarefa 1: Implementando uma camada de rede

Nesta tarefa, você vai implantar um modelo do AWS CloudFormation que cria uma camada de rede usando o Amazon VPC.

Os modelos podem ser escritos em JSON ou YAML. YAML é uma linguagem de marcação semelhante ao JSON, mas é mais fácil de ler e editar.

  • Abra o painel do CloudFormation e configure os seguintes detalhes:

a. Criar stack > Com novos recursos (padrão)
b. Preparar modelo: Escolher modelo está pronto
c. Fonte do modelo: Escolha o arquivo lab-network.yaml que você baixou.
d. Nome da stack: lab-network
e. Tags: Chave: application
Valor: inventory

O modelo é usado pelo AWS CloudFormation para gerar uma stack de recursos na conta AWS.

As tags especificadas são automaticamente propagadas para os recursos que são criados, o que ajuda a identificar os recursos que são usados por aplicações específicas.

  • Selecione a aba Recursos. Você verá uma lista dos recursos que foram criados pelo modelo.
  • Selecione a aba Eventos e navegue pelos eventos.

Os eventos mostram (do mais recente ao menos recente) as atividades que foram realizadas pelo AWS CloudFormation. Exemplos de eventos incluem iniciar a criação de um recurso e, em seguida, concluir a criação do recurso. Quaisquer erros encontrados durante a criação da stack são listados nesta aba.

  • Selecione a aba Saídas.

As saídas também podem ser usadas para fornecer valores para outras stacks. Neste caso, os IDs do VPC e da sub-rede recebem nomes de exportação para que outras stacks possam recuperar os valores. Essas outras stacks podem então construir recursos dentro do VPC e da sub-rede que foram criados.

Tarefa 2: Implementando uma camada de aplicação

Agora que você implantou a camada de rede, você vai implantar uma camada de aplicação que contém uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e um grupo de segurança.

O modelo do AWS CloudFormation importa os IDs do VPC e da sub-rede das saídas da stack do CloudFormation existente. Em seguida, ele usa essas informações para criar o grupo de segurança no VPC e a instância do EC2 na sub-rede.

  • Baixe o modelo lab-application.yaml para o seu computador.
  • Abra o painel do CloudFormation e configure os seguintes detalhes:

a. Criar stack > Com novos recursos (padrão)
b. Preparar modelo: Escolher modelo está pronto
c. Fonte do modelo: Escolha o arquivo lab-application.yaml que você baixou.
d. Nome da stack: lab-application
e. Tags: Chave: application
Valor: inventory

  • Na aba Saída, copie a URL que é exibida, abra uma nova aba do navegador, cole a URL e pressione ENTER.

Uma stack do CloudFormation pode usar valores de referência de outra stack do CloudFormation. Por exemplo, esta parte do modelo lab-application referencia o modelo lab-network:
WebServerSecurityGroup:

Type: AWS::EC2::SecurityGroup
Properties:
  GroupDescription: Enable HTTP ingress
  VpcId:
    Fn::ImportValue:
      !Sub ${NetworkStackName}-VPCID

A última linha usa o nome da stack de rede que você forneceu (lab-network) quando a stack foi criada. Ele importa o valor de lab-network-VPCID das saídas da primeira stack. Em seguida, ele insere o valor no campo de ID do VPC da definição do grupo de segurança. O resultado é que o grupo de segurança é criado no VPC que foi criado pela primeira stack.

Tarefa 3: Atualizando uma Stack

Nesta tarefa, você vai atualizar a stack lab-application para modificar uma configuração no grupo de segurança.

  • Vá para o painel do EC2 e navegue até grupo de segurança
  • Observe as regras de entrada de lab-application-WebServerSecurityGroup.

Atualmente, apenas uma regra está no grupo de segurança. A regra permite o tráfego HTTP.

Este modelo tem uma configuração adicional para permitir o tráfego HTTPS de entrada na porta 443:

- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: 0.0.0.0/0
  • No console do CloudFormation, atualize e configure estas configurações:

a. Preparar modelo: Substituir modelo atual.
b. Fonte do modelo: Carregar um arquivo de modelo.
c. Carregar um arquivo de modelo: arquivo lab-application2.yaml que você baixou.

Na Visualização do conjunto de mudanças, o AWS CloudFormation exibe os seguintes recursos que serão atualizados:

Esta visualização do conjunto de mudanças indica que o AWS CloudFormation vai modificar o WebServerSecurityGroup sem precisar substituí-lo (Replacement = False). Este conjunto de mudanças significa que o grupo de segurança terá uma pequena alteração aplicada a ele e nenhuma referência ao grupo de segurança precisará ser alterada.

Agora você pode verificar a mudança.

  • Retorne ao console do Amazon EC2.
  • Na lista Grupos de Segurança, escolha lab-application-WebServerSecurityGroup.

A aba Regras de entrada deve exibir uma regra adicional que permite o tráfego HTTPS na porta TCP 443.

Tarefa 4: Explorando modelos com o AWS CloudFormation Designer (Infrastructure Composer)

O AWS CloudFormation Designer (Designer) é uma ferramenta gráfica para criar, visualizar e modificar modelos do AWS CloudFormation. Com o Designer, você pode diagramar os recursos do seu modelo usando uma interface de arrastar e soltar e, em seguida, editar seus detalhes através do editor JSON e YAML integrado.

  • No Console do CloudFormation, escolha Infrastructure Composer.
  • Carregue o modelo lab-application2.yaml que você baixou anteriormente.

O Infrastructure Composer exibe uma representação gráfica do modelo.

Tarefa 5: Excluindo a Stack

Quando os recursos não são mais necessários, o AWS CloudFormation pode excluir os recursos construídos para a stack.

Uma política de exclusão também pode ser especificada para os recursos. Ela pode preservar ou (em alguns casos) fazer backup de um recurso quando sua stack é excluída. Este recurso é útil para reter bancos de dados, volumes de disco ou qualquer recurso que possa ser necessário após a exclusão da stack. Ele também pode ser configurado para evitar que recursos importantes sejam excluídos não intencionalmente.

A stack lab-application foi configurada para tirar um snapshot de um volume de disco Amazon Elastic Block Store (Amazon EBS) antes de ser excluído. O código no modelo que realiza essa configuração é o seguinte:
DiskVolume:

Type: AWS::EC2::Volume
Properties:
  Size: 100
  AvailabilityZone: !GetAtt WebServerInstance.AvailabilityZone
  Tags:
    - Key: Name
      Value: Web Data
DeletionPolicy: Snapshot
  • Console do AWS CloudFormation, selecione o link lab-application e exclua.

A stack da aplicação foi removida, mas a stack da rede permaneceu intacta. Este cenário reforça a ideia de que diferentes equipes (por exemplo, a equipe de rede ou a equipe de aplicação) podem gerenciar suas próprias stacks.

Para verificar se um snapshot do volume EBS foi criado antes da exclusão do volume EBS.

  • Vá para o painel do EC2 e selecione Snapshots.

O que foi aprendido

  • Usar o AWS CloudFormation para implantar uma camada de rede de nuvem privada virtual (VPC).
  • Usar o AWS CloudFormation para implantar uma camada de aplicação que referencia a camada de rede.
  • Explorar modelos com o AWS CloudFormation Designer (Infrastructure Composer).
  • Excluir uma stack que tem uma política de exclusão.

A utilização do AWS CloudFormation oferece uma abordagem sistemática e automatizada para a gestão de infraestrutura em nuvem. Ao permitir a definição de recursos em modelos, o CloudFormation simplifica a implantação, atualização e exclusão de stacks, garantindo consistência e reduzindo o risco de erros manuais. Para quem busca otimizar a gestão de recursos na AWS, o CloudFormation se apresenta como uma ferramenta poderosa e versátil. Além disso, você pode testar a performance de sua página e garantir que seus usuários tenham a melhor experiência possível.

Para quem busca otimizar a gestão de recursos na AWS, o CloudFormation se apresenta como uma ferramenta poderosa e versátil. E falando em ferramentas poderosas, você já conhece as vantagens de como a infraestrutura em nuvem impulsiona o potencial da inteligência artificial?

A flexibilidade do AWS CloudFormation permite que diferentes equipes gerenciem suas próprias stacks, como a equipe de rede e a equipe de aplicação. Essa autonomia facilita a colaboração e a manutenção, otimizando os processos e garantindo maior agilidade na entrega de projetos. E por falar em otimização, você sabe quais são os Dicas avançadas de Excel para usuários experientes?

Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.
Via Dev.to

Leave a Comment

Exit mobile version