Perguntas frequentes sobre o AWS Cloud Development Kit

Geral

O AWS Cloud Development Kit (AWS CDK) é uma estrutura de desenvolvimento de software de código aberto para a definição de infraestrutura de nuvem como código, com suporte a linguagens de programação modernas e implantação por meio do AWS CloudFormation.

Você pode usar a AWS CDK Command Line Interface (CLI) para interagir com suas aplicações do CDK. A CDK CLI permite listar as pilhas definidas em uma aplicação do CDK, sintetizar as pilhas em modelos do CloudFormation, determinar as diferenças entre instâncias da pilha em execução e as pilhas definidas em código do CDK e implantar pilhas em qualquer região pública da AWS.

Você usa a framework do AWS CDK para criar projetos do AWS CDK, que são executados para gerar modelos do CloudFormation. Os projetos do AWS CDK podem ser executados usando a linha de comando do AWS CDK ou em um sistema de entrega contínua.

A melhor maneira de começar a usar o AWS CDK é seguindo a seção de conceitos básicos do guia do desenvolvedor do AWS CDK. Em alguns minutos, você poderá definir e implantar sua primeira aplicação do AWS CDK. Para ver um tutorial guiado mais detalhado, confira https://CDKworkshop.com.

Sim. Você pode encontrar vários exemplos do AWS CDK, em várias linguagens de programação, em https://github.com/aws-samples/aws-cdk-examples. O guia do desenvolvedor do AWS também contém exemplos: https://docs.aws.amazon.com/cdk/latest/guide/examples.html.

A AWS cria a lógica de negócios dos pacotes da biblioteca de construções da AWS em TypeScript e oferece mapeamentos para cada uma das linguagens de programação compatíveis. Assim, garantimos a consistência do comportamento das construções do AWS CDK nas diversas linguagem e oferecemos um conjunto abrangente de pacotes de construção para todas as linguagens. O código criado em um projeto do AWS CDK é nativo na linguagem de programação preferida. O tempo de execução do JavaScript é um detalhe de implementação da experiência de programação. Você pode consultar o projeto jsii em https://github.com/aws/jsii.

O código do AWS CDK é aberto e está disponível no GitHub: https://github.com/awslabs/aws-cdk.

O primeiro passo de migração de sua aplicação para a v2 do AWS CDK é atualizar os sinalizadores de recursos no cdk.json. Em seguida, atualize as importações e dependências da sua aplicação, conforme necessário, para a linguagem de programação. Saiba mais em: https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html

O desenvolvimento do AWS CDK é aberto e todas as contribuições para a base de código são bem-vindas. Saiba mais em https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md.

Geralmente, o AWS CDK está disponível para JavaScript, TypeScript, Python, Java, C# e Go (na fase de demonstração para desenvolvedores). Planejamos disponibilizar o AWS CDK para outras linguagens no futuro, por isso vote na sua linguagem favorita no GitHub.

O AWS CDK está disponível para definir e implantar recursos da AWS em todas as regiões públicas. Como o AWS CDK usa o serviço CloudFormation, consulte a página produtos e serviços por região para obter detalhes sobre a disponibilidade específica de recursos em cada região da AWS.

Como o AWS CDK utiliza o CloudFormation, as aplicações do AWS CDK estão sujeitas aos mesmos limites impostos por esse serviço.

A biblioteca de constructos da AWS é uma extensão de biblioteca de código aberto do AWS CDK. O AWS Solutions Constructs oferece a você uma coleção de padrões aprovados de arquitetura multisserviço criados usando as práticas recomendadas definidas pelo AWS Well-Architected Framework. O AWS Solutions Constructs requer a instalação do AWS CDK como pré-requisito. Para saber como adicionar o AWS Solutions Constructs a seu ambiente do AWS CDK, consulte nosso guia de desenvolvimento.

Biblioteca de construções da AWS

