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.
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.
Émettons une clé d'authentification pour AWS. Demandez-leur d'émettre une clé en suivant la procédure d'aide ci-dessous.
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.
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é.
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