infraestrutura como código (IaC) - AWS Serverless Application Model

infraestrutura como código (IaC)

Com a infraestrutura como código (IaC), você pode automatizar a implantação e o gerenciamento de seus recursos da AWS, incluindo aplicações com tecnologia sem servidor. A IaC permite que você defina sua infraestrutura usando código, facilitando a criação de versões, o compartilhamento e a replicação de suas implantações. Essa abordagem ajuda você a:

  • Acelerar seu ciclo de desenvolvimento

  • Simplificar o gerenciamento de configuração

  • Melhorar a confiabilidade e a consistência de suas implantações

Ferramentas de IaC para aplicações com tecnologia sem servidor da AWS

A AWS oferece várias ferramentas de IaC para ajudá-lo a criar, implantar e gerenciar seus recursos de nuvem. Esta seção explica como o AWS SAM se encaixa nesse ecossistema e funciona com outras ferramentas de IaC da AWS.

AWS CloudFormation

Ao usar o CloudFormation, você pode modelar e provisionar toda a sua infraestrutura da AWS com modelos YAML ou JSON. O CloudFormation processa automaticamente a criação, as atualizações e a exclusão de recursos. Quando você implanta aplicações do AWS SAM, o CloudFormation processa os modelos transformados para criar e gerenciar seus recursos.

AWS Serverless Application Model (AWS SAM)

O AWS SAM ajuda a criar aplicações com tecnologia sem servidor com sintaxe simplificada para definir recursos sem servidor. Você pode usar modelos do AWS SAM para provisionar funções do Lambda, bancos de dados e origens de eventos, usando a sintaxe YAML concisa. O AWS SAM transforma esses modelos em modelos do CloudFormation durante a implantação.

nota

Embora o AWS SAM seja especializado em aplicações com tecnologia sem servidor, você pode usar qualquer tipo de recurso do CloudFormation em seus modelos do AWS SAM. Isso permite a flexibilidade de incluir recursos com tecnologia sem servidor quando necessário.

AWS Cloud Development Kit (AWS CDK)

Com o AWS CDK, você pode definir sua infraestrutura com tecnologia sem servidor usando linguagens de programação familiares, como TypeScript, Python, Java, C#/.Net ou Go. Você pode usar constructos de programação, como loops e condições, para definir sua infraestrutura e o AWS CDK gerar modelos do CloudFormation para implantação. Agora você pode usar a CLI do AWS SAM para testar e criar aplicações do AWS CDK localmente. Para saber mais, consulte Testing CDK applications locally.

Comparar ferramentas de IaC com aplicações com tecnologia sem servidor

Ao escolher uma ferramenta de IaC para suas aplicativos com tecnologia sem servidor, considere as preferências da sua equipe, os requisitos do projeto e os fluxos de trabalho existentes. A tabela a seguir compara as principais características das ferramentas de IaC da AWS para o desenvolvimento com tecnologia sem servidor:

Ferramenta

Uso primário

Melhor para

Funciona com o AWS SAM

Quando escolher

CloudFormation

Gerenciar uma infraestrutura complexa da AWS

Aplicações que exigem controle detalhado dos recursos da AWS

Os modelos do AWS SAM se transformam em modelos do CloudFormation durante a implantação

Para controle preciso sobre recursos que não são com tecnologia sem servidor

AWS SAM

Desenvolvimento de aplicações com tecnologia sem servidor

Equipes criando aplicações com tecnologia sem servidor que usam o Lambda

Funcionalidade nativa

Ao focar principalmente em arquiteturas com tecnologia sem servidor com as funções do Lambda, APIs do API Gateway e outros recursos com tecnologia sem servidor

AWS CDK

Definição de infraestrutura usando linguagens de programação

Equipes que preferem linguagens digitadas e abordagem que prioriza o código

Gere modelos do AWS SAM e use a CLI do AWS SAM para testes

Quando você precisa de uma definição de infraestrutura programática ou de uma lógica complexa de configuração de recursos

nota

Embora este guia se concentre em ferramentas de IaC nativas da AWS, o Terraform é outra solução popular de IaC que pode ser usada para definir aplicações com tecnologia sem servidor. A CLI do AWS SAM oferece suporte para testes locais de funções do Lambda definidas no Terraform. Para obter mais informações, consulte Suporte AWS SAM CLI Terraform.

Saiba mais