AWS - Débutant : premiers pas dans le cloud Amazon
🎯 Objectifs
- ✅ Comprendre ce qu'est AWS et pourquoi l'utiliser
- ✅ Naviguer dans la console AWS et configurer la CLI
- ✅ Créer et gérer des utilisateurs IAM en appliquant le principe du moindre privilège
- ✅ Lancer une instance EC2 et s'y connecter en SSH
- ✅ Créer un bucket S3 et stocker des fichiers
📋 Prérequis
- Linux Débutant (ligne de commande, terminal)
- Un email valide pour créer un compte AWS
- Une carte bancaire (AWS Free Tier - aucun frais si vous restez dans les limites)
☁️ Pourquoi AWS ?
Le problème de l'infrastructure classique
Avant le cloud, une entreprise qui voulait héberger une application devait :
- Acheter des serveurs physiques (investissement immédiat)
- Attendre leur livraison (semaines, parfois mois)
- Les installer dans un datacenter
- Les maintenir, les sécuriser, les remplacer en fin de vie
Si le trafic explosait un jour de soldes ? Les serveurs étaient soit surdimensionnés (gaspillage) soit insuffisants (panne).
La solution cloud
AWS (Amazon Web Services), lancé en 2006, change tout. Vous louez de la capacité informatique à la demande, à la seconde près.
💡 Analogie : c'est comme l'électricité. Vous ne construisez pas votre propre centrale - vous branchez une prise et payez ce que vous consommez.
| Modèle classique | Cloud AWS |
|---|---|
| Achat matériel | Paiement à l'usage |
| Délai de livraison semaines | Disponible en minutes |
| Capacité fixe | Élastique (scale up/down) |
| Infrastructure dans vos locaux | Datacenter Amazon |
| Vous gérez tout | AWS gère le matériel |
🌍 Infrastructure mondiale AWS
Régions
Une région est un ensemble de datacenters dans une zone géographique. Chaque région est indépendante des autres - une panne à Paris n'affecte pas Tokyo.
Quelques régions courantes :
| Nom | Identifiant | Localisation |
|---|---|---|
| US East (N. Virginia) | us-east-1 | Virginie du Nord, USA |
| EU (Paris) | eu-west-3 | Paris, France |
| EU (Ireland) | eu-west-1 | Irlande |
| Asia Pacific (Tokyo) | ap-northeast-1 | Tokyo, Japon |
⚠️ Choisissez toujours la région la plus proche de vos utilisateurs pour réduire la latence.
Zones de disponibilité (AZ)
Au sein d'une région, AWS dispose de 2 à 6 zones de disponibilité (Availability Zones). Chaque AZ est un datacenter physiquement séparé - alimentation, réseau et refroidissement distincts.
Région eu-west-3 (Paris)
├── eu-west-3a (datacenter A)
├── eu-west-3b (datacenter B)
└── eu-west-3c (datacenter C)Répartir son application sur plusieurs AZ garantit la haute disponibilité : si une AZ tombe, les autres prennent le relais.
Modèle de responsabilité partagée
AWS et vous partagez la responsabilité de la sécurité :
| AWS gère | Vous gérez |
|---|---|
| Sécurité physique des datacenters | Vos données |
| Réseau physique | Chiffrement des données |
| Hyperviseur / matériel | Gestion des accès (IAM) |
| Mises à jour de l'OS des services managés | Mises à jour de vos VMs |
🔐 IAM - Identity and Access Management
Pourquoi ne pas utiliser le compte root ?
Quand vous créez un compte AWS, vous obtenez un compte root. C'est comme l'administrateur suprême - il peut tout faire, y compris supprimer le compte entier. Utiliser root au quotidien est dangereux.
💡 Analogie : le compte root, c'est la clé maîtresse d'un immeuble. On ne l'utilise pas tous les jours - on crée des clés spécifiques pour chaque porte.
Bonne pratique : activer le MFA sur root, puis créer un utilisateur IAM administrateur pour le travail quotidien.
Concepts IAM
| Concept | Description | Exemple |
|---|---|---|
| Utilisateur | Personne ou application | Alice, Jenkins |
| Groupe | Collection d'utilisateurs | Équipe développement |
| Politique (Policy) | Règles d'autorisation/refus en JSON | "Lire les buckets S3" |
| Rôle | Identité assumée temporairement | EC2 qui accède à S3 |
| MFA | Second facteur d'authentification | Google Authenticator |
Principe du moindre privilège
N'accordez que les permissions nécessaires pour effectuer une tâche, rien de plus.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::mon-bucket/*"
}
]
}Cette politique autorise uniquement lire et écrire dans un bucket S3 précis.
Configurer la CLI AWS
# Installer AWS CLI (Linux/macOS)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# Vérifier l'installation
aws --version
# Configurer avec vos clés d'accès IAM
aws configure
# AWS Access Key ID: AKIA...
# AWS Secret Access Key: ...
# Default region name: eu-west-3
# Default output format: json
# Vérifier que la configuration fonctionne
aws sts get-caller-identity🖥️ EC2 - Elastic Compute Cloud
Concept
EC2 vous permet de louer des serveurs virtuels (instances) dans le cloud. C'est le service de calcul de base d'AWS.
Types d'instances
Les instances sont classées par famille et taille :
| Famille | Usage | Exemple |
|---|---|---|
t (General Purpose) | Dev, tests, petites applis | t3.micro (Free Tier) |
m (General Purpose) | Applications équilibrées | m6i.large |
c (Compute Optimized) | Calcul intensif | c6g.xlarge |
r (Memory Optimized) | Bases de données, caches | r6i.2xlarge |
g (GPU) | Machine learning, rendu | g4dn.xlarge |
💡 Free Tier :
t2.microout3.micro- 750 heures/mois gratuites pendant 12 mois.
Lancer une instance EC2
# Lancer une instance avec la CLI
aws ec2 run-instances \
--image-id ami-0c02fb55956c7d316 \ # AMI Amazon Linux 2023 (us-east-1)
--instance-type t3.micro \
--key-name ma-cle-ssh \
--security-group-ids sg-xxxx \
--subnet-id subnet-xxxx \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=mon-serveur}]'
# Lister vos instances
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]' --output table
# Se connecter en SSH
ssh -i "ma-cle-ssh.pem" ec2-user@<IP-PUBLIQUE>
# Arrêter (stop) une instance - conserve les données
aws ec2 stop-instances --instance-ids i-xxxx
# Terminer (supprimer) une instance
aws ec2 terminate-instances --instance-ids i-xxxxSecurity Groups - le pare-feu virtuel
Un Security Group est un pare-feu virtuel qui contrôle le trafic entrant et sortant d'une instance.
# Créer un security group
aws ec2 create-security-group \
--group-name mon-sg \
--description "Security group pour mon serveur web"
# Autoriser SSH (port 22) depuis votre IP uniquement
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxx \
--protocol tcp \
--port 22 \
--cidr 203.0.113.0/32 # Remplacez par votre IP
# Autoriser HTTP (port 80) depuis partout
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxx \
--protocol tcp \
--port 80 \
--cidr 0.0.0.0/0⚠️ N'autorisez jamais SSH depuis
0.0.0.0/0(internet entier) en production.
📦 S3 - Simple Storage Service
Concept
S3 est un service de stockage objet. Contrairement à un disque dur, S3 ne connaît pas les dossiers - il stocke des objets identifiés par une clé dans un bucket.
💡 Analogie : un bucket S3, c'est comme un dossier partagé sur internet. Mais au lieu de fichiers dans des sous-dossiers, on a des "objets" avec des noms qui peuvent ressembler à des chemins (
photos/2024/vacances.jpg).
Classes de stockage
| Classe | Usage | Disponibilité | Coût |
|---|---|---|---|
| Standard | Accès fréquent | 11 neuf (99,999999999%) | Le plus cher |
| Standard-IA | Accès peu fréquent | 99,9% | ~40% moins cher |
| Glacier Instant | Archives consultables | Minutes | ~70% moins cher |
| Glacier Flexible | Archives longue durée | 1-12h | Le moins cher |
Commandes essentielles S3
# Créer un bucket (le nom doit être unique globalement)
aws s3 mb s3://mon-bucket-unique-123
# Lister vos buckets
aws s3 ls
# Uploader un fichier
aws s3 cp fichier.txt s3://mon-bucket-unique-123/
# Uploader un dossier entier
aws s3 sync ./mon-dossier s3://mon-bucket-unique-123/dossier/
# Télécharger un fichier
aws s3 cp s3://mon-bucket-unique-123/fichier.txt ./
# Lister le contenu d'un bucket
aws s3 ls s3://mon-bucket-unique-123/
# Supprimer un fichier
aws s3 rm s3://mon-bucket-unique-123/fichier.txt
# Supprimer un bucket et tout son contenu
aws s3 rb s3://mon-bucket-unique-123 --forceHéberger un site statique sur S3
# Activer l'hébergement statique
aws s3 website s3://mon-bucket-unique-123 \
--index-document index.html \
--error-document error.html
# Rendre le bucket public (attention : données publiques!)
aws s3api put-bucket-policy \
--bucket mon-bucket-unique-123 \
--policy '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mon-bucket-unique-123/*"
}]
}'⚠️ Erreurs Courantes
| Erreur | Cause | Solution |
|---|---|---|
UnauthorizedAccess | Permissions IAM insuffisantes | Vérifier la politique IAM |
InvalidClientTokenId | Clés d'accès invalides ou expirées | Regénérer les clés IAM |
BucketAlreadyExists | Nom de bucket déjà pris globalement | Choisir un nom plus unique |
RequestExpired | Horloge système désynchronisée | sudo timedatectl set-ntp true |
| Instance inaccessible en SSH | Security Group bloque le port 22 | Vérifier les règles d'entrée |
📌 Points Clés
- Ne jamais utiliser le compte root - créer un utilisateur IAM administrateur
- AWS est divisé en régions indépendantes et zones de disponibilité redondantes
- Le principe du moindre privilège : accorder uniquement les permissions nécessaires
- EC2 = serveurs virtuels à la demande ; S3 = stockage objet quasi illimité
- Le Free Tier offre 12 mois de ressources gratuites pour apprendre
📚 Ressources
🚀 Prochaines étapes
Vous maîtrisez les bases d'AWS. Passez au niveau suivant :
- AWS Intermédiaire : VPC, RDS, Lambda et CloudFormation - réseau, bases de données managées et serverless