S3 pour le web
Amazon S3 (Simple Storage Service) est bien plus qu’un simple stockage de fichiers. C’est une plateforme d’hébergement de sites statiques performante, économique et infiniment scalable.
Lueur Externe utilise S3 comme fondation pour l’hébergement de sites Astro, Next.js et autres frameworks SSG.
Hébergement de site statique
Configuration du bucket
# Créer le bucket
aws s3 mb s3://mon-site-web --region eu-west-3
# Activer l'hébergement statique
aws s3 website s3://mon-site-web \
--index-document index.html \
--error-document 404.html
Politique de bucket pour CloudFront
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AllowCloudFrontOAC",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mon-site-web/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::123456789:distribution/EXAMPLE"
}
}
}]
}
Déploiement avec sync
# Déployer le site avec synchronisation
aws s3 sync ./dist/ s3://mon-site-web \
--delete \
--cache-control "public, max-age=31536000, immutable" \
--exclude "*.html"
# HTML avec cache court
aws s3 sync ./dist/ s3://mon-site-web \
--cache-control "public, max-age=3600" \
--include "*.html" \
--exclude "*" \
--include "*.html"
Sécurité
Bloquer l’accès public
aws s3api put-public-access-block \
--bucket mon-site-web \
--public-access-block-configuration \
BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
Chiffrement
# Activer le chiffrement par défaut
aws s3api put-bucket-encryption \
--bucket mon-site-web \
--server-side-encryption-configuration '{
"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]
}'
Versioning
Le versioning protège contre les suppressions accidentelles :
aws s3api put-bucket-versioning \
--bucket mon-site-web \
--versioning-configuration Status=Enabled
Classes de stockage
| Classe | Usage | Coût/Go/mois |
|---|---|---|
| Standard | Accès fréquent | ~0,023 $ |
| Intelligent-Tiering | Accès variable | ~0,023 $ |
| Standard-IA | Accès rare | ~0,0125 $ |
| Glacier | Archivage | ~0,004 $ |
Pour un site web, Standard est le choix par défaut. Utilisez des lifecycle rules pour archiver les anciens logs.
CI/CD avec S3
# GitLab CI — Déploiement automatique
deploy:
stage: deploy
image: amazon/aws-cli
script:
- aws s3 sync ./dist/ s3://$BUCKET_NAME --delete
- aws cloudfront create-invalidation --distribution-id $CF_ID --paths "/*"
only:
- main
Conclusion
S3 est la solution idéale pour héberger des sites statiques : performant, économique et sécurisé. Lueur Externe déploie et optimise des architectures S3 + CloudFront pour ses clients.