Как создать VPC с помощью Python Boto3 в Ubuntu
Boto3 — это SDK Amazon Web Services (AWS) для Python. Это библиотека Python, которая позволяет пользователям или разработчикам создавать, настраивать и управлять сервисами и ресурсами AWS. Boto3 предоставляет API для сервисов AWS, который можно использовать для управления сервисами и ресурсами AWS, такими как EC2, RDS, S3 и т. д.
Чтобы узнать больше о Boto3, вы можете посетить его официальный сайт здесь.
Прежде чем мы продолжим, я предполагаю, что вы знакомы с VPC. Если нет, вы можете нажать здесь, чтобы узнать, как создать VPC из консоли AWS.
В этой статье мы увидим, как установить библиотеку Boto3 и использовать ее для создания простого VPC вместе с зависимыми от него компонентами в AWS. Мы создадим общедоступную подсеть в VPC.
Предпосылки
- Аккаунт AWS (создайте, если у вас его нет)
- Основное понимание VPC
- Основное понимание Python
- Python доступен в системе
Что мы будем делать
- Установить Boto3
- Знайте нужный метод
- Создайте VPC с помощью Python Boto3.
Установить Бото3
Python входит в состав Ubuntu 18.04 Server по умолчанию, поэтому вам не нужно его устанавливать.
Чтобы проверить версию Python в вашей системе, используйте следующую команду.
какой python
/usr/bin/python --version
ИЛИ
питон --версия
Если у вас нет pip и вы используете Ubuntu 18.04, выполните следующую команду, чтобы сначала обновить локальное хранилище.
судо подходящее обновление
Для установки pip используйте следующую команду
sudo apt установить python-pip
Чтобы проверить установленную версию Pip, выполните следующую команду.
пип --версия
Если у вас есть python и pip, вы можете установить Boto3.
Установка Boto3 очень проста и понятна. Чтобы установить Boto3, используйте следующую команду.
pip install boto3
Чтобы проверить, установлен ли Boto3, и проверить его версию, выполните следующую команду.
пип-шоу бото3
Знать необходимые методы
Для создания VPC и зависимых от него компонентов мы будем использовать следующие методы.
- создать_vpc
- create_route_table
- создать_интернет_шлюз
- создать_подсеть
- связать_с_подсетью
Теперь давайте посмотрим на методы со списком допустимых параметров. Мы не будем использовать все параметры, но вы можете попробовать, если хотите.
Синтаксис запроса метода 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: диапазон сети IPv4 для VPC в нотации CIDR. Это обязательное поле, и без него нельзя создать VPC.
Синтаксис запроса метода create_route_table
route_table = ec2.create_route_table( DryRun=True|False, VpcId='string' )
- VpcId : идентификатор VPC. Это обязательное поле, которое используется для создания таблицы маршрутов в указанном 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.
Синтаксис запроса метода associate_with_subnet
route_table_association = route_table.associate_with_subnet( DryRun=True|False, SubnetId='string', GatewayId='string' )
- SubnetId: идентификатор подсети.
Или - GatewayId : идентификатор интернет-шлюза или виртуального частного шлюза.
Чтобы создать VPC, создайте \vpc.py\ со следующим блоком кода.
Убедитесь, что вы изменили значение \aws_access_key_id_value\ и \aws_secret_access_key_value\ на свои собственные access_key_id и access_key_value соответственно. Также измените значение \region_name\.
Если вы хотите, вы можете изменить значения CidrBlock для \create_vpc\ и \create_subnet\ или оставить как есть.
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, используя следующую команду.
Python vpc.py
Вы можете проверить, было ли создано VPC из консоли AWS.
На приведенном выше снимке экрана видно, что VPC с указанным CIDR и именем создан. Вы можете проверить наличие таких компонентов, как подсеть, интернет-шлюз, таблица маршрутов.
Заключение
В этой статье мы увидели, как создать VPC с общедоступной подсетью. Мы создали таблицу маршрутов, интернет-шлюз, подсеть в VPC. Мы увидели, как подсеть может быть связана с таблицей маршрутов, которая имеет общедоступный маршрут к интернет-шлюзу. Теперь вы можете настроить этот код и создать VPC с несколькими подсетями, связать их с таблицей маршрутов и иметь общедоступные или частные подсети в соответствии с вашими требованиями. Чтобы создать частную подсеть, вам потребуется создать шлюз Nat и связать его с подсетью. Эта ассоциация затем сделает подсеть частной с исходящим подключением к Интернету.