Introdução aos modelos do AWS CloudFormation

O AWS CloudFormation é um serviço que gerencia e define diferentes recursos da AWS juntos, para que o tempo gasto para executá-los possa ser reduzido e o tempo com foco em diferentes aplicativos no Amazon Web Services possa ser aumentado. Para conseguir isso, é usado um modelo que contém todos os recursos que o usuário precisa. Esses modelos são conhecidos como modelos do CloudFormation. Com a ajuda desses modelos, o AWS CloudFormation se encarrega de configurar e provisionar esses recursos para o usuário. A estrutura e o funcionamento do modelo são descritos na próxima seção.

CloudFormation Templates

O modelo Amazon CloudFormation é um arquivo de texto formatado na linguagem YAML ou JSON. Esses modelos podem ser criados com a ajuda de um console ou escrevendo um script manualmente. No console, os recursos serão arrastados e descartados pelo usuário. Depois de concluído, um script JSON ou YAML será gerado automaticamente e o usuário poderá editá-lo, se desejar. Para modificar ou editar o modelo, o usuário pode usar qualquer ferramenta de editor de texto ou o designer do AWS CloudFormation. Para escrever, um determinado formato deve ser seguido com os seguintes objetos. Os principais objetos do modelo CloudFormation estão descritos abaixo.

1. Formato: a versão do modelo do AWS CloudFormation é definida aqui.

Exemplo:

(
"AWSTemplateFormatVersion": "2019-09-09"
)

2. Descrição: quaisquer comentários ou descrições sobre o modelo podem ser observados neste objeto.

Exemplo:

(
"Description": "An Amazon Redshift cluster is created within a Virtual Private Cloud”
)

3. Metadados: informações adicionais sobre o modelo são definidas na linguagem JSON ou YAML.

Exemplo:

