Skip to content

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