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.
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.
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.
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.
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.
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