Le titre de cet article est une référence directe au diagramme
"Temps de retard que tout programmeur devrait connaître .
" Il existe actuellement plusieurs versions de ce diagramme, et il est difficile d'établir l'auteur d'origine. Certains disent que c'est
Jeff Dean .
Si vous travaillez sur un projet qui doit atteindre une grande échelle, vous devez équilibrer plusieurs problèmes. Quelles hypothèses faisons-nous et comment les confirmer? Comment entrer rapidement sur le marché? Notre conception supportera-t-elle l'échelle attendue?
L'un des problèmes de la mise à l'échelle est le coût de l'infrastructure. Les fournisseurs de cloud vous permettent de créer des milliers de processeurs et de placer des téraoctets de données en un seul clic. Mais c'est cher, et quelque chose qui est insignifiant pour plusieurs milliers d'utilisateurs peut devenir un énorme trou budgétaire lorsque vous atteignez des millions d'utilisateurs.
Dans cet article, je vais énumérer quelques numéros de référence qui sont utiles à garder à l'esprit lors de l'examen de l'architecture. Ces chiffres ne sont pas destinés à être une estimation précise du budget. Ils aident à déterminer si votre conception a du sens ou si elle va au-delà de ce que vous pouvez vous permettre. Par conséquent, nous considérons des ordres de grandeur et des valeurs relatives, plutôt que des valeurs absolues.
Gardez également à l'esprit que votre entreprise peut bénéficier de remises d'AWS, ce qui peut faire une énorme différence.
Calculs
Quel est le coût actuel du CPU? Grâce à la merveilleuse interface
ec2instances.info, j'ai obtenu des prix médians de vCPU.
Vous pouvez obtenir les données source à partir
du référentiel Github . Je les ai copiés et traités avec un script Python, que j'ai également
utilisé sur Github . Tous les prix sont pour la région eu-west-1.
J'ai évalué les prix au comptant selon divers utilisateurs. Comme les prix changent tout au long de la journée, je n'ai pas pu trouver de source fiable de données.
AWS représente la puissance de calcul de ses machines en unités de calcul élastiques, et 4 calculateurs correspondent plus ou moins à la puissance d'un processeur moderne. Ainsi, les prix ci-dessus sont indiqués pour un seul processeur ou cœur, plutôt que pour une seule instance.
Voici le prix de 1 ECU en dollars par heure dans tous les types de cas que j'ai évalués:

Et voici comment les prix sur demande sont comparés aux réservations d'un et trois ans (acomptes):

Stockage
Vous souhaitez donc une faible latence, une bande passante élevée et prévoyez de tout stocker dans Redis? Ensuite, en plus de ces coûts, le CPU devra payer pour la RAM.
J'ai utilisé la même approche pour obtenir le prix médian de 1 Go de RAM sur EC2. Elasticache est environ la moitié du prix de la demande, mais les prix baissent assez rapidement dans les cas réservés.
Bien qu'il s'agisse du coût net du stockage, vous devez également examiner les modes d'utilisation de vos données. De combien de processeur avez-vous besoin pour travailler 24/7 dans une mémoire 24/7?
Idem pour S3: combien paierez-vous pour les demandes de lecture / écriture? J'ai vu des charges de travail où le coût de stockage sur S3 était négligeable, mais le coût d'écriture d'un grand nombre d'objets sur S3 a fait que l'équipe a écrit son propre système de fichiers au-dessus de S3.
Transfert
Quelques
commentaires sur HackerNews ont indiqué que j'avais manqué les coûts de transmission. En effet, si vous fournissez des données aux utilisateurs finaux ou avez besoin d'une réplication interrégionale, vous devez tenir compte de ces coûts.