As construções do AWS CDK, entregues pela biblioteca de construções da AWS, representam abstrações da lógica de infraestrutura de nuvem empacotadas para reutilização. As construções podem ser definidas localmente ou publicadas para gerenciadores de pacotes como npm, Maven, NuGet ou PyPI para compartilhamento nas organizações.

Abrangemos muitos serviços e recursos comuns da AWS com construções sofisticadas de alto nível e cobertura total dos recursos de nível inferior do CloudFormation, incluindo rapidamente novos recursos após sua disponibilização. Mantemos a biblioteca de construções da AWS atualizada com a geração automática de APIs de recursos sempre que a especificação do CloudFormation é alterada. Com base nessas APIs geradas automaticamente, fornecemos abstrações manuais de nível superior que facilitam ainda mais o trabalho com cada serviço. Ainda não temos essa abstração conveniente de alto nível para todos os serviços da AWS. No entanto, estamos sempre adicionando novos recursos, priorizando os serviços mais utilizados em aplicativos de nuvem modernos. Consulte a referência de APIs da biblioteca de construções da AWS para saber mais.

Mantemos a sincronização entre a biblioteca de construções da AWS e a especificação de recursos do CloudFormation adicionando rapidamente os novos recursos do CloudFormation ao AWS CDK.

As bibliotecas de construções do AWS CDK são como qualquer outra biblioteca. Elas são consumidas por meio do gerenciador de pacotes da linguagem de programação utilizada. A atualização dessas bibliotecas faz parte do seu fluxo de trabalho normal. Todos os pacotes oferecem suporte ao versionamento semântico, o que permite fazer escolhas conscientes sobre o momento certo da migração para novos modelos de infraestrutura.

CloudFormation e SAM

Você pode pensar no AWS CDK como um toolkit para desenvolvedores que aproveita todos os recursos das linguagens de programação modernas para definir sua infraestrutura como código na AWS. Quando executadas, as aplicações do AWS CDK são compiladas como modelos JSON/YAML completos do CloudFormation. Esses modelos são enviados ao serviço CloudFormation para provisionamento. Como o AWS CDK usa o CloudFormation, você obtém todos os benefícios do serviço, como implantação segura, reversão automática e detecção de variações.

O AWS Serverless Application Model e o AWS CDK abstraem a infraestrutura da AWS como código, facilitando a definição de infraestruturas de nuvem. O AWS SAM é voltado especificamente a casos de uso e arquiteturas sem servidor e permite definir infraestrutura em modelos JSON/YAML compactos e declarativos. O AWS CDK oferece ampla cobertura de todos os serviços da AWS e permite definir infraestrutura de nuvem em linguagens de programação modernas como TypeScript, Python, C# e Java. O AWS SAM e o AWS CDK usam o CloudFormation como mecanismo de provisionamento para pilhas de infraestrutura. Se você prefere definir infraestruturas sem servidor em modelos concisos declarativos, o SAM é a melhor opção. Se você quer definir infraestrutura da AWS em uma linguagem de programação conhecida, recomendamos que você experimente o AWS CDK. Nos dois casos, você pode confiar em implantações de infraestrutura repetíveis e seguras por meio do CloudFormation.

Sim. Você pode sintetizar localmente um aplicativo do AWS CDK em um modelo do CloudFormation e fazer referência ao ID de handler do AWS Lambda na ILC do SAM. Consulte a seção sobre a CLI do SAM no guia do desenvolvedor do CDK para obter mais detalhes.

Custo

O AWS CDK é distribuído nos termos da Licença Apache, Versão 2.0. Consulte LICENSE e NOTICE para obter mais informações.

Não há custo adicional para o AWS CDK. Você paga pelos recursos da AWS (como instâncias do Amazon EC2 ou balanceadores de carga do Elastic Load Balancing) criados com o AWS CDK da mesma forma que pagaria se criasse os recursos manualmente. Você paga apenas pelo que usar, quando usar. Não há taxas mínimas nem compromissos iniciais obrigatórios.