Вместо того, чтобы создавать собственное решение на основе Python, вы можете просто использовать возможность запуска кода после первой загрузки экземпляра EC2, который уже предоставляет AWS.
При создании экземпляра EC2 вы можете предоставитьнекоторые так называемые «пользовательские данные», которые могут содержать код, который выполняется после первой загрузки экземпляра.Это возможно для всех способов создания экземпляра EC2, будь то консоль управления, CLI, API, boto3
или CloudFormation.Документация AWS содержит довольно обширную информацию о том, как это работает: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html
Если вы создадите свой экземпляр EC2, например, с помощью boto3
, он будет выглядеть следующим образом:
import boto3
ec2_client = boto3.client("ec2")
ec2_client.run_instances(ImageId="ami-abcd1234",
InstanceType="m3.medium",
SubnetId="subnet-abcd1234",
SecurityGroupIds=["sg-abcd1234"],
UserData="/home/ubuntu/type1.sh"
)