📜  使用Python启动 AWS EC2 实例

📅  最后修改于: 2022-05-13 01:54:55.316000             🧑  作者: Mango

使用Python启动 AWS EC2 实例

在本文中,我们将了解如何使用Python来创建和管理 Amazon Web Services (AWS),例如 Elastic Compute Cloud (EC2)、Simple Storage Service (S3)、Relational Database Service (RDS)。为此,我们将使用Python的 boto3 库,Boto 是一个Python包,它为 Amazon Web Services (AWS) 提供接口。

先决条件:

  • 具有权限的 AWS 账户
  • EC2 基础知识

在Python中安装 boto3 :

default version : pip install boto3
specific version : python3 -m pip install boto3 (as python3 in this case)

设置 AWS EC2 控制台:

为了从Python代码访问 AWS 服务,我们首先需要创建一个用户并使用 Amazon 控制台为他提供编程访问权限。

  • 启动 IAM 控制台
  • 添加用户

在 IAM 控制台中添加用户

  • 然后提供用户名并以编程方式访问它,然后单击下一步。

  • 现在提供与用户相关的必要权限,这个用户可能属于一个组,他们的策略可以直接附加到用户,或者我们可以复制现有用户的策略,或者我们可以直接附加现有策略打算在这里提供。

EC2 权限

  • 标签是可选的,我们可以跳过它,查看权限,最后创建用户。下载 CSV,因为这是最后一次可供下载,该文件包含访问密钥 ID 和密钥,接下来将在代码中使用。

AWS 权限审核页面

现在我们都准备好使用Python代码启动我们的 EC2 实例了。为了与 EC2 实例建立连接,我们使用 boto3 的客户端 API。客户端 API 接受以下参数以与 AWS 服务建立连接。

  • 服务名称:必须建立连接的服务。
  • 区域: Amazon EC2 托管在全球多个位置。根据我们的需要,我们可以选择我们的地区,我们以亚太地区为我们的地区('ap-south-1')。
  • aws_access_key_id: AWS 安全凭证。将下载的 ID 粘贴到空白处。
  • aws_secret_access_key: AWS 安全凭证。将下载的密钥粘贴到空白处。

执行:

Python3
#Python Program for creating a connection
import boto3
  
ec2 = boto3.client('ec2',
                   'ap-south-1',
                   aws_access_key_id='',
                   aws_secret_access_key='')
  
#This function will describe all the instances
#with their current state 
response = ec2.describe_instances()
print(response)


Python3
#Python Program for creating a connection
import boto3
  
#Function for connecting to EC2 
ec2 = boto3.client('ec2',
                   'ap-south-1',
                   aws_access_key_id='',
                   aws_secret_access_key='')
  
#Function for running instances
conn = ec2.run_instances(InstanceType="t2.micro",
                         MaxCount=1,
                         MinCount=1,
                         ImageId="ami-02d55cb47e83a99a0")
print(conn)


输出

通过 cmd 启动 EC2 实例

创建实例

ec2.run_instances使用您有权访问的 AMI 启动指定数量的实例。它提供了多种启动配置,但我们可以使用以下几个参数启动实例。

  • InstanceType:您指定的实例类型决定了用于您的实例的主机的硬件。每种实例类型提供不同的计算、内存和存储能力,并根据这些能力分组为实例系列。但是,AWS 在免费套餐限制中免费提供“t2.micro”。
  • MaxCount:要启动的最大实例数。如果 MaxCount > 目标可用区中的可用实例,则它会启动大于 MinCount 的最大实例数。
  • MinCount:要启动的最小实例数。如果目标可用区中的可用实例 < MinCount,则不会启动任何实例。
  • ImageId:用于启动实例的 AMI 的 ID。对于我们的案例,我们选择了 Ubuntu Server 18.04 LTS (HVM),SSD 卷类型 (ami-02d55cb47e83a99a0)。

执行:

Python3

#Python Program for creating a connection
import boto3
  
#Function for connecting to EC2 
ec2 = boto3.client('ec2',
                   'ap-south-1',
                   aws_access_key_id='',
                   aws_secret_access_key='')
  
#Function for running instances
conn = ec2.run_instances(InstanceType="t2.micro",
                         MaxCount=1,
                         MinCount=1,
                         ImageId="ami-02d55cb47e83a99a0")
print(conn)

输出

通过 cmd 启动 EC2 实例