Vorgehensweise von der AWS CDK (Python) -Entwicklung bis zur AWS-Ressourcenkonstruktion * Für Anfänger

Weil ich mit fast einer Infrastruktur gekommen bin und wenig Entwicklungserfahrung hatte Hier ist eine Zusammenfassung dessen, was Entwicklungsanfänger getan haben und wie AWS-Ressourcen mit CDK erstellt werden.

Codierungsumgebung

Informationen zur Vorbereitung der Umgebung finden Sie im folgenden Artikel Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python) https://qiita.com/toma_shohei/items/985916e1a95ec4c38121

Verschaffen Sie sich zunächst einen Überblick

■ Umreißen Sie das Verständnismaterial https://pages.awscloud.com/rs/112-TZM-766/images/B-3.pdf

◾️ Probieren Sie WorkShop aus ・ Workshop (Englisch) https://cdkworkshop.com/30-python.html

・ Workshop (Japanisch: Download-Version) http://bit.ly/cdkworkshopjp

Vorbereitung der CDK (Python) -Codierung

-Öffnen Sie Visual Studio Code und öffnen Sie das Verzeichnis, um das Arbeitsverzeichnis anzugeben.

・ Platzierung der CDK-Initialisierungsdatei Führen Sie den folgenden Befehl vom Terminal aus cdk init app --language=python

-Edit require.txt (zu behandelnde Ressourcen installieren) ======= aws-cdk.core

aws-cdk.aws-autoscaling aws-cdk.aws-ec2 aws-cdk.aws-elasticloadbalancingv2 aws-cdk.aws-rds aws-cdk.aws-ssm aws-cdk.aws-route53

aws-cdk.aws-autoscaling-common ==================== pip install -r requirements.txt

Wenn Sie dies tun können, starten Sie die Codierung.

Ordnerstruktur

In der Phase von cdk init wird die folgende Ordnerstruktur ohne Erlaubnis erstellt. https://cdkworkshop.com/30-python/20-create-project/300-structure.html

Ich habe Pyyaml eingeführt, um die Parameter vom Code zu trennen. Die Ordnerstruktur sieht wie folgt aus.

・ Ordnerstrukturbild

CDK-WORKSHOP □┣config □┃┣prd □┃┃┣ec2.yaml □┃┃┣vpc.yaml □ ┃┃┣ ┃┃┣ ・ ・ □┃┗stg □┃□┣ec2.yaml □┃□┣vpc.yaml □ □ □ ┣ ・ ・ ・ □┣cdk-workshop_stack.py □ ┣ ┣ ・ ・

Vorläufige Unterstützung (soll in Zukunft behoben werden, Lösung derzeit unbekannt)

Verwenden Sie beim Schreiben! Ref im Parameter "\! Ref" Stapelkonvertierung "\! Ref" ⇒ "! Ref" der Ausgabe yaml. *! GetAtt ist das gleiche

CloudFormation-Ausführung

・ Ausgabe der CloudFormation-Vorlage cdk synth --version-reporting false --path-metadata false > C:\Users\test\Desktop\test.txt

・ Umsetzung der oben genannten vorläufigen Maßnahmen

・ CloudFormation-Bereitstellungsbefehl (bis zur Erstellung des Änderungssatzes) aws cloudformation deploy --stack-name testStack --template-file C:\Users\test\Desktop\test.txt --no-fail-on-empty-changeset --no-execute-changeset

・ Setbestätigung ändern ⇒ Ausführung Wenn Sie CloudFormation über die Verwaltungskonsole öffnen Überprüfen Sie den Änderungssatz des erstellten Stapels und drücken Sie Ausführen, wenn kein Problem vorliegt

Häufig angezeigte Dokumente

・ AWS CDK Python-Referenz https://docs.aws.amazon.com/cdk/api/latest/python/index.html

・ Python-Beispiele https://github.com/aws-samples/aws-cdk-examples

Aufgabe

・ Verwendung von Konstrukten auf hoher Ebene Für Operation (?) Erstellen einer neuen Ressource mit Code über einer vorhandenen manuell erstellten Ressource Es sind nur Konstrukte auf niedriger Ebene (eine Bibliothek mit dem Namen CfnXXX) verfügbar

・ Kein Testcode Es ist ungeprüft, was überhaupt zu überprüfen ist

Impressionen

・ Über den Bau mit IaC Die Qualität wird definitiv steigen. (Ich mache immer einen Fehler, wenn es sich um ein Bauprojekt einer bestimmten Größenordnung handelt, bei dem ich keinen Fehler gemacht habe.) Sobald die Verifizierungsumgebung erstellt wurde, kann die Produktionsumgebung fast durch Kopieren erstellt werden, sodass die Reproduzierbarkeit recht hoch ist.

