Я начал следить за новостями AWS CDK (Cloud Development Kit) и документацию на некоторое время. Обычно моя ленивая стратегия, когда запущен новый продукт AWS, я, наконец, решил, что хочу начать использовать его и создать что-то, что я знаком, а также нахожу полезным.
Один из моих любимых продуктов AWS – EC2 по нескольким причинам:
- Compute является универсальным, у него есть возможность сделать много вещей с запущенным сервером Linux Отказ
- Администрация EC2 в AWS может быть гораздо более упругой, есть несколько дополнений от диспетчера систем AWS, который мне нравится использовать:
- Нет больше SSH!, AWS SSM предоставляет Менеджер заседаний Вместо этого это удобно веб-консоль, CLI и API.
- Магазин параметра удобна для сохранения значений конфигурации в безопасном месте за пределами экземпляра.
- Пользовательские данные для обеспечения, потому что какой-то скрипт Bash с несколькими командами всегда получает работу.
- Эластичные IPS (также известный как публичный IP), вероятно, самый простой способ подключения вашего приложения в Интернет!
- Amazon Linux 2, еще одна вещь, чтобы беспокоиться о том, что AWS поддерживает красную/тоце, как распределение.
- Все вкусности EBS и снимков.
- Спочные экземпляры, поскольку запущенность ваших серверов может быть действительно доступным, если ваш сервис достаточно умный, чтобы обрабатывать прерывания.
Итак, я решил развернуть один экземпляр из Python Code с использованием CDK со всеми прохладительными вещами AWS, чтобы легко управлять примерно в 60 линиях кода.
Это фрагмент того, что вы собираетесь найти, Создание экземпляра :
instance = ec2.Instance(self, "Instance", instance_type=ec2.InstanceType("t3.nano"), machine_image=amzn_Linux, vpc = vpc, role = role )
Одна общая проблема при использовании Пользовательские данные Чтобы установить программное обеспечение, которое в конечном итоге он попадает в предел, активы CDK позволяет вызывать этот скрипт из отдельного файла, а также обрабатывает управление активами в S3 для нас.
asset = Asset(self, "Asset", path=os.path.join(dirname, "configure.sh")) local_path = instance.user_data.add_s3_download_command( bucket=asset.bucket, bucket_key=asset.s3_object_key ) instance.user_data.add_execute_file_command( file_path=local_path )
Это полный код примера для получения этого экземпляра и работает:
Пример кода экземпляра EC2
Я надеюсь, что это дает вам представление о том, насколько мощный CDK с точки зрения Описание инфраструктуры и количество времени, которое сохраняет, если вы, где используете Python SDK или CloudFormation ранее.
Оригинал: “https://dev.to/aws-builders/aws-cdk-coding-a-virtual-machine-in-the-cloud-9de”