以编程方式配置EC2实例

时间:2018-12-28 19:46:40

标签: python amazon-web-services amazon-ec2

我有一个AMI,上面装有一些预装的软件。创建新实例时,必须通过SSH进入计算机并根据服务器的使用情况运行一些脚本。

例如:

ssh ubuntu@1.2.3.4 -i aws.pem  && ./type1.sh
ssh ubuntu@5.6.7.8 -i aws.pem  && ./type2.sh

有没有办法使这个过程自动化?我正在使用python。我知道我可以使用boto来支撑服务器,但是我不确定在连接到服务器和运行脚本方面的最佳做法。

1 个答案:

答案 0 :(得分:4)

您无需构建自己的基于python的解决方案,而只需使用在AWS已提供的EC2实例首次启动后运行代码的功能。

创建EC2实例时,您可以提供一些所谓的“用户数据”,其中可以包含在实例首次启动后执行的代码。创建EC2实例的所有方式都是可行的,无论是管理控制台,CLI,API,boto3还是CloudFormation。 AWS文档包含相当广泛的信息,其工作方式如下:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

如果使用boto3创建EC2实例,例如:

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"
)