📜  使用Python启动 AWS EC2 实例(1)

📅  最后修改于: 2023-12-03 14:49:50.047000             🧑  作者: Mango

使用Python启动 AWS EC2 实例

Amazon Elastic Compute Cloud (EC2) 是一个可扩展的云计算平台,可更轻松地启动和管理虚拟机实例。在本文中,我们将介绍如何使用Python启动AWS EC2实例。

准备工作

在开始前需要完成以下步骤:

  • 创建AWS账号
  • 安装AWS CLI
  • 配置AWS CLI

安装AWS CLI:

可以通过在终端上运行以下命令来安装AWS CLI:

pip install awscli

配置AWS CLI:

运行以下命令,按照提供的提示配置AWS CLI:

aws configure
使用Python启动AWS EC2实例

确保已经完成了准备工作后,我们现在可以使用Python启动AWS EC2实例:

首先,导入boto3库,这是AWS SDK for Python:

import boto3

接下来,创建一个ec2客户端:

ec2 = boto3.client('ec2')

为了启动一台实例,需要指定一个Amazon Machine Image (AMI)。可以使用以下命令列出可用的AMI:

response = ec2.describe_images(
    Owners=['amazon'],
    Filters=[{'Name': 'description', 'Values': ['Amazon Linux AMI*']}]
)

选择一个AMI并记录其ID和所在区域(此处选择us-west-2区域):

image_id = response['Images'][0]['ImageId']
region = 'us-west-2'

然后,为实例选择一个可用区域,这里选择us-west-2b:

zone = 'us-west-2b'

接着,指定要使用的实例类型(此处选择t2.micro):

instance_type = 't2.micro'

现在,我们需要创建一个安全组,并为其设置规则,以便我们可以连接到该实例。

首先,创建安全组:

security_group = ec2.create_security_group(
    GroupName='my-security-group',
    Description='My security group',
    VpcId='vpc-123456789'
)

然后,为安全组设置规则:

response = ec2.authorize_security_group_ingress(
    GroupId=security_group['GroupId'],
    IpPermissions=[
        {
            'IpProtocol': 'tcp',
            'FromPort': 22,
            'ToPort': 22,
            'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
        }
    ]
)

现在,我们可以使用run_instances方法启动实例:

response = ec2.run_instances(
    ImageId=image_id,
    InstanceType=instance_type,
    KeyName='my-key-pair',
    MaxCount=1,
    MinCount=1,
    NetworkInterfaces=[
        {
            'AssociatePublicIpAddress': True,
            'DeleteOnTermination': True,
            'DeviceIndex': 0,
            'SubnetId': 'subnet-123456789',
            'Groups': [security_group['GroupId']]
        }
    ],
    Placement={'AvailabilityZone': zone}
)

启动实例后,我们可以通过其ID来管理实例,例如,可以使用以下命令停止实例:

instance_id = response['Instances'][0]['InstanceId']
ec2.stop_instances(InstanceIds=[instance_id])

或者,可以使用以下命令删除实例:

ec2.terminate_instances(InstanceIds=[instance_id])
总结

本文介绍了如何使用Python启动AWS EC2实例。此外,还介绍了如何使用boto3库和AWS CLI,以及如何创建安全组和在实例中运行命令。使用AWS EC2,可以更轻松地创建和管理虚拟机实例,从而更好地满足不同的需求。