Skip to main content

AWS - EC2

Introduction

EC2 pour Elastic Compute Cloud est un service web d'Amazon permettant déployer des instances dîtes as a service.

Installation des prérequis

Deux paquets sont nécessaire à la manipulation des instances et des fichiers JSON pour AWS : aws-cli et jq.

Ils sont tous deux à installer selon votre OS.

Types d'instances

La liste complète des types d'instances est disponible ici : https://aws.amazon.com/fr/ec2/instance-types/

Liste AMI

Pour explorer la liste des AMI : https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#LaunchInstances:

Images ID
AMI Amazon Linux 2023 ami-0f34c5ae932e6f0e4
Ubuntu 22.04 ami-053b0d53c279acc90
Debian 11 ami-01e5ff16fd6e8c542
RHEL 9 ami-02978b79564e08f2f

Déploiement en CLI

Création d'une clé d'accès SSH

aws ec2 create-key-pair --key-name <ACCESS_KEY_LABEL> --query 'KeyMaterial' --output text > <KEY.pem>

Configuration des accès IAM

Depuis la console IAM, créer un utilisateur CLI ayant les droits puis récupérer l'ACCESS KEY ID ainsi que l'ACCESS SECRET KEY (affichable uniquement à la création) :

Puis, configurer les paramètres d'AWS grâce aux commandes suivantes :

aws configure set aws_access_key_id <ACCESS_KEY_ID>
aws configure set aws_secret_access_key <ACCESS_SECRET_KEY>

La liste des régions est consultable à cette adresse :

Ex : us-east-1

aws configure set default.region <REGION>
aws configure set output json

Déploiement de l'instance

aws ec2 run-instances --image-id <AMI_ID> --instance-type <INSTANCE_TYPE> --security-group-ids <SG_ID> --key-name <ACCESS_KEY_LABEL> > <OUTPUT>.json
  • <AMI_ID> : Image à utiliser (Amazon Linux, Ubuntu, Debian, Windows Server).
  • <INSTANCE_TYPE> : Configuration de l'instance (ex : t2.micro).
  • <ACCESS_KEY_LABEL> : Label de la clé d'accès SSH créé précédemment.
  • <SG_ID> : ID du groupe de sécurité configurable depuis la console EC2.
  • <OUTPUT> : Nom du fichier de sortie (important pour récupérer les informations de l'instance).

Informations sur l'instance

Avec l'ID de l'instance stockée dans le fichier json, il est possible d'obtenir l'adresse IP public de l'instance grâce à la commande suivante :

aws ec2 describe-instances --instance-ids $( jq -r '.Instances[0].InstanceId' <OUTPUT>.json ) | jq -r '.Reservations[0].Instances[0].PublicIpAddress'