[PYTHON] Erstellen Sie Ihre eigene VPC mit einem einzigen öffentlichen Subnetz Nur mit boto

Wenn Sie eine VPC mit der Verwaltungskonsole von Amazon VPC erstellen,

Sie können aus vier Vorlagen auswählen (Stand August 2012), aber wie können Sie diese mit der API erstellen, um Ihre eigenen zu erstellen? Es ist eine Geschichte. Ist es nicht cooler und reproduzierbarer mit einem einzigen Befehl als mit einer Konsole?

Lassen Sie uns vorerst die erste "VPC mit nur einem einzigen öffentlichen Subnetz" erstellen. Die Sprache ist Python und die Bibliothek ist natürlich boto. Klicken Sie hier, um die VPC-Referenz von boto anzuzeigen (http://docs.pythonboto.org/en/latest/ref/vpc.html).

import boto.ec2
from boto.vpc import VPCConnection

#Region ist ap-northeast-1
ec2region = boto.ec2.get_region("ap-northeast-1")

def launch_vpc():
    conn = VPCConnection(region=ec2region)

    #Erstellen Sie eine VPC
    vpc = conn.create_vpc('10.0.0.0/16')

    #Richten Sie das Internet-Gateway ein
    igw = conn.create_internet_gateway()
    conn.attach_internet_gateway(igw.id, vpc.id)

    #Erstellen Sie ein Subnetz
    subnet = conn.create_subnet(vpc.id, "10.0.0.0/24")

    #Routing einrichten
    #Filter siehe unten
    # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeRouteTables.html
    route_table = conn.get_all_route_tables(filters=(("vpc-id", vpc.id),))[0]
    conn.create_route(route_table.id, "0.0.0.0/0", gateway_id=igw.id)
    print "Created VPC %s" % vpc.id

Es sieht so aus, aber genau genommen unterscheidet es sich ein wenig von der Vorlage.

In der Vorlage kann die Hauptrouting-Tabelle nicht ausgehen, und eine Routing-Tabelle zum Ausgehen wird separat erstellt. Im obigen Code wird jedoch ein Port zum Ausgehen für die Haupt-Routing-Tabelle bereitgestellt. Ich bin. Es wird nur eine Routing-Tabelle erstellt. Ich denke, dies ist einfacher zu verwenden, wenn Sie möchten, dass alle Server ausgehen.

Der schwierige Teil bestand darin, die der erstellten VPC zugewiesene Routing-Tabelle zuzuweisen. Ich könnte dies tun, indem ich den Filter für get_all_route_tables setze, aber ich konnte nicht dorthin gelangen. In DescribeRouteTable Reference gibt es viele Arten von Filtern. Wenn Sie boto verwenden, sollten Sie auch die API-Referenz auf der AWS-Seite überprüfen.

conn.get_all_route_tables(filters=(("vpc-id", vpc.id),))[0]

Jetzt können Sie die Routing-Tabelle abrufen, in der die VPC-ID mit vpc.id übereinstimmt.

Übrigens dachte ich zuerst daran, in Ruby zu schreiben, aber das AWS SDK für Ruby unterstützt VPC nicht. Wenn Sie AWS verwenden, ist es schließlich Python!

Recommended Posts

Erstellen Sie Ihre eigene VPC mit einem einzigen öffentlichen Subnetz Nur mit boto
Versuchen Sie, Ihr eigenes AWS-SDK mit bash zu erstellen
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
Erstellen Sie schnell Ihr eigenes Modul mit setuptools (Python)
Erstelle deinen eigenen Musik-Player mit Bottle0.13 + jPlayer2.5!
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Wenn Sie 1 Milliarde private Schlüssel erstellen, können Sie mit hoher Wahrscheinlichkeit einen öffentlichen Schlüssel einschließlich Ihres Namens erstellen.
Machen Sie mit Python mehrere numerische Höhendaten zu einem einzigen Bild
So erstellen Sie Ihre eigene Domain-Site mit Heroku (kostenloser Plan)
[Python] Erstelle deinen eigenen LINE-Bot
Machen Sie Ihr eigenes Handbuch. [Linux] [Mann]
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Löse dein eigenes Labyrinth mit Q-Lernen
Machen wir einen Blockbruch mit wxPython
Erstellen Sie ein Empfehlungssystem mit Python
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Erstellen Sie mit PySide einen Modelliterator
Trainiere UGATIT mit deinem eigenen Datensatz
Machen Sie eine schöne Grafik mit Plotly
Löse dein eigenes Labyrinth mit DQN
Lassen Sie uns ein Bilderkennungsmodell mit Ihren eigenen Daten erstellen und spielen!
[Streamlit] Ich hasse JavaScript, deshalb erstelle ich eine Webanwendung nur mit Python