使用 Python 启动 AWS EC2 实例

pythonawscloud computing

随着全球越来越多的公司将业务转移到云端,对精通 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'
)

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

使用 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'
               },
            ]
         },
      ]
   )

此脚本为新启动的 EC2 实例提供了"MyInstance"名称标签。

结论

正如我们在本文中所展示的,借助 Boto3,使用 Python 管理 AWS 资源相对简单。为避免支付不可预见的费用,请记住有效地管理您的实例。使用完实例后,请务必结束它。

这些是相当简单的示例,但它们可以开发为涵盖更复杂的设置,例如添加存储、创建安全组或根据您的要求使用各种实例类型。

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


相关文章