Вопросы и ответы по AWS Cloud Development Kit

Общие вопросы

AWS Cloud Development Kit (AWS CDK) – это платформа для разработки программного обеспечения с открытым исходным кодом. На ее основе можно определять облачную инфраструктуру как код с использованием современных языков программирования и выполнять развертывание с помощью AWS CloudFormation.

AWS CDK Command Line Interface (CLI) можно использовать для взаимодействия с приложениями CDK. С помощью CDK CLI можно перечислять стеки, определенные в приложении CDK, синтезировать на их основе шаблоны CloudFormation, выявлять различия между запущенными инстансами стеков и стеками, определенными в коде CDK, а также развертывать стеки в любом публичном регионе AWS.

Платформа AWS CDK используется для разработки проектов AWS CDK, при выполнении которых создаются шаблоны CloudFormation. Проекты AWS CDK можно выполнять с помощью командной строки AWS CDK или в системе непрерывной доставки.

Лучший способ начать работу с AWS CDK – изучить раздел, посвященный началу работы, в руководстве по AWS CDK для разработчиков. Всего за несколько минут вы научитесь определять и развертывать приложения AWS CDK. Более подробное руководство см. на странице https://CDKworkshop.com.

Да, несколько образцов AWS CDK на разных языках программирования можно найти на странице https://github.com/aws-samples/aws-cdk-examples. Образцы также содержатся в руководстве AWS для разработчиков по адресу https://docs.aws.amazon.com/cdk/latest/guide/examples.html.

AWS создает бизнес‑логику пакетов AWS Construct Library на TypeScript и предоставляет привязки к каждому из поддерживаемых языков программирования. Благодаря этому поведение логических структур, созданных AWS CDK, единообразно на всех языках, что позволяет предлагать полный набор пакетов логических структур на всех языках. Весь код в рамках проекта AWS CDK можно писать на наиболее удобном для вас языке программирования, а среда выполнения JavaScript используется для реализации возможностей программирования. Ссылка на проект jsii – https://github.com/aws/jsii.

Открытый исходный код AWS CDK доступен на GitHub по адресу https://github.com/awslabs/aws-cdk.

Чтобы перенести приложение в AWS CDK версии 2, сначала нужно обновить флаги возможностей в cdk.json. Затем следует обновить зависимости и импортированные данные приложения в соответствии с его языком программирования. Подробнее можно узнать по ссылке https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html

Проект по разработке AWS CDK открыт, и свой вклад в базу кода может внести любой желающий. Подробнее рассказано по адресу https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md.

AWS CDK поддерживает JavaScript, TypeScript, Python, Java, C# и Go (в ознакомительной версии для разработчиков). В будущем планируется поддержка других языков для AWS CDK, поэтому голосуйте за предпочитаемый вариант на GitHub.

AWS CDK можно использовать для определения и развертывания ресурсов AWS во всех публичных регионах. Поскольку AWS CDK опирается на сервис CloudFormation, сведения о доступности конкретных ресурсов в регионах AWS см. на странице продуктов и сервисов по регионам.

Поскольку в работе AWS CDK используется сервис CloudFormation, на приложения AWS CDK распространяются те же ограничения, что и на сервис CloudFormation.

AWS Solutions Constructs – это расширение библиотеки с открытым исходным кодом для AWS CDK. AWS Solutions Constructs предоставляет тщательно отобранный набор многофункциональных шаблонов архитектуры, которые созданы с учетом рекомендаций, определяемых концепцией AWS Well‑Architected Framework. Обязательным предварительным требованием для использования AWS Solutions Constructs является установка AWS CDK. Инструкции по добавлению AWS Solutions Constructs в среду AWS CDK приведены в нашем руководстве разработчика.

AWS Construct Library

AWS Construct Library содержит логические структуры AWS CDK, которые представляют собой извлеченную логику облачной инфраструктуры, упакованную для многократного использования. Логические структуры можно определять локально или публиковать с использованием менеджеров пакетов наподобие npm, Maven, NuGet или PyPI для общего доступа в рамках организации.

Мы поддерживаем многие распространенные сервисы и возможности AWS с помощью многофункциональных высокоуровневых логических структур, а также обеспечиваем полную поддержку ресурсов CloudFormation нижнего уровня, в том числе новых ресурсов вскоре после их появления. Мы поддерживаем актуальность AWS Construct Library, автоматически генерируя API уровня ресурсов всякий раз при изменении спецификаций CloudFormation. На основе автоматически сгенерированных API мы предлагаем разработанные вручную абстракции более высокого уровня, благодаря чему работать с тем или иным сервисом становится еще проще. Такие удобные высокоуровневые абстракции доступны пока не для всех сервисов AWS, но мы постоянно добавляем новые возможности, ориентируясь при этом сервисы, наиболее востребованные в современных облачных приложениях. Подробнее рассказано в справке по API AWS Construct Library.

Мы синхронизируем AWS Construct Library со спецификацией ресурсов CloudFormation и добавляем новые возможности CloudFormation в AWS CDK вскоре после их публикации.

Библиотеки логических структур AWS CDK действуют точно так же, как любая другая библиотека. Они употребляются через менеджер пакетов используемого языка программирования. Поддержание актуального состояния библиотек – одна из составляющих стандартного рабочего процесса. Все пакеты поддерживают семантическую систему версий, что позволяет принимать осознанные решения о миграции на новые модели инфраструктуры.

CloudFormation и SAM

AWS CDK можно рассматривать как набор инструментов разработчика, позволяющий использовать все возможности современных языков программирования для определения Infrastructure as Code AWS. При запуске приложений AWS CDK они компилируются в полностью готовые шаблоны JSON/YAML CloudFormation, которые затем отправляются в сервис CloudFormation для распределения. Поскольку AWS CDK использует CloudFormation, доступны все преимущества CloudFormation, такие как безопасное развертывание, автоматическое восстановление предыдущей версии и обнаружение отклонений.

И AWS Serverless Application Model, и AWS CDK создают абстракцию инфраструктуры AWS в виде кода, что упрощает определение облачной инфраструктуры. AWS SAM используется для работы с бессерверными приложениями и архитектурами для определения инфраструктуры в виде компактных декларативных шаблонов JSON / YAML. AWS CDK предлагает поддержку всех сервисов AWS и позволяет использовать для определения облачной инфраструктуры современные языки программирования, такие как TypeScript, Python, C# и Java. И AWS SAM, и AWS CDK используют CloudFormation в качестве механизма выделения ресурсов для стеков инфраструктуры. Если вы предпочитаете определять бессерверную инфраструктуру с использованием сжатых декларативных шаблонов, рекомендуется использовать SAM. Если вы хотите определить инфраструктуру AWS с использованием знакомого языка программирования, рекомендуется воспользоваться AWS CDK. В обоих случаях гарантировано развертывание безопасной воспроизводимой инфраструктуры с помощью CloudFormation.

Да, можно локально синтезировать шаблон CloudFormation на основе приложения AWS CDK и затем сослаться на созданный идентификатор обработчика AWS Lambda в интерфейсе командной строки SAM. Подробные сведения есть разделе руководства по CDK для разработчика, посвященном SAM CLI.

Стоимость

AWS CDK распространяется по лицензии Apache версии 2.0. Подробные сведения есть в документах LICENSE и NOTICE.

Дополнительная плата за AWS CDK отсутствует. Оплачиваются ресурсы AWS (например, инстансы Amazon EC2 или балансировщики нагрузки Elastic Load Balancing), созданные с использованием AWS CDK, точно так же, как при создании вручную. Вы платите только за то, чем пользуетесь, без минимальной оплаты или долгосрочных обязательств.