Gérez bien AWS avec la bibliothèque Python Boto

Peut-être que le nombre d'emplacements utilisant AWS pour les services Web, etc. augmente. Et, comme on le sait, vous savez qu'AWS expose également des commandes de console et des API qui peuvent être contrôlées par des bibliothèques dans différentes langues.

Récemment, au démarrage pour lequel je travaille, par exemple, lorsque je lance une nouvelle instance, il y a une procédure pour mettre une instance dans le groupe de sécurité, mais je veux automatiser cela! Parce que c'est ennuyeux et j'oublie! C'est pourquoi j'ai écrit le script en Python.

Utiliser Boto

Ainsi, en utilisant la bibliothèque Python Boto, il est plus facile de lancer ces instances et de les ajouter aux groupes de sécurité. Je voudrais donc vous donner un bref aperçu de cette bibliothèque Boto.

Les choses nécessaires

Émettons une clé d'authentification pour AWS. Demandez-leur d'émettre une clé en suivant la procédure d'aide ci-dessous.

Essayez de vous connecter

Tout d'abord, connectons-nous à AWS à l'aide de Boto. Dans mon cas, j'ai écrit comme suit.

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

Une des choses auxquelles je suis un peu accro est de savoir comment spécifier la region. Lors de la spécification de region, il est nécessaire de spécifier, par exemple, ʻap-north-1`.

De plus, si vous utilisez connect_to_region, une instance sera émise qui sera l'entrée de la connexion. Les opérations futures se font essentiellement à partir d'ici.

Essayez de définir chaque adresse IP dans le groupe de sécurité

Par exemple, obtenons une liste des groupes de sécurité actuellement existants.

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

En faisant cela, vous pouvez obtenir chaque groupe de sécurité. Je ne l'ai pas examiné en détail, mais si vous le spécifiez simplement avec groupnames, une instance sera émise pour se connecter à chaque groupe de sécurité. Par exemple, si vous souhaitez utiliser le premier groupe, il ressemblera à celui ci-dessous.

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

Au fait, il est facile d'oublier que si vous n'ajoutez pas / 32 etc. lorsque vous spécifiez cidr_ip, une erreur sera renvoyée. De plus, si l'adresse IP correspondante existe déjà dans le groupe de sécurité, une erreur sera renvoyée. Par conséquent, vous devez «essayer» comme indiqué ci-dessous.

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

En passant, si dry_run réussit, il semble que le code d'état de 412 soit renvoyé.

finalement

En tant que mot clé récent, l'automatisation est apparue au premier plan. De plus, si vous êtes une entreprise à risque, vous utilisez peut-être AWS en prévision d'une évolution soudaine. Cependant, il est difficile d'accéder à AWS un par un. Mais heureusement, AWS dispose de nombreuses API comme celle-ci. Auparavant, j'ai également mis en place une instance.

Si vous utilisez une telle bibliothèque et transformez la procédure habituelle en une seule commande, les activités AWS seront accélérées. Pourquoi n'en essayez-vous pas un dans votre propre langue?

Recommended Posts

Gérez bien AWS avec la bibliothèque Python Boto
API Boto3 (manipuler les ressources AWS avec la bibliothèque Python) qui est souvent utilisée en privé
Gérez les tâches cron avec python
Opération S3 avec python boto3
Appelez l'API avec python3.
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
Afficher uniquement les ressources créées lors de l'acquisition de ressources AWS avec Boto3
[AWS] Essayez d'ajouter la bibliothèque Python à la couche avec SAM + Lambda (Python)
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Ce que vous pouvez faire avec les statistiques de la bibliothèque Python standard
[Package cloud] Gérez les packages python avec le package cloud
Extraire le fichier xz avec python
Obtenez l'ID de compte AWS avec boto3
Obtenez la météo avec les requêtes Python
Trouvez la distance d'édition (distance de Levenshtein) avec python
Accédez à l'API Etherpad-lite avec Python
Remarque sur boto3 (AWS SDK for Python)
J'ai aimé le tweet avec python. ..
[HyperledgerIroha] Requête avec la bibliothèque Python
Gérez chaque version de Python avec Homebrew
Maîtriser le type avec Python [compatible Python 3.9]
Notifier HipChat avec AWS Lambda (Python)
Gérez vos données avec AWS RDS
Rendre la console Python couverte d'UNKO
[AWS] Utilisation de fichiers ini avec Lambda [Python]
[Python] Définissez la plage du graphique avec matplotlib
Derrière le flyer: utiliser Docker avec Python
Vérifier l'existence du fichier avec python
[Python] Récupère le nom de la variable avec str
[Python] Arrondissez avec juste l'opérateur
Afficher Python 3 dans le navigateur avec MAMP
Rechercher le labyrinthe avec l'algorithme python A *
Lisons le fichier RINEX avec Python ①
Utiliser le chiffrement de la bibliothèque de chiffrement avec l'image Python de Docker
Travailler avec OpenStack à l'aide du SDK Python
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Je veux jouer avec aws avec python
Télécharger des fichiers sur le Web avec Python
Premiers pas avec Dynamo de Python boto
J'obtiens une erreur Python No module nommée'encodings 'avec la commande aws
[AWS] Associez Lambda et S3 à boto3
Essayez le scraping HTML avec la bibliothèque Python
Connectez-vous à s3 avec AWS Lambda Python
Publiez votre propre bibliothèque Python sur Homebrew
Apprenez le modèle de conception "Singleton" avec Python
[Python] Utiliser automatiquement le navigateur avec Selenium
Chiffrement côté serveur S3 SSE avec Python boto3
Gérez plusieurs versions de Python avec des alternatives de mise à jour (Ubuntu)
Touchez AWS avec Serverless Framework et Python
Apprenez le modèle de conception "Façade" avec Python
La route de la compilation vers Python 3 avec Thrift
Rendre la bibliothèque créée par Eigen of C ++ disponible à partir de Python avec Boost.Numpy.
Affichage des données d'informations de position en Python --Essayez de tracer avec la bibliothèque d'affichage de carte (folium) -
J'ai essayé de "lisser" l'image avec Python + OpenCV