AWS CLI, soit Amazon Web Services Command Line Interface, est une application open-source qui permet de gérer tous les services AWS par l’intermédiaire de lignes de commandes. Ce module en ligne de commandes permet de s’affranchir de l’interface habituelle AWS et d’effectuer toutes les tâches afférentes à la gestion des services, tels que le déploiement de ressources, le monitoring de systèmes ou encore la gestion d’infrastructures complexes.
Pourquoi utiliser AWS CLI ?
AWS propose déjà une console web intuitive et riche en fonctionnalités, alors quelles sont les raisons qui pourraient pousser à l’utilisation de l’interface en ligne de commande ?
Efficacité et gain de temps
La première raison est sans aucun doute la rapidité d’exécution. Les tâches réalisées dans la console AWS peuvent devenir chronophages lorsqu’elles sont répétitives. À titre d’exemple, pour créer une instance EC2 via la console web, il est nécessaire de naviguer à travers plusieurs pages, de remplir des formulaires, et de cliquer sur plusieurs boutons.
Avec AWS CLI, la même tâche peut être effectuée en quelques secondes grâce à une simple commande. Voici un exemple :
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKey
Ce gain de temps est particulièrement significatif lorsqu’il est nécessaire de gérer un grand nombre de ressources ou pour effectuer des déploiements rapides.
Automatisation des tâches
Un des autres avantages majeurs est la possibilité d’automatiser des tâches à grande échelle. L’importance de l’automatisation se fait ressentir lors de la nécessité de gérer des infrastructures complexes. En effet, cela limite le risque d’erreurs humaines et garantit que les actions sont effectuées de manière cohérente.
Ainsi, il est possible d’écrire des scripts qui effectuent des déploiements, des sauvegardes, ou encore qui gèrent des utilisateurs et des permissions. Ces scripts peuvent inclure des commandes liées à des access key id ou des secret access key pour maximiser la sécurité lors de leur exécution.
Par exemple, si vous devez automatiser la sauvegarde d’un bucket S3, un simple script peut exécuter cette tâche quotidiennement sans intervention manuelle :
aws s3 sync s3://my-bucket /backup/my-bucket
Gestion centralisée des services AWS
En gérant plusieurs services ou des grosses infrastructures réparties sur plusieurs régions, il est possible d’avoir une vision d’ensemble sans avoir à basculer entre différentes sections de la console.
Le listing des ressources ainsi que la vérification de l’état des services ou encore la supervision des logs peut se faire avec des commandes simples. Par exemple, pour voir tous les buckets S3 dans la région définie, la commande sera la suivante :
aws s3 ls
Sécurité et personnalisation des accès
AWS CLI permet de définir des profils de configuration, où chaque profil peut contenir des informations, permissions ou identifiants spécifiques. Cela facilite la gestion de multiples environnements tout en maintenant un haut niveau de sécurité.
Flexibilité
AWS CLI est très flexible et peut être configuré selon les besoins, notamment en modifiant les paramètres régionaux, les sorties attendues des commandes ou la personnalisation de profils.
Quelques commandes essentielles
Les commandes ci-après considèrent que AWS CLI est correctement installé et configuré. Le guide utilisateur officiel pourra vous aider pour ces premières étapes.
Gérer des instance EC2
La gestion de ces instances est importante et très utilisée. La commande suivante permet d’avoir les informations sur l’instance mentionnée :
aws ec2 describe-instances --instance-ids i-1234567890abcdef0
Le résultat sera un JSON complet décrivant l’instance souhaitée.
Voir également :
# Démarrer une instance EC2 avec un type de démarrage spécifique :
aws ec2 run-instances --image-id ami-0abcdef1234567890 --count 1 --instance-type t2.micro --key-name MyKeyPair
# Arrêter une instance selon son id :
aws ec2 stop-instances --instance-ids i-0abcd1234efgh5678
Interagir avec AWS S3
- Lister les buckets S3
Cette commande retourne la liste de tous les buckets S3 :
aws s3 ls
- Créer un nouveau bucket
aws s3 mb s3://my-dst-bucket
- Copier un fichier vers un bucket
aws s3 cp myfile.txt s3://my-dst-bucket/
Gérer les utilisateurs IAM
- Créer un nouvel utilisateur
aws iam create-user --user-name Alice
- Attacher une politique à un utilisateur
aws iam attach-user-policy --user-name Alice --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
Dans cet exemple, Alice recevra un accès complet à S3
- Lister les utilisateurs
aws iam list-users
Récupération de logs CloudWatch
aws logs get-log-events --log-group-name MyLogGroup --log-stream-name MyLogStream
Conclusion
AWS CLI est un outil très puissant et qui peut vous faire gagner beaucoup de temps. Cependant, l’écosystème AWS est extrêmement vaste. Donc hésitez pas à lire la documentation officielle disponible.