AWS Setup Guide
Prérequis
- Compte AWS actif
- IAM User avec AdministratorAccess
- MFA activé sur le compte IAM
- Dev Container configuré (voir README.md)
1. Configurer aws-vault
# Dans le Dev Container
export AWS_VAULT_BACKEND=file # déjà dans .bashrc
aws-vault add devops-portfolio
# AWS Access Key ID : AKIA...
# AWS Secret Access Key : xxxxxxx
# Choisir une passphrase pour chiffrer les credentials
2. Configurer ~/.aws/config
[profile devops-portfolio]
region = eu-west-3
mfa_serial = arn:aws:iam::TON_ACCOUNT_ID:mfa/TON_DEVICE
duration_seconds = 43200 # 12 heures
Récupérer l'ARN MFA :
AWS Console â IAM â Users â TON_USER
â Security credentials â Multi-factor authentication
â Copier l'ARN
3. Ouvrir une session AWS (workflow quotidien)
# Alias disponible dans le Dev Container
awslogin
# Ăquivalent complet
aws-vault exec devops-portfolio --duration=12h -- bash
# Entrer le code MFA (6 chiffres) une seule fois
# â credentials valides 12h dans le shell
4. Vérifier la connexion
aws sts get-caller-identity
# {
# "UserId": "AIDA...",
# "Account": "199167114788",
# "Arn": "arn:aws:iam::199167114788:user/iamadmin"
# }
5. Workflow Terraform quotidien
# Matin â ouvrir la session
awslogin
# â entrer MFA une fois
# Lancer l'infrastructure
cd terraform/vpc && terraform apply -auto-approve
cd terraform/eks && terraform apply \
-var="vpc_id=VPC_ID" \
-var='private_subnet_ids=["SUBNET_1","SUBNET_2"]' \
-auto-approve
# Configurer kubectl
aws eks update-kubeconfig \
--region eu-west-3 \
--name fastapi-eks-cluster
# Vérifier le cluster
kubectl get nodes
# Soir â OBLIGATOIRE dĂ©truire pour Ă©viter les coĂ»ts
cd terraform/eks && terraform destroy \
-var="vpc_id=VPC_ID" \
-var='private_subnet_ids=["SUBNET_1","SUBNET_2"]' \
-auto-approve
cd terraform/vpc && terraform destroy -auto-approve
Ajouter la section workflow Terraform complet
Déploiement complet
cd terraform
terraform apply -auto-approve # create_nat_gateway=true dans tfvars
aws eks update-kubeconfig --region eu-west-3 --name fastapi-eks-cluster
kubectl get nodes
6. Commandes utiles
# Voir les sessions aws-vault actives
aws-vault list
# Supprimer une session expirée
aws-vault clear devops-portfolio
# Voir les credentials actuels
aws sts get-caller-identity
# Vérifier la région configurée
aws configure get region
7. Ressources AWS créées par Terraform
| Module | Ressources | Coût/heure |
|---|---|---|
| Backend | S3 bucket | ~0$ |
| VPC | VPC, subnets, IGW, NAT GW | ~0.05$/h |
| EKS | Cluster + nodes t3.medium | ~0.15$/h |
| RDS | db.t3.micro PostgreSQL | ~0.02$/h |
| ECR | Registry | ~0$ |
CoĂ»t total si allumĂ© 4h/jour : ~0.88$/jour â ~26$/mois
8. Budget Alert configuré
AWS Console â Billing â Budgets
â devops-portfolio-budget : 50$
â Alertes : 5âŹ, 15âŹ, 20âŹ, 40⏠(forecasted)
â ïž RĂšgles d'or
1. Jamais laisser EKS/NAT allumés la nuit
2. Jamais committer de credentials AWS
3. Toujours utiliser aws-vault (jamais aws configure)
4. Vérifier aws-vault list avant de partir le soir