(
"Metadata":
(
"AWS::CloudFormation::Interface": ()
)

4. Parâmetros: A personalização dos modelos pode ser feita usando os parâmetros. É atribuindo valores personalizados ao modelo quando a pilha é criada ou atualizada.

Exemplo:

"Parameters" :
(
"KeyName": ()
"InstanceType" : ()
"DBName" : ()
"DBUser" : ()
"DBPassword" : ()
)

5. Mapeamentos: Com base em um valor no parâmetro condicional, o usuário poderá mapear a chave para ele. Além disso, em um mapa, os usuários podem recuperar valores usando uma função intrínseca “Fn :: FindInMap”.

Exemplo:

(
"AWSInstanceType2Arch" :
(
"t1.micro" : ( "Arch" : "HVM64" ),
.
.
"t2.large" : ( "Arch" : "HVM64" ),
"m1.small" : ( "Arch" : "HVM64" ),
.
"m1.large" : ( "Arch" : "HVM64" )
)

6. Recursos: na seção Recursos do modelo AWS CloudFormation, é possível declarar recursos como o AWS Simple Storage Services bucket (S3), AWS Lambda. Esses recursos também podem ser criados e especificados na pilha.

Exemplo:

"Resources" :
(
"WebServerSecurityGroup" :
(
"Type" : " ",
"Properties" :
(
"GroupDescription" : "",
"SecurityGroupIngress" :() )
)
)

7. Saída: A seção de saída contém os valores que precisam ser importados para outras pilhas ou aquelas que são retornadas enquanto você visualiza suas próprias propriedades.

Exemplo:

"Outputs" :
(
"Description" : "”
“Value”: “”
)
)

Agora, vamos combinar todas essas seções e ver a aparência de um modelo.

Modelo de exemplo

(
"AWSTemplateFormatVersion": "2019-09-09"
"Description": "An Amazon Redshift cluster is created within a Virtual Private Cloud”
"Metadata": (
"AWS::CloudFormation::Interface": ()
)
"Parameters" : (
"KeyName": ()
"InstanceType" : ()
"DBName" : ()
"DBUser" : ()
"DBPassword" : ()
)
"Mappings" :
(
"AWSInstanceType2Arch" :
(
"t1.micro" : ( "Arch" : "HVM64" ),
.
.
"t2.large" : ( "Arch" : "HVM64" ),
"m1.small" : ( "Arch" : "HVM64" ),
.
"m1.large" : ( "Arch" : "HVM64" )
)
"Resources" :
(
"WebServerSecurityGroup" :
(
"Type" : " ",
"Properties" :
(
"GroupDescription" : "",
"SecurityGroupIngress" :() )
)
)
"Outputs" :
(
"Description" : "”
“Value”: “”
)
)

Depois que o modelo é criado, o usuário pode fazer upload do modelo para a pilha.

Configurando a pilha do CloudFormation

Uma pilha na AWS é uma coleção de recursos que podem ser gerenciados por uma única unidade. Os recursos podem ser criados, excluídos e atualizados criando, excluindo e atualizando pilhas. Agora, vamos ver como estamos lançando essa pilha e usar o modelo CloudFormation dentro dela.

1. Inscreva-se na conta da AWS, se você não tiver uma. Se já estiver presente, efetue login usando as credenciais.

2. Abra o console do AWS CloudFormation usando o URL https://console.aws.amazon.com/cloudformation.

3. Se você estiver tendo uma nova conta do CloudFormation, clique em Criar nova pilha. Senão, criar pilha.

4. Selecione Carregar um modelo para o Amazon S3 em Escolha um modelo. Faça o upload do seu modelo selecionando Escolher arquivo ou fornecendo um URL.

5. Observe que, se o modelo CloudFormation estiver armazenado no bucket do S3, o usuário deverá ter acesso a esse e as regiões do S3 Bucket and Stack deverão ser as mesmas.

6. Dê um nome de pilha apropriado na seção Especificar detalhes à sua pilha do CloudFormation.

7. Forneça o nome do EC2 Keypair no KeyName

8. Verifique se o par de chaves e a pilha do EC2 estão na mesma região.

9. Clique em Avançar.

10. Uma página aparece com alguns campos de entrada opcionais, como tag. As tags ajudam a identificar as pilhas, pois contêm pares de valores-chave. Mas agora não estamos criando tags.

11. Revise os detalhes e selecione Criar.

12. O progresso da criação da pilha pode ser visto agora na guia Eventos. Se a criação da pilha estiver em andamento, o status CREATE_IN_PROGRESS será mostrado e, se a criação estiver concluída, o status CREATE_COMPLETED será mostrado.

13. Depois que a pilha é criada, o usuário pode começar a usar os recursos. Para evitar cobranças adicionais por serviços indesejados, é recomendável excluir as pilhas e seus recursos.

Para excluir a pilha, as seguintes etapas podem ser usadas.

  • Vá para o console do CloudFormation e selecione a pilha que você criou.
  • Clique em Excluir pilha.
  • Clique em Sim, Excluir quando a mensagem de confirmação aparecer.

Conclusão

O CloudFormation Templates ajuda no provisionamento e na configuração dos recursos para o usuário, a fim de diminuir o tempo necessário para executar operações em vários recursos e aumentar o foco nos diferentes aplicativos existentes no Amazon Web Services. A criação e o uso desses modelos são discutidos na seção acima.

Artigo recomendado

Este é um guia para os modelos do AWS CloudFormation. Aqui discutimos a introdução e os diferentes modelos do CloudFormation, além de exemplos. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Arquitetura da AWS
  2. Serviços da AWS
  3. O que é o AWS CloudFront
  4. Perguntas da entrevista da AWS
  5. Serviços de armazenamento da AWS
  6. Concorrentes da AWS | Os 7 principais concorrentes da AWS com recursos
  7. Nuvem Privada vs Nuvem Pública
  8. O que é nuvem privada?

Categoria: