# [AWS] EC2
## Introduction
**EC2** pour *Elastic Compute Cloud* est un service web d'Amazon permettant de déployer des instances dîtes as a service.
## [](https://wiki.neopipe.fr/uploads/images/gallery/2023-08/ec2-1.webp)
## 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/](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:](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
```bash
aws ec2 create-key-pair --key-name --query 'KeyMaterial' --output text >
```
#### 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) :
- [https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html)
Puis, configurer les paramètres d'AWS grâce aux commandes suivantes :
```bash
aws configure set aws_access_key_id
```
```bash
aws configure set aws_secret_access_key
```
La liste des régions est consultable à cette adresse :
- [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)
Ex : **us-east-1**
```bash
aws configure set default.region
```
```bash
aws configure set output json
```
#### Déploiement de l'instance
```bash
aws ec2 run-instances --image-id --instance-type --security-group-ids --key-name >