Wie man eine VPC mit Python Boto3 auf Ubuntu erstellt

Boto3 ist das Amazon Web Services (AWS) SDK für Python. Es ist eine Python-Bibliothek, mit der Benutzer oder Entwickler AWS-Dienste und -Ressourcen erstellen, konfigurieren und verwalten können. Boto3 bietet eine API für AWS-Dienste, mit der sich AWS-Dienste und -Ressourcen wie EC2, RDS, S3 usw. verwalten lassen.

Um mehr über Boto3 zu erfahren, kannst du die offizielle Website hier besuchen.

Bevor wir fortfahren, gehe ich davon aus, dass du mit VPC vertraut bist. Wenn nicht, kannst du hier klicken, um zu erfahren, wie du eine VPC über die AWS-Konsole erstellst.

In diesem Artikel sehen wir uns an, wie wir die Boto3-Bibliothek installieren und mit ihr eine einfache VPC zusammen mit ihren abhängigen Komponenten in AWS erstellen. Wir werden ein öffentliches Subnetz in der VPC erstellen.

Vorraussetzungen

  1. AWS-Konto (Erstelle wenn du noch keines hast)
  2. Grundlegendes Verständnis von VPC
  3. GrundlegendesVerständnis von Python
  4. Python ist auf dem System verfügbar

Was wir tun werden

  1. Boto3 installieren
  2. Die erforderliche Methode kennen
  3. Eine VPC mit Python Boto3 erstellen

Boto3 installieren

Python ist standardmäßig in Ubuntu 18.04 Server enthalten, du brauchst es also nicht zu installieren.

Um die Python-Version auf deinem System zu überprüfen, verwende den folgenden Befehl.

welches python
/usr/bin/python –version

ODER

python –version

Python-Version prüfen

Wenn du pip nicht hast und Ubuntu 18.04 verwendest, führe den folgenden Befehl aus, um zunächst das lokale Repo zu aktualisieren.

sudo apt update

Pakete aktualisieren

Um pip zu installieren, verwende den folgenden Befehl

sudo apt install python-pip

Install python Pip

Um die installierte Version von Pip zu überprüfen, führe folgenden Befehl aus.

pip –version

PIP-Version prüfen

Sobald du python und pip installiert hast, kannst du Boto3 installieren.

Die Installation von Boto3 ist sehr einfach und unkompliziert. Um Boto3 zu installieren, verwende den folgenden Befehl.

pip install boto3

Boto3 mit pip installieren

Um zu überprüfen, ob Boto3 installiert ist und welche Version es hat, führst du den folgenden Befehl aus.

pip show boto3

pip show boto3

Kenne die erforderlichen Methoden

Um eine VPC und ihre abhängigen Komponenten zu erstellen, verwenden wir die folgenden Methoden.

  1. create_vpc
  2. create_route_table
  3. create_internet_gateway
  4. create_subnet
  5. associate_with_subnet

Schauen wir uns nun die Methoden mit ihrer Liste der zulässigen Parameter an. Wir werden nicht alle Parameter verwenden, aber du kannst es ausprobieren, wenn du willst.

Anfrage-Syntax der create_vpc-Methode

response = client.create_vpc(
    CidrBlock='string',
    AmazonProvidedIpv6CidrBlock=True|False,
    Ipv6Pool='string',
    Ipv6CidrBlock='string',
    DryRun=True|False,
    InstanceTenancy='default'|'dedicated'|'host',
    Ipv6CidrBlockNetworkBorderGroup='string'
)
  1. CidrBlock: Der IPv4-Netzwerkbereich für den VPC in CIDR-Notation. Dies ist ein Pflichtfeld und ohne dieses Feld kann kein VPC erstellt werden.

Anfrage-Syntax der create_route_table-Methode

route_table = ec2.create_route_table(
    DryRun=True|False,
    VpcId='string'
)
  1. VpcId:Die ID des VPCs. Dies ist ein Pflichtfeld und wird verwendet, um eine Route Table in der angegebenen VPC zu erstellen.

Anfragesyntax der Methode create_internet_gateway

response = client.create_internet_gateway(
    DryRun=True|False
)

Jeder VPC hat ein einzelnes Internet-Gateway. Dieses wird mit dem VPC verknüpft.

Anfrage Syntax der create_subnet Methode

subnet = ec2.create_subnet(
    AvailabilityZone='string',
    AvailabilityZoneId='string',
    CidrBlock='string',
    Ipv6CidrBlock='string',
    OutpostArn='string',
    VpcId='string',
    DryRun=True|False
)
  1. CidrBlock: Der IPv4-Netzwerkbereich für das Subnetz in CIDR-Notation. Dies wird zur Unterteilung der VPC verwendet.
  2. VpcId: Die ID des VPCs.

Anfrage Syntax der associate_with_subnet Methode

route_table_association = route_table.associate_with_subnet(
    DryRun=True|False,
    SubnetId='string',
    GatewayId='string'
)
  1. SubnetId: Die ID des Subnetzes.
    Oder
  2. GatewayId: Die ID des Internet-Gateways oder virtuellen privaten Gateways.

Eine VPC mit Python Boto3 erstellen

Um einen VPC zu erstellen, erstelle „vpc.py“mit dem folgenden Code-Block.

Achtedarauf, dass du den Wert von „aws_access_key_id_value“ und „aws_secret_access_key_value“ mit deiner eigenen access_key_id bzw. access_key_value änderst. Ändere auch den Wert von „region_name“.

Wenn du willst, kannst du die Werte von CidrBlock für „create_vpc“ und „create_subnet“ ändern, oder du kannst sie so lassen, wie sie sind.

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)

AWS VPS mit Boto3 erstellen

Um nun einen VPC mit der oben angegebenen Konfiguration zu erstellen, führe das Python-Skript mit dem folgenden Befehl aus.

python vpc.py

Python-Skript ausführen

Du kannst in der AWS-Konsole überprüfen, ob die VPC erstellt wurde.

VPC in AWS mit Python erstellt

Im obigen Screenshot kannst du sehen, dass die VPC mit der angegebenen CIDR und dem Namen erstellt worden ist. Du kannst die Komponenten wie Subnet, Internet Gateway und Route Table überprüfen.

Fazit

In diesem Artikel haben wir gesehen, wie man einen VPC mit öffentlichem Subnetz erstellt. Wir haben eine Routentabelle, ein Internet-Gateway und ein Subnetz in der VPC erstellt. Wir haben gesehen, wie ein Subnetz mit der Routentabelle verknüpft werden kann, die eine öffentliche Route zu einem Internet-Gateway hat. Du kannst diesen Code nun anpassen und eine VPC mit mehreren Subnetzen erstellen, sie mit der Routentabelle verknüpfen und je nach Bedarf öffentliche oder private Subnetze haben. Um ein privates Subnetz zu erstellen, musst du ein Nat Gateway erstellen und es mit dem Subnetz verknüpfen. Durch diese Zuordnung wird das Subnetz privat und hat eine ausgehende Verbindung zum Internet.

Das könnte dich auch interessieren …