AWS-Ressourcen mit Python bereitstellen, Teil 1 AWS Boto3 installieren und konfigurieren
AWS-Nutzer können Ressourcen in der AWS-Public-Cloud auf verschiedenen Wegen provisionieren. Die programmatische Variante ist vor allem für Entwickler und in DevOps-Szenarien erste Wahl. Zu den zahleichen unterstützten SDKs gehört auch Boto3 für Python.
Anbieter zum Thema

AWS stellt SDKs für fast alle gängige Programmiersprachen – darunter Java, Node.JS, Browser (Javascript), PHP, Python, Ruby, Go, C++ und .Net (C#) – zur Verfügung. Dieser und folgende Workshops dieser Reihe stellen die wichtigsten SDKs vor, beginnend mit Python.
Damit knüpfen wir auch an unseren Python-Workshop an. Denn nachdem Python-Einsteiger mit den wichtigsten Programmierprinzipien, Datentypen, Kontrollstrukturen, Bibliotheken und dem Objekt-Modell von Python vertraut sind, möchten sie sicherlich in die moderne App-Entwicklung einsteigen und keine Fibonacci-Folgen in rekursive Funktionen gießen.
Boto3 bereitstellen
Die Python-SDK für AWS wird durch das Software-Paket Boto bereitgestellt, genauer gesagt Boto3 für Python 3. Verwendet man als Entwicklungsumgebung eine EC2-Instanz auf Basis von Amazon Linux oder Amazon Linux 2, sind Build-Utitilies, AWS-CLI und Entwicklungsumgebungen bereits voreingestellt. Dies gilt auch für Python 3 und die wichtigsten Paketquellen, sodass sich Boto3 einfach mit …
pip install boto3
… installieren lässt.
Der Quellcode von Boto3 ist auch auf GibHub verfügbar. Auf einem „nackten“ Linux muss man Python 3, Pip und Boto nacheinander manuell installieren. Wir zeigen dies exemplarisch für alle mit Red Hat verwandten Distributionen (ebenfalls auf Basis vom Amazon Linux). Dieses wird nicht nur als EC2-AMI sondern auch als virtuelle Maschine für VMware, KVM, VirtualBox und Hyper-V zum Download bereitgestellt.
Noch einfacher ist das Bereitstellen von Amazon Linux als Docker-Container, da auch der offizielle Docker-Hub ein passendes Image von Amazon Linux bereitstellt. Wie in unserem Docker-Workshop gezeigt, lässt sich Amazon Linux im interaktiven Modus mit Bash ganz einfach wie folgt bereitstellen:
docker run --name amazon_bash --rm -i -t amazonlinux bash
Das Installieren von Python 3 erfolgt dann mittels …
yum –y update
yum –y install python3
Das Installieren des Python-Paketmanagers Pip erledigt man mit …
yum install –y python-pip
… um dann Boto3 wie im nächsten Bild gezeigt mit „pip install …“ installieren zu können. In Amazon Linux unter EC2 muss den jeweiligen Kommandos „sudo“ vorangestellt werden.
Windows-Python-User müssen hingegen den aktuellen Tarball von Boto3 herunterladen und entpacken. Achtung: dass alle Screenshots die CMD zeigen, soll nicht zu der falschen Annahme verleiten, dass wie hier Python unter Windows ausführen, denn wir sind lediglich aus der CMD mit der Bash in einem Docker-Container in Amazon Linux verbunden. Die Installation kann dann entweder mit …
setup.py install
erfolgen, oder wenn pip installiert ist ebenfalls mit …
pip install –U boto
Abschließend installiert man noch die AWS-CLI mit
yum –y install aws-cli
Credentials konfigurieren
Vor der Erstbenutzung der SDK muss das CLI bzw. die Entwicklungsumgebung so konfiguriert werden, dass dieser in der gewünschten Default-Region über die benötigten Account-Credentials verfügt. Wie das funktioniert, zeigt unser Artikel zu AWS-CLI. Dazu startet man auf dem Host, auf dem man die AWS-SDK für Python nutzen will:
aws configure
Hierdurch werden unter anderem die Credentials konfiguriert, mit denen man sich gegen die API authentifiziert. So genannte Access-Key/Access-Secret-Pairs kann man zuvor in der IAM-Konsole des zu verwendenden IAM-Nutzers generieren und sich das Key-Pair als CSV herunterladen. Später besteht diese Möglichkeit nicht mehr. Bei Verlust muss man neue Schlüsselpaare anlegen.
Die Konfigurationseinstellungen werden auf dem lokalen Arbeitsplatz oder in der EC2-Instanz die man als Entwicklungssystem nutzt in zwei Dateien geschrieben. Das „credentials“-File mit eben diesem Key-Pair findet sich bei Linux-/Unix- und Mac-OS-Systemen unter ~/.aws/credentials bzw. in der Datei C:\Users\USERNAME\.aws\credentials unter Windows. Bei Bedarf kann die Datei mehrere benannte Profile zusätzlich zu einem Standardprofil enthalten.
Das CLI-Config-File hingegen enthält die konfigurierte Default-Region und ist unter ~/.aws/config (Linux, Mac OS, Unix) oder unter C:\User\USERNAME\.aws\config (Windows) zu finden. Auch dieses kann ein Standardprofil, benannte Profile und CLI-spezifische Konfigurationsparameter für jedes Profil enthalten. Wenn die Konfigurationsdatei-Variable gesetzt ist, schreibt „aws config“ die Einstellungen für die Region und die Ausgabe in die angegebene Datei. Die CLI versucht dann, die Einstellungen der Profile von dort anstelle der Standarddatei (~/.aws/config) zu lesen. Anmeldeinformationen werden weiterhin aus der Standardanmeldungsdatei (~/.aws/credentials) gelesen und in diese geschrieben.
(ID:45514540)