使用Python启动AWS EC2实例


随着越来越多的公司将运营迁移到云端,对精通Amazon Web Services (AWS)等云服务工程师的需求日益增长。AWS提供的最知名的服务之一EC2(弹性计算云)提供了可扩展的处理能力。由于其庞大的生态系统和易用性,Python经常被用来管理AWS资源,包括启动EC2实例。这篇文章将向您展示如何使用Python启动AWS EC2实例。为了加强我们的理解,我们还将介绍一些真实的场景。

了解AWS EC2和Python Boto3

AWS EC2服务在云中提供可调整的计算能力。它的目标是简化网络规模的云计算,减少客户获取和配置容量所需的摩擦。

我们使用Boto3库,即Amazon Web Services (AWS)的Python软件开发工具包(SDK),来与AWS服务进行通信。它使Python程序员能够创建利用Amazon S3、Amazon EC2等服务的应用程序。

设置您的AWS和Boto3

在开始之前,您必须拥有一个AWS账户,并在您的计算机上设置AWS凭证。安装AWS CLI(命令行界面)并执行aws configure将允许您设置凭证。

必须在您的Python环境中安装Boto3模块。使用pip来完成此操作:

pip install boto3

安装后,您可以在Python程序中导入Boto3来与AWS服务进行通信。

启动AWS EC2实例:分步指南

现在,让我们指导您如何使用Python和Boto3启动EC2实例。

  • 导入Boto3模块

    用Python编写的脚本应该导入boto3包。

import boto3
  • 创建会话

    使用您的AWS登录信息创建一个Boto3会话。

session = boto3.Session(
   aws_access_key_id='YOUR_ACCESS_KEY',
   aws_secret_access_key='YOUR_SECRET_KEY',
   region_name='us-west-2'
)

“YOUR_ACCESS_KEY”和“YOUR_SECRET_KEY”应该分别更改为您的AWS访问密钥和秘密访问密钥。您可以根据您的偏好选择区域。

  • 创建EC2资源对象

    使用会话对象创建一个EC2资源对象。

ec2_resource = session.resource('ec2')
  • 启动EC2实例

    使用create_instances()方法启动EC2实例。

instance = ec2_resource.create_instances(
   ImageId='ami-0c55b159cbfafe1f0',
   MinCount=1,
   MaxCount=1,
   InstanceType='t2.micro'
)

在create_instances()函数中,ImageId是AMI ID,MinCount和MaxCount是启动实例的最低和最大数量,InstanceType是实例的类型。

使用Python启动AWS EC2实例的示例

让我们看看几个EC2实例启动示例。

  • 启动单个EC2实例

    下面的Python代码在“us-west-2”区域启动一个EC2实例。

import boto3

   session = boto3.Session(
      aws_access_key_id='YOUR_ACCESS_KEY',
      aws_secret_access_key='YOUR_SECRET_KEY',
      region_name='us-west-2'
   )

   ec2_resource = session.resource('ec2')

   instance = ec2_resource.create_instances(
      ImageId='ami-0c55b159cbfafe1f0',
      MinCount=1,
      MaxCount=1,
      InstanceType='t2.micro'
   )
   ```

您的AWS登录凭证应替换为“YOUR_ACCESS_KEY”和“YOUR_SECRET_KEY”。当您执行此脚本时,它将使用提供的AMI ID在“us-west-2”区域启动一个“t2.micro”实例。

  • 启动多个EC2实例

    如果您需要启动更多实例,可以轻松更改“MinCount”和“MaxCount”参数。这是一个启动三个实例的示例

import boto3

   session = boto3.Session(
      aws_access_key_id='YOUR_ACCESS_KEY',
      aws_secret_access_key='YOUR_SECRET_KEY',
      region_name='us-west-2'
   )

   ec2_resource = session.resource('ec2')

   instances = ec2_resource.create_instances(
      ImageId='ami-0c55b159cbfafe1f0',
      MinCount=1,
      MaxCount=3,
      InstanceType='t2.micro'
   )

此脚本在“us-west-2”区域启动三个“t2.micro”实例。

  • 添加EC2实例标签

    在启动时,您还可以将标签应用于您的实例。方法如下:

import boto3

   session = boto3.Session(
      aws_access_key_id='YOUR_ACCESS_KEY',
      aws_secret_access_key='YOUR_SECRET_KEY',
      region_name='us-west-2'
   )

   ec2_resource = session.resource('ec2')

   instances = ec2_resource.create_instances(
      ImageId='ami-0c55b159cbfafe1f0',
      MinCount=1,
      MaxCount=1,
      InstanceType='t2.micro',
      TagSpecifications=[
         {
            'ResourceType': 'instance',
            'Tags': [
               {
                  'Key': 'Name',
                  'Value': 'MyInstance'
               },
            ]
         },
      ]
   )

此脚本将名为“MyInstance”的名称标签赋予新启动的EC2实例。

结论

正如我们在本文中所展示的,由于Boto3,使用Python管理AWS资源相对简单。为了避免支付意外费用,请记住有效地管理您的实例。在您完成使用实例后,务必终止它。

这些是很简单的示例,但是可以根据您的需求进行扩展,以涵盖更复杂的设置,例如添加存储、创建安全组或使用不同类型的实例。

对于管理和自动化您的AWS云资源,Python和Boto3提供了一个强大的工具包。只需少量Python知识,您就可以显著简化与AWS服务的交互,从而腾出更多时间进行应用程序开发。

更新于:2023年7月17日

浏览量:298

开启您的职业生涯

通过完成课程获得认证

开始学习
广告