如何在 Ubuntu 上使用 Python Boto3 创建 VPC
Boto3 是适用于 Python 的 Amazon Web Services (AWS) SDK。它是允许用户或开发人员创建、配置和管理 AWS 服务和资源的 Python 库。 Boto3 为 AWS 服务提供了 API,可用于管理 EC2、RDS、S3 等 AWS 服务和资源。
要了解有关 Boto3 的更多信息,您可以在此处访问其官方网站。
在我们继续之前,我假设您熟悉 VPC。如果没有,您可以单击此处了解如何从 AWS 控制台创建 VPC。
在本文中,我们将了解如何安装 Boto3 库并使用它在 AWS 中创建一个简单的 VPC 及其依赖组件。我们将在 VPC 中创建一个公共子网。
先决条件
- AWS 帐户(如果没有,请创建)
- 对 VPC 的基本了解
- 对 Python 的基本了解
- 系统支持Python
我们将要做什么
- 安装 Boto3
- 知道需要的方法
- 使用 Python Boto3 创建 VPC
安装 Boto3
Python 在 Ubuntu 18.04 Server 中默认自带,所以你不需要安装它。
要检查系统上的 Python 版本,请使用以下命令。
哪个 python
/usr/bin/python --version
或者
蟒蛇--版本

如果您没有 pip 并且使用的是 Ubuntu 18.04,请执行以下命令首先更新本地存储库。
须藤更新

要安装 pip,请使用以下命令
sudo apt 安装 python-pip

要检查安装的 Pip 版本,请执行以下命令。
pip --version

一旦你有了 python 和 pip,你就可以安装 Boto3。
安装 Boto3 非常简单直接。要安装 Boto3,请使用以下命令。
pip install boto3
要检查是否安装了 Boto3 并检查其版本,请执行以下命令。
点显示boto3

了解所需的方法
要创建 VPC 及其依赖组件,我们将使用以下方法。
- 创建_vpc
- 创建路由表
- 创建互联网网关
- 创建子网
- associate_with_subnet
现在,让我们看看这些方法及其可接受的参数列表。我们不会使用所有参数,但如果您愿意,可以尝试一下。
create_vpc 方法的请求语法
response = client.create_vpc(
CidrBlock='string',
AmazonProvidedIpv6CidrBlock=True|False,
Ipv6Pool='string',
Ipv6CidrBlock='string',
DryRun=True|False,
InstanceTenancy='default'|'dedicated'|'host',
Ipv6CidrBlockNetworkBorderGroup='string'
)
- CidrBlock:VPC 的 IPv4 网络范围,采用 CIDR 表示法。这是必填字段,没有它就无法创建 VPC。
create_route_table 方法的请求语法
route_table = ec2.create_route_table(
DryRun=True|False,
VpcId='string'
)
- VpcId:VPC 的 ID。这是必填字段,用于在指定的 VPC 中创建路由表
create_internet_gateway 方法的请求语法
response = client.create_internet_gateway(
DryRun=True|False
)
每个 VPC 都有一个互联网网关。这将与 VPC 相关联
create_subnet 方法的请求语法
subnet = ec2.create_subnet(
AvailabilityZone='string',
AvailabilityZoneId='string',
CidrBlock='string',
Ipv6CidrBlock='string',
OutpostArn='string',
VpcId='string',
DryRun=True|False
)
- CidrBlock:子网的 IPv4 网络范围,采用 CIDR 表示法。这用于细分 VPC。
- VpcId:VPC的ID。
associate_with_subnet 方法的请求语法
route_table_association = route_table.associate_with_subnet(
DryRun=True|False,
SubnetId='string',
GatewayId='string'
)
- SubnetId:子网的 ID。
或者 - GatewayId:互联网网关或虚拟专用网关的 ID。
要创建 VPC,请使用以下代码块创建 \vpc.py\。
确保将 \aws_access_key_id_value\ 和 \aws_secret_access_key_value\ 的值分别更改为您自己的 access_key_id 和 access_key_value。同时更改 \region_name\ 的值。
如果您愿意,您可以更改 \create_vpc\ 和 \create_subnet\ 的 CidrBlock 值,也可以保持原样。
vim vpc.py
import boto3
ec2 = boto3.resource('ec2', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT',
aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT',
region_name='AWS-Region')
vpc = ec2.create_vpc(CidrBlock='192.168.0.0/16')
# Assign a name to the VPC
vpc.create_tags(Tags=[{"Key": "Name", "Value": "my_vpc"}])
vpc.wait_until_available()
print(vpc.id)
# Create and Attach the Internet Gateway
ig = ec2.create_internet_gateway()
vpc.attach_internet_gateway(InternetGatewayId=ig.id)
print(ig.id)
# Create a route table and a public route to Internet Gateway
route_table = vpc.create_route_table()
route = route_table.create_route(
DestinationCidrBlock='0.0.0.0/0',
GatewayId=ig.id
)
print(route_table.id)
# Create a Subnet
subnet = ec2.create_subnet(CidrBlock='192.168.1.0/24', VpcId=vpc.id)
print(subnet.id)
# associate the route table with the subnet
route_table.associate_with_subnet(SubnetId=subnet.id)
现在,要创建具有上述指定配置的 VPC,请使用以下命令执行 python 脚本。
蟒蛇vpc.py
您可以验证是否已从 AWS 控制台创建 VPC。

在上面的截图中,您可以看到具有指定CIDR 和名称的VPC 已经创建。您可以检查子网、Internet 网关、路由表等组件。
结论
在本文中,我们了解了如何使用公有子网创建 VPC。我们在 VPC 中创建了路由表、Internet 网关、子网。我们看到了子网如何与具有到 Internet 网关的公共路由的路由表相关联。您现在可以自定义此代码并创建具有多个子网的 VPC,将它们与路由表相关联,并根据您的要求拥有公共或私有子网。要创建私有子网,您需要创建一个 Nat 网关并将其与子网相关联。然后,此关联将使子网成为专用子网,并与 Internet 建立传出连接。