Procédure du développement AWS CDK (Python) à la construction de ressources AWS * Pour les débutants

Parce que je suis venu avec presque une infrastructure et que j'avais peu d'expérience en développement Voici un résumé de ce que les débutants en développement ont fait et comment créer des ressources AWS à l'aide de CDK.

Environnement de codage

Reportez-vous à l'article suivant pour la préparation de l'environnement Procédure de création d'un environnement CDK sous Windows (Python) https://qiita.com/toma_shohei/items/985916e1a95ec4c38121

Obtenez d'abord un aperçu

■ Présentation du matériel de compréhension https://pages.awscloud.com/rs/112-TZM-766/images/B-3.pdf

◾️ Essayez WorkShop ・ Atelier (anglais) https://cdkworkshop.com/30-python.html

・ Atelier (japonais: version à télécharger) http://bit.ly/cdkworkshopjp

Préparation du codage CDK (Python)

-Ouvrez Visual Studio Code et ouvrez le répertoire pour spécifier le répertoire de travail.

・ Placement du fichier d'initialisation cdk Exécutez la commande suivante depuis le terminal cdk init app --language=python

-Edit requirements.txt (installer les ressources à gérer) ======= 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

Si vous pouvez faire cela, commencez à coder.

Structure des dossiers

Au stade de cdk init, la structure de dossiers suivante sera créée sans autorisation. https://cdkworkshop.com/30-python/20-create-project/300-structure.html

J'ai introduit pyyaml pour séparer les paramètres du code. La structure des dossiers ressemblera à celle ci-dessous.

・ Image de la structure du dossier

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

Support provisoire (prévu pour être corrigé dans le futur, solution inconnue à l'heure actuelle)

Lors de l'écriture! Ref dans le paramètre, utilisez "\! Ref" Conversion par lots "\! Ref" ⇒ "! Ref" du yaml de sortie. *! GetAtt est le même

Exécution CloudFormation

・ Sortie du modèle CloudFormation cdk synth --version-reporting false --path-metadata false > C:\Users\test\Desktop\test.txt

・ Mise en œuvre des mesures provisoires ci-dessus

・ Commande de déploiement CloudFormation (jusqu'à la création de l'ensemble de modifications) aws cloudformation deploy --stack-name testStack --template-file C:\Users\test\Desktop\test.txt --no-fail-on-empty-changeset --no-execute-changeset

・ Confirmation du jeu de modifications ⇒ exécution Lorsque vous ouvrez CloudFormation depuis la console de gestion Vérifiez le jeu de modifications de la pile créée et appuyez sur Exécuter s'il n'y a pas de problème

Documents fréquemment consultés

・ Référence AWS CDK Python https://docs.aws.amazon.com/cdk/api/latest/python/index.html

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

Tâche

・ Utilisation de constructions de haut niveau Pour l'opération (?) Pour créer une nouvelle ressource avec du code au-dessus d'une ressource existante construite manuellement Seules les constructions de bas niveau (une bibliothèque nommée CfnXXX) sont disponibles

・ Pas de code de test Ce qu'il faut vérifier en premier lieu n'est pas examiné

Impressions

・ À propos de la construction avec IaC La qualité augmentera certainement. (Je fais toujours une erreur s'il s'agit d'un projet de construction d'une certaine ampleur je n'ai pas fait d'erreur) Une fois l'environnement de vérification créé, l'environnement de production peut être créé presque par copie, de sorte que la reproductibilité est assez élevée.

・ Caractéristiques de CDK J'ai de l'expérience dans la construction d'AWS avec Terraform, mais j'ai l'impression que CDK s'intègre et a moins de points. Puisqu'il s'agit d'un outil tardif, l'intervalle entre les mises à jour est court (engagé presque tous les jours), Il y a un risque car la dernière version n'est peut-être pas rétrocompatible, mais pour le moment, il n'y a que quelques éléments qui m'ont tourmenté.

Recommended Posts

Procédure du développement AWS CDK (Python) à la construction de ressources AWS * Pour les débutants
Procédure de construction du serveur de développement Python (AWS + Anaconda)
Construction de l'environnement de développement Python 2020 [De l'installation de Python à l'introduction à la poésie]
Procédure pour convertir un fichier python en exe à partir de la construction de l'environnement Ubunts
Construction de l'environnement Python3 (pour les débutants)
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Pour les débutants] Script dans 10 lignes (4. Connexion de python à sqlite3)
[Pour les débutants] Django -Construction d'environnement de développement-
Procédure de la construction de l'environnement au test de fonctionnement de testinfra, un outil de test d'environnement de serveur réalisé par Python
Technique Python pour ceux qui veulent se débarrasser des débutants
Procédure de construction de l'environnement de développement Python (anaconda) (SpringToolsSuites) _2020.4
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
Procédure de construction de l'environnement de projet Python (pour Windows)
Python> Numéros de sortie de 1 à 100, 501 à 600> Pour csv
Construction d'un environnement de développement pour l'atelier Choreonoid
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 9 Utilisation à partir du langage C
De la construction de ré-environnement de Python au dessin graphique (sur le code Visual Studio)
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
Python pour les super débutants Super débutants Python # Facile à éliminer
[Procédure d'installation Ansible] De l'installation à l'exécution du playbook
Mémo n ° 3 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 1 que les débutants Python lisent "Explication détaillée de la grammaire Python"
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Essayez de calculer RPN avec Python (pour les débutants)
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Mémo n ° 2 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Résumé de l'étude de Python pour utiliser AWS Lambda
Mémo n ° 7 que les débutants Python lisent "Explication détaillée de la grammaire Python"
De 0 à la construction de l'environnement de développement Django à l'exploitation de base
Introduction à la programmation (Python) TA Tendency pour les débutants
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Mémo n ° 6 pour les débutants Python à lire "Explication détaillée de la grammaire Python"
Appeler Polly à partir du kit SDK AWS pour Python
Comment rendre le Python des débutants plus rapide [numpy]
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
Mémo n ° 5 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Histoire de base de l'héritage en Python (pour les débutants)
Comprendre le développement de Python pour Pepper. -Introduction à Python Box-
[Pour les débutants] Comment utiliser la commande say avec python!
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Développement d'applications pour tweeter en Python à partir de Visual Studio 2017
Résumé des méthodes de prétraitement pour les débutants en Python (trame de données Pandas)
[Python] Local → Procédure de téléchargement de fichiers vers S3 (boto3)
Prise en charge de l'environnement d'exécution Python 2.7 sur AWS Lambda (à partir de 2020.1)
Procédure de création d'un environnement CDK sous Windows (Python)
Développement du kit SDK AWS pour Python (Boto3) dans Visual Studio 2017
Python # Comment vérifier le type et le type pour les super débutants
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Construction de l'environnement de développement Python
Manuel python pour les débutants
Construction de l'environnement de développement python2.7
OpenCV pour les débutants en Python
Du masque blanc au masque de monstre, développement de l'application de traitement de photos LINE sans serveur sur AWS
[Pour les débutants des professionnels de la compétition] Trois méthodes de saisie à retenir lors du démarrage de la programmation de compétition avec Python
Exemple de construction d'environnement Python et d'exécution SQL vers DB et mémo de traitement de base pour les statistiques 2019