・ Eigenschaften von CDK Ich habe Erfahrung mit dem Erstellen von AWS mit Terraform, aber ich habe den Eindruck, dass CDK passt und weniger Punkte hat. Da es sich um ein Tool für Nachzügler handelt, ist das Intervall zwischen den Upgrades kurz (fast täglich festgelegt). Es besteht das Risiko, dass die neueste Version möglicherweise nicht abwärtskompatibel ist, aber im Moment haben mich nur wenige Dinge geplagt.

Recommended Posts

Vorgehensweise von der AWS CDK (Python) -Entwicklung bis zur AWS-Ressourcenkonstruktion * Für Anfänger
Konstruktionsverfahren für Python-Entwicklungsserver (AWS + Anaconda)
Aufbau der Python-Entwicklungsumgebung 2020 [Von der Python-Installation bis zur Einführung in die Poesie]
Verfahren zum Konvertieren einer Python-Datei in eine Exe aus der Ubunts-Umgebungskonstruktion
Python3-Umgebungskonstruktion (für Anfänger)
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Für Anfänger] Skript innerhalb von 10 Zeilen (4. Verbindung von Python zu sqlite3)
[Für Anfänger] Django -Entwicklungsumgebung Bau-
Verfahren von der Umgebungskonstruktion bis zum Betriebstest von testinfra, einem von Python erstellten Testwerkzeug für die Serverumgebung
Python-Technik für diejenigen, die Anfänger loswerden wollen
Konstruktionsverfahren für die Python (Anaconda) -Entwicklungsumgebung (SpringToolsSuites) _2020.4
[Python] Protokoll des Studientreffens für Anfänger (7/15)
Konstruktionsverfahren für die Python-Projektumgebung (für Windows)
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Bau einer Entwicklungsumgebung für die Choreonoid-Werkstatt
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 9 Verwendung aus der C-Sprache
Von der Re-Environment-Konstruktion von Python bis zur grafischen Zeichnung (auf Visual Studio-Code)
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (1) [Umgebungskonstruktion]
Memo Nr. 4, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Datenanalyse in Python Zusammenfassung der Quellen, die Anfänger zuerst betrachten sollten
Python für Super-Anfänger Super-Anfänger Python # Einfach loszuwerden
[Ansible Installationsverfahren] Von der Installation bis zur Ausführung des Playbooks
Memo Nr. 3, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 1, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
~ Tipps für Python-Anfänger mit Liebe von Pythonista ① ~
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
Einfaches Verständnis von Python für & Arrays (für Super-Anfänger)
Memo Nr. 2, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Memo Nr. 7, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Von 0 bis Django Entwicklungsumgebung Konstruktion bis Grundbetrieb
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
Von der Python-Umgebungskonstruktion zur virtuellen Umgebungskonstruktion mit Anaconda
Memo Nr. 6 für Python-Anfänger zum Lesen von "Detaillierte Erklärung der Python-Grammatik"
Rufen Sie Polly aus dem AWS SDK für Python auf
Wie man Python für Anfänger schneller macht [numpy]
~ Tipps für Python-Anfänger mit Liebe von Pythonista ② ~
Memo Nr. 5, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
App-Entwicklung zum Twittern in Python aus Visual Studio 2017
Zusammenfassung der Vorverarbeitungsmethoden für Python-Anfänger (Pandas-Datenrahmen)
[Python] Lokal → Verfahren zum Hochladen von Dateien in S3 (boto3)
Unterstützung für Python 2.7-Laufzeit auf AWS Lambda (ab 2020.1)
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Entwicklung des AWS SDK für Python (Boto3) in Visual Studio 2017
Python # So überprüfen Sie Typ und Typ für Super-Anfänger
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Aufbau einer Python-Entwicklungsumgebung
Python Lehrbuch für Anfänger
python2.7 Konstruktion der Entwicklungsumgebung
OpenCV für Python-Anfänger
Von der weißen Maske zur Monstermaske: Entwicklung einer serverlosen LINE-Fotoverarbeitungsanwendung auf AWS
[Für Anfänger von Wettkampfprofis] Drei Eingabemethoden, die Sie beim Starten der Wettkampfprogrammierung mit Python beachten sollten
Beispiel für die Erstellung einer Python-Umgebung und eine SQL-Ausführung für DB und ein Memo der grundlegenden Verarbeitung für Statistiken 2019