Verwalten Sie AWS mit der Python-Bibliothek Boto

Möglicherweise nimmt die Anzahl der Stellen zu, an denen AWS für Webdienste usw. verwendet wird. Und wie Sie wissen, stellt AWS auch Konsolenbefehle und APIs bereit, die von Bibliotheken in verschiedenen Sprachen gesteuert werden können.

Vor kurzem gab es beim Start, für den ich arbeite, zum Beispiel beim Starten einer neuen Instanz ein Verfahren, um eine Instanz in die Sicherheitsgruppe aufzunehmen, aber ich möchte dies automatisieren! Weil es nervt und ich vergesse! Deshalb habe ich das Skript in Python geschrieben.

Verwenden Sie Boto

Mit der Python-Bibliothek Boto ist es daher einfacher, diese Instanzen zu starten und Sicherheitsgruppen hinzuzufügen. Daher möchte ich Ihnen einen kurzen Überblick über diese Boto-Bibliothek geben.

Dinge notwendig

Lassen Sie uns einen Auth-Schlüssel für AWS ausgeben. Bitten Sie sie, einen Schlüssel auszugeben, während Sie das unten stehende Hilfeverfahren befolgen.

Versuchen Sie eine Verbindung herzustellen

Lassen Sie uns zunächst mit Boto eine Verbindung zu AWS herstellen. In meinem Fall habe ich wie folgt geschrieben.

connection = boto.ec2.connect_to_region(
    REGION,
    aws_access_key_id=YOUR_ACCESS_KEY,
    aws_secret_access_key=YOUR_SECRET_KEY)

Eines der Dinge, von denen ich ein wenig abhängig bin, ist die Angabe der Region. Bei der Angabe von "Region" muss beispielsweise "ap-northeast-1" angegeben werden.

Wenn Sie "connect_to_region" verwenden, wird eine Instanz ausgegeben, die den Eingang zur Verbindung darstellt. Zukünftige Operationen werden grundsätzlich von hier aus durchgeführt.

Versuchen Sie, jede IP in der Sicherheitsgruppe festzulegen

Lassen Sie uns beispielsweise eine Liste der derzeit vorhandenen Sicherheitsgruppen abrufen.

security = connection.get_all_security_groups(groupnames=['foo', 'bar'])

Auf diese Weise können Sie jede Sicherheitsgruppe abrufen. Ich habe es nicht im Detail untersucht, aber wenn Sie es nur mit "Gruppennamen" angeben, wird eine Instanz ausgegeben, um eine Verbindung zu jeder Sicherheitsgruppe herzustellen. Wenn Sie beispielsweise die erste Gruppe verwenden möchten, sieht sie wie folgt aus.

security[0].authorize(
    ip_protocol="tcp",
    from_ports=ps[1],
    to_port=ps[1],
    cidr_ip="YOUR.IP/32")

Übrigens kann man leicht vergessen, dass ein Fehler zurückgegeben wird, wenn Sie bei der Angabe von "cidr_ip" nicht "/ 32" usw. hinzufügen. Wenn die entsprechende IP bereits in der Sicherheitsgruppe vorhanden ist, wird ein Fehler zurückgegeben. Daher müssen Sie versuchen, wie unten gezeigt.

try:
    # do it
except EC2ResponseError, e:
    if e.status == 400:
        print("No Problem!!")
    else:
        raise e

Übrigens, wenn dry_run erfolgreich ist, scheint der Statuscode von 412 zurückgegeben zu werden.

Schließlich

Als aktuelles Schlüsselwort ist die Automatisierung in den Vordergrund gerückt. Wenn Sie ein Venture-Unternehmen sind, verwenden Sie möglicherweise AWS in Erwartung einer plötzlichen Skalierung. Es ist jedoch schwierig, AWS einzeln zu treffen. Aber zum Glück hat AWS viele APIs wie diese. Zuvor habe ich auch eine Instanz eingerichtet.

Wenn Sie eine solche Bibliothek verwenden und die übliche Prozedur in einen Befehl umwandeln, wird das AWS-Geschäft beschleunigt. Warum probierst du es nicht in deiner eigenen Sprache aus?

Recommended Posts

Verwalten Sie AWS mit der Python-Bibliothek Boto
Boto3-API (AWS-Ressourcen mit Python-Bibliothek bearbeiten), die häufig privat verwendet wird
Verwalten Sie Cron-Jobs mit Python
S3-Betrieb mit Python Boto3
Rufen Sie die API mit python3 auf.
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Zeigen Sie nur die Ressourcen an, die beim Erwerb von AWS-Ressourcen mit Boto3 erstellt wurden
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Führen Sie die Intelligenz Ihrer eigenen Python-Bibliothek mit VScode aus.
Was können Sie mit den Standardstatistiken der Python-Bibliothek tun?
[Paketwolke] Verwalten Sie Python-Pakete mit der Paketwolke
Extrahieren Sie die xz-Datei mit Python
Holen Sie sich die AWS-Konto-ID mit boto3
Holen Sie sich das Wetter mit Python-Anfragen
Finden Sie die Bearbeitungsentfernung (Levenshtein-Entfernung) mit Python
Klicken Sie mit Python auf die Etherpad-Lite-API
boto3 (AWS SDK für Python) Hinweis
Ich mochte den Tweet mit Python. ..
[HyperledgerIroha] Abfrage mit Python-Bibliothek
Verwalten Sie jede Python-Version mit Homebrew
Beherrsche den Typ mit Python [Python 3.9 kompatibel]
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Verwalten Sie Ihre Daten mit AWS RDS
Machen Sie die Python-Konsole mit UNKO bedeckt
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Hinter dem Flyer: Docker mit Python verwenden
Überprüfen Sie die Existenz der Datei mit Python
[Python] Ruft den Variablennamen mit str ab
[Python] Runden Sie nur mit dem Operator ab
Zeigen Sie Python 3 im Browser mit MAMP an
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Lesen wir die RINEX-Datei mit Python ①
Verwenden Sie die Verschlüsselung der Verschlüsselungsbibliothek mit dem Python-Image von Docker
Arbeiten mit OpenStack mit dem Python SDK
Was ist "Mahjong" in der Python-Bibliothek? ??
Ich möchte mit aws mit Python spielen
Laden Sie mit Python Dateien im Web herunter
Erste Schritte mit Dynamo von Python Boto
Ich erhalte einen Python No-Modul mit dem Namen 'Encodings' mit dem Befehl aws
[AWS] Verknüpfen Sie Lambda und S3 mit boto3
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew
Lernen Sie das Entwurfsmuster "Singleton" mit Python
[Python] Betreiben Sie den Browser automatisch mit Selenium
S3 serverseitige Verschlüsselung SSE mit Python boto3
Verwalten Sie mehrere Python-Versionen mit Update-Alternativen (Ubuntu)
Berühren Sie AWS mit Serverless Framework und Python
Lernen Sie das Designmuster "Facade" mit Python
Der Weg zum Kompilieren zu Python 3 mit Thrift
Stellen Sie die von Eigen of C ++ erstellte Bibliothek mit Boost.Numpy in Python zur Verfügung.
Anzeige von Positionsinformationsdaten in Python - Versuchen Sie, mit der Kartenanzeigebibliothek (Folium) zu zeichnen -
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"