Combien coûte l’hébergement de ce Blog, chez AWS ?
17 juillet 2020 —Ce blog est hébergé chez AWS depuis fin 2019. Il s’agit d’un site statique1 assez classique2 :
- Les fichiers sont stockés sur S3
- Ils sont exposés en HTTPS par Cloudfront, qui utilise un certificat TLS fourni par ACM
- Le nom de domaine
pascal-martin.fr
est acheté chez OVH et tout le travail est fait par le service Route 53 d’AWS, où est l’enregistrementblog.pascal-martin.fr
.
Héberger ce blog sur cette stack me coûte entre trois et quatre dollars3 par mois :
Pour la suite de cet article, je vais me concentrer sur les coûts de mai 2020.
Le stockage des fichiers, sur S3 : 0.09 USD
- 2,168 requêtes PUT / LIST : $0.01
- 137,547 requêtes GET : $0.06
- 0.713 GB/month : $0.02
Les requêtes HTTP des utilisateurs n’arrivent que rarement jusqu’à S3 : elles passent par le CDN Cloudfront, qui stocke la plupart des fichiers en cache. Le coût de requêtes en GET est donc faible.
Le coût du CDN Cloudfront : 2.13 USD
- Canada : $0.02
- EU (Frankfurt + London) : $0.19 + $0.32
- Europe : $1.17
- United states : $0.25
- US (N. Virginia + Ohio + Oregon) : $0.06 + $0.05 + $0.06
Pourquoi un découpage entre « Europe » et « EU (Frankfurt) », « EU (London) » ? Ces trois lignes se découpent ainsi :
Les coûts à Frankfurt et London correspondent à des exécutions de fonctions Lambda@Edge4 :
- Frankfurt
- 1,356 GB-Second : $0.07
- 204,580 requêtes : $0.12
- London
- 2,303 GB-Second : $0.12
- 344,809 requêtes : $0.21
Les fonctions Lambda@Edge sont facturées en fonction de leur nombre d’exécutions et de leurs durées d’exécution, modulés par la quantité de mémoire réservée. Elles sont aussi exécutées au plus proche des utilisateurs : à Frankfurt et London, pour les utilisateurs en Europe5.
Les coûts en « Europe » correspondent aux téléchargements de fichiers6 :
- 46,968 requêtes HTTP : $0.04
- 356,924 requêtes HTTPS : $0.43
- 0 GB de transfert depuis Internet vers S3 : $0.00
- 8.239 GB de transfert vers Internet : $0.70
Ici, les coûts sont différents en fonction du continent — d’où une ligne pour Europe et une autre pour United States.
Avant d’effectuer leurs requêtes HTTP, les utilisateurs effectuent une requête DNS, via Route 53. Ici, deux lignes de coûts :
- Hébergement d’une zone chez AWS : $0.50 (voir ci-dessous)
- 288,981 requêtes DNS : $0.12
Cette zone DNS me sert aussi pour d’autres choses et je ne compte donc que deux tiers de son coût total — soit 0.33 USD par mois — pour le blog. Les autres services étant peu utilisés, je ne m’embête pas à essayer de répartir plus finement le coût des requêtes.
À cela, ajoutons 0.58 EUR7 pour le nom de domaine. Comme dit plus haut, je l’utilise aussi pour d’autres choses et je ne compte donc que deux tiers de son coût — soit 0.39 EUR = 0.44 USD par mois — pour le blog.
Si j’essaye de résumer, voici les coûts d’hébergement de ce blog, en mai 2020 :
- $0.44 pour le nom de domaine chez OVH
- $0.50 pour Route 53
- $2.13 pour le CDN Cloudfront
- $0.09 pour S3
Soit $3.16, auxquels j’ajoute 20% de TVA, soit $0.63.
J’arrive donc à un total TTC de 3.79 USD en mai 2020, soit 3.33 EUR.
Dans Le Cloud et chez AWS, nous assemblons des services pour créer notre hébergement. Tout se paye8 et chaque coût peut être découpé en une multitude de sous-lignes… Je regarde souvent des factures dont le montant est plusieurs ordres de magnitude au-dessus de celle-ci, c’est assez intéressant à analyser… Et encore plus à essayer d’optimiser ;-)
D’ailleurs, pour un site plus sérieux ou professionnel, ces coûts seraient probablement plus élevés :
- J’activerais des logs sur Cloudfront, ils seraient stockés sur S3 et je pourrais les analyser avec Athena.
- J’activerais peut-être des métriques plus précises, notamment sur Cloudfront.
- J’activerais peut-être aussi quelques services supplémentaires : Cloudtrail, GuardDuty…
Oui, encore quelques services de plus ;-)
Pour vous donner une idée du trafic, voici le nombre de pages HTML vues par mois entre janvier et mai 2020, d’après Google Analytics :
Et voici le nombre de requêtes HTTP, d’après Cloudfront9 :
Pour terminer, un peu de perspective :
- J’écris trop rarement sur ce blog… Mais quand je le fais, je passe plusieurs heures sur chaque article. Si je facturais ce temps, chaque article coûterait nettement plus cher que l’hébergement annuel du blog entier ;-)
- Je pourrais payer moins cher par requête si je montais et administrais un serveur dédié… Mais il faudrait que j’y passe du temps régulièrement.
- Je pourrais bénéficier d’un hébergement gratuit via Github Pages ou une autre offre du même type. Je ne le souhaite pas.
Disclaimer : mon utilisation d’AWS pour héberger ce blog et les chiffres présentés dans cet article datent tous d’avant que je ne sois reconnu comme « AWS Hero ».
-
J’utilise, depuis un an ou deux, le générateur de sites statiques Hugo — après avoir utilisé Dotclear, puis un moteur de blog développé par moi-même et Sculpin… ↩︎
-
J’ai plusieurs sites statiques qui suivent le même principe : bucket S3 + Cloudfront, quelques fonctions Lambda@Edge si besoin, ACM et Route 53. J’en manipule aussi en contexte professionnel. ↩︎
-
Les factures AWS sont en dollars américains. Si vous êtes dans une vieille banque qui prélève 1 EUR de frais de transaction pour chaque paiement en USD (une des raisons qui m’ont poussé à changer de banque), configurez la facturation AWS pour que le prélèvement soit fait en EUR ;-) ↩︎
-
Vous l’avez peut-être vu sur la capture de Cost Explorer reproduite tout en haut de cet article : avant février 2020, le coût des Lambda@Edge était imputé sur le service Lambda. Depuis mars, il est imputé sur le service Cloudfront. Le genre de petites choses qui viennent complexifier l’analyse et le suivi des coûts ^^. ↩︎
-
Et, visiblement, les tarifs sont différents selon les régions. ↩︎
-
Nombres de requêtes HTTP et HTTPS (oui, deux coûts différents) et bande passante consommée – oui, un coût pour les requêtes plus un autre pour les octets transferrés (avec un coût différent en entrant et en sortant). ↩︎
-
6.99 EUR par an (hors-taxes) pour un nom de domaine en
.fr
chez OVH, divisé par douze. ↩︎ -
Encore que, AWS propose un free tier qui permet de s’amuser et de construire déjà pas mal de petites choses sympa… ↩︎
-
Ces statistiques incluent donc celles et ceux d’entre vous qui bloquent Google Analytics – mais comptent des requêtes HTTP et pas des pages vues. Chaque page correspond à plusieurs requêtes : images, JS et CSS… ↩︎