Sortie en décembre 2020, CloudShell est une interface shell intégrée à la console AWS. Elle permet de lancer des commandes Linux et contient des applications installées de base : node.js, python, ...
Il est possible d'installer ses propres outils comme Terraform, sachant que le stockage persistant est de 1 Go.
Le service n'est pas encore disponible sur Paris mais ...
C'est vrai que le service n'est pas encore disponible sur la région Paris (eu-west-3), c'est peut être la raison pour laquelle je ne m'y suis pas intéressé jusqu'à présent. Comme je travaille aussi sur d'autres régions, j'ai décidé cependant de changer mes habitudes et de regarder ce service en allant au delà du premier test que j'avais fait lors de sa sortie.
La première découverte est qu'il est possible finalement de travailler sur les services de la région Paris depuis une autre région, par exemple la région Irlande (eu-west-1), en modifiant simplement la variable d'environnement AWS_REGION. Cela fonctionne comme pour une session AWS CLI on premise.
Lorsque nous comparons ce service avec les autres fournisseurs de Cloud, sa sortie n'est pas une nouveauté mais plutôt un rattrapage par rapport à la concurrence, qui propose ce service depuis quelques temps déjà. Chez GCP, ce service s'appelle pratiquement pareil : Cloud Shell (seul l'espace les différencie au niveau du nom).
Pour obtenir le service dans les régions où il est disponible, le plus simple est de cliquer sur la petite icône dans le haut de la console.
Quels peuvent être les apports ?
Pro
La gestion des droits d'accès aux APIs s'effectue avec les droits d'accès détenus par le user connecté à la console AWS. Dans ce cas, l'utilisation de ce service est plus sécurisé que l'utilisation d'un AWS CLI utilisé on prime.
De plus, on évite de créer une ec2 pour effectuer les mêmes tâches.
Cons
Ce service ne permet que des connexions en mode CLI, donc pour Windows l'accès ne peut se faire qu'avec l'utilisation de commande Powershell.
Le stockage persistant de 1Go peut paraitre faible dans certains cas.
Les fichiers sont disponibles dans la même région pour de future sessions avec un stockage persistant de 1 Go.
Protégé par des permissions IAM : Les accès aux API AWS sont réalisées via les droits accordés à l'utilisateur connecté à la console AWS.
Caractéristiques système : 1 vCPU, 2 GiB RAM
1 Go de stockage persistant qui sera perdu en cas d'inactivité de CloudShell sur la région durant plus de 120 jours.
Le nombre max de shells gratuits par région est de 10.
Temps maximum de session : 12h, même si l'utilisateur est en train d'utiliser son terminal.
Réseau : accès possible vers internet mais pas possible depuis internet.
Les shells disponibles sont le Z shell, le Bash shell, le PowerShell.
Point de vue d'utilisation de l'outil
Un outil est toujours conçu dans l'optique d'une utilisation précise. Tel est le cas de CloudShell avec les considérations suivantes.
Taille faible du stockage persistant :
La capacité de stockage est suffisante dans la mesure ou l'optique est l'utilisation de git pour gérer le contenu des developpements. Cloudshell n'a pas vocation à stocker des fichiers.
L'optique est d'utiliser le service S3 pour stocker les fichiers ou répertoires conséquents.
Puisque CloudShell utilise un conteneur, il est tout de même possible d'utiliser le répertoire /tmp pour réaliser un stockage temporaire de fichiers d'environ 17G o qui reste persistant tout de même 12h !
Connexions aux ec2:
La connexion aux ec2 est possible via l'utilisation de l'agent ssm installé sur chacunes des ec2 et de l'utilisation de la commande : aws ssm start-session --target
Fonctionnalités
Quelques fonctionnalités sont fournies en plus du shell lui-même, en dehors du formatage de l'affichage.
En cliquant sur le menu "Actions" en haut à gauche, nous avons accès à ces fonctionnalités.
Transfert de fichiers avec CloudShell : Download File, Upload File
Les uploads et downloads de fichiers sont réalisés uniquement avec le répertoire "/home/cloudshell-user".
Split screens
Fonctionnalité permettant d'avoir plusieurs terminaux dans la même console soit en ligne soit en colonne.
Choix du type de shell
Lors du prompt par défaut, entrer une des commandes suivantes suivant le shell désiré :
bash: pour le Bash shell
pwsh: pour le PowerShell
zsh: pour le Z shell
Installation de Terraform
Pour terminer, voici un exemple d'installation d'un programme supplémentaire dans CloudShell, en l’occurrence Terraform.
Pour le fun, l'outil tfenv est utilisé pour installer et gérer éventuellement plusieurs versions de Terraform.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.