0

PaaS PostgreSQL AWS vs Azure

twitterlinkedinmail

Introduction

Maintenant que nous avons vu en détail les performances des PaaS PostgreSQL sur AWS puis sur Azure nous allons essayer de comparer ceux-ci ; nous essaierons de construire un jugement objectif, attention cependant, celui-ci est basé sur un benchmark de type TPC-C, il se peut donc que dans certains cas le comportement observé ne soit pas identique, d’autre part, les configurations postgreSQL ont été laissées à leurs valeurs prédéfinies qui peuvent donc varier d’un “Cloud provider” à l’autre.

Normalisation

De façon à pouvoir comparer il à d’abord fallu “normaliser les PaaS”, c’est à dire pouvoir faire correspondre les types d’instances entre les différents “Cloud Provider”, ainsi les instances de type  “GP” (General Purpose) d’Azure correspondent à des instances “db.m” d’AWS et les instances “MO”  (Memory Optimized) correspondent à des instances de type “db.r” (une remarque qui ne change à rien au test, ce sont à chaque fois des instances de 5eme génération qui sont utilisées, càd “db.m5” ou “db.r5” pour AWS et Gen 5 chez Azure) :

Pour les instances GP Azure provisionne 5Go de RAM / vCore
Pour les instances MO Azure provisionne 10Go de RAM / vCore

AWS  AZURE  
Instance classCPUMEMCLASSCPUMEM
db.m5.8xlarge32128GP_3232160
db.m5.4xlarge1664GP_161680
db.m5.2xlarge832GP_8840
db.m5.xlarge416GP_4420
db.m5.large28GP_2210
db.r5.8xlarge32256MO_3232320
db.r5.4xlarge16128MO_1616160
db.r5.2xlarge864MO_8880
db.r5.xlarge432MO_4440
db.r5.large216MO_2220

On a donc les instances Azure qui sont provisionnées avec un peu plus de mémoire.

Par souci de commodité, dans ce qui suit les dénomination d’instances suivantes seront utilisées pour AWS et Azure :

<GP|MO>_<vCPU>_<Stockage> (la quantité de mémoire allouée pourra donc être retrouvée au besoin dans le tableau ci-dessus.

Comparaison des performances

Nous allons comparer ici AWS (RDS et Aurora) et Azure (Single Server et Flexible Server), Aurora ne pouvant être provisionné que sur des instances de type “db.r”, on restreindra le comparatif à uniquement des instances de type AWS “db.r” et Azure “MO” ; de plus, étant donné que les IOPS ne sont pas une contrainte sur Aurora on utilisera le stockage le plus gros provisionné lors des benchs (2To) comme référence de comparaison et ce même si en fait sur Aurora les 2To ne sont pas réellement provisionnés (pour rappel, sur Aurora le stockage est de facto en augmentation automatique par incrément de 30Go, cf : https://blog.capdata.fr/index.php/aws-rds-aurora-postgresql/).

Remarque : Le stockage provisionné ici est de 2To !!!

Aurora est donc surtout très performant pour des grosses instances (par rapport aux autre PaaS, je rappelle aussi qu’ici le stockage a été sur-dimensionné pour profiter de plus d’IO).
RDS classique s’en sort très bien pour les petites instances.
Azure Single Storage est plus performant qu’Azure Flexible Server (toujours avec un stockage sur-dimensionné car avec un stockage normalement dimensionné la tendance est inversée).

Pour rappel sur les comparatifs complets, cf : https://blog.capdata.fr/index.php/azure-et-postgresql-en-paas/ et  https://blog.capdata.fr/index.php/aws-rds-aurora-postgresql/ et ci-dessous les graphes.

Comparaison performances Azure Single Server vs Flexible Server

Comparaison performances AWS RDS vs AWS Aurora

Comparaison financière

La comparaison financière ci-dessous permet de comparer le “coût d’une transaction” entre les différents PaaS Azure (Single Server et Flexible Server) et AWS (RDS en GP2, RDS en Provisioned IOPS 10k, 30k et Aurora) testés précédemment.

La définition de la “taille” (l’instance utilisée) est définie comme ci-dessus, càd :

<MO|GP>_<vCore>_<stockage en Mo>

Remarque : Pour AWS MO est équivalent aux instances de type db.r5 et GP aux instances de type db.m5

Résumé

Ci-dessous un comparatif avec une taille de stockage à 1To, seule capacité où les tests ont tous été faits (en effet, pour tester du “provisioned IOPS” sur RDS il faut provisionner une quantité suffisante de stockage).

 

SIZE
Azure

Cost / TPM

aws-logo - Futurum Research
Cost / TPM
Single ServerFlexible ServerRDS GP2RDS PIO 10kRDS PIO 30kAurora
MO_2_10240,0200,0250,0160,0730,2508,711
MO_4_10240,0140,0160,0200,0550,6038,407
MO_8_10240,0110,0110,0210,0450,09211,799
MO_16_10240,0190,0180,0420,0620,1088,218

Les coûts sont exprimés en $/mois/transaction

Attention, le tableau ci-dessus peut être trompeur, en effet, il ne tient pas compte de l’activité souhaitée mais fait le postulat que l’on essaie d’avoir le maximum de transactions par minute, ce qui n’est pas souvent le cas.

Ainsi, on peut voir à quel point Aurora, bien qu’étant une solution performante peut vite devenir très onéreuse, en effet, dans le calcul du coût final / TPM a été pris en compte le fait que sur Aurora les IOPS sont facturées en plus du stockage et de l’instance ; ci-dessous le détail de ces IO.

PaaS_sizeNb IO (75eme percentile)
MO_321716014,50994444
MO_8977871,730525966
MO_4445554,741155943
MO_2253022,491465421
MO_161813954,3061938

Remarque, les coûts inhérents au fait de provisionner 10k IOPS et 30k IOPS ont également été pris en compte.

Tableau complet

Et le tableau complet montrant toutes les instances, les TPM et les différents coûts.

SIZEAzure
Azure
aws-logo - Futurum Research
AWS
CostsTPMCost / TPMCostsTPMCost / TPM
Single ServerFlexible ServerSingle ServerFlexible ServerSingle ServerFlexible ServerRDS GP2RDS PIO 10kRDS PIO 30kAurora*RDS GP2RDS PIO 10kRDS PIO 30kAuroraRDS GP2RDS PIO 10kRDS PIO 30kAurora
GP_2_128133,00 €130,00 €1212108010,110 €0,012 €165,34 €1 325,34 €3 645,34 € 11200#N/D#N/D#N/D0#N/D#N/D#N/D
MO_2_128175,00 €175,00 €2029100110,086 €0,017 €228,70 €1 388,70 €3 708,70 €255,28 €20901#N/D#N/D168340#N/D#N/D9
GP_4_128251,00 €247,00 €1779253390,141 €0,010 €313,66 €1 473,66 €3 793,66 € 24066#N/D#N/D#N/D0#N/D#N/D#N/D
MO_4_128337,00 €337,00 €2244296320,150 €0,011 €440,38 €1 600,38 €3 920,38 €496,48 €40168#N/D#N/D307130#N/D#N/D8
GP_8_128488,00 €479,00 €2045418280,239 €0,011 €610,30 €1 770,30 €4 090,30 € 42873#N/D#N/D#N/D0#N/D#N/D#N/D
MO_8_128660,00 €660,00 €1824633730,362 €0,010 €863,74 €2 023,74 €4 343,74 €978,88 €46677#N/D#N/D480070#N/D#N/D12
GP_16_128963,00 €945,00 €1619533160,595 €0,018 €1 203,58 €2 363,58 €4 683,58 € 36851#N/D#N/D#N/D0#N/D#N/D#N/D
MO_16_1281 305,00 €1 306,00 €1384591600,943 €0,022 €1 710,46 €2 870,46 €5 190,46 €1 943,68 €41830#N/D#N/D1278600#N/D#N/D8
GP_2_256146,00 €143,00 €2418122580,060 €0,012 €182,37 €1 342,37 €3 662,37 € 11513#N/D#N/D#N/D0#N/D#N/D#N/D
MO_2_256188,00 €188,00 €6519117740,029 €0,016 €245,73 €1 405,73 €3 725,73 €269,36 €16377#N/D#N/D168340#N/D#N/D9
GP_4_256264,00 €260,00 €4793306070,055 €0,008 €330,69 €1 490,69 €3 810,69 € 20136#N/D#N/D#N/D0#N/D#N/D#N/D
MO_4_256350,00 €350,00 €16088326410,022 €0,011 €457,41 €1 617,41 €3 937,41 €510,56 €39128#N/D#N/D307130#N/D#N/D8
GP_8_256501,00 €492,00 €7896603810,063 €0,008 €627,33 €1 787,33 €4 107,33 € 47657#N/D#N/D#N/D0#N/D#N/D#N/D
MO_8_256673,00 €673,00 €13657587400,049 €0,011 €880,77 €2 040,77 €4 360,77 €992,96 €57498#N/D#N/D480070#N/D#N/D12
GP_16_256976,00 €958,00 €5559661770,176 €0,014 €1 220,61 €2 380,61 €4 700,61 € 65691#N/D#N/D#N/D0#N/D#N/D#N/D
MO_16_2561 318,00 €1 319,00 €5548693310,238 €0,019 €1 727,49 €2 887,49 €5 207,49 €1 957,76 €60069#N/D#N/D1278600#N/D#N/D8
GP_2_512174,00 €171,00 €496890930,035 €0,019 €216,42 €1 376,42 €3 696,42 € 19401#N/D#N/D#N/D0#N/D#N/D#N/D
MO_2_512216,00 €216,00 €10479104500,021 €0,021 €279,78 €1 439,78 €3 759,78 €297,52 €22901#N/D#N/D168340#N/D#N/D9
GP_4_512292,00 €288,00 €9725230450,030 €0,012 €364,74 €1 524,74 €3 844,74 € 29554#N/D#N/D#N/D0#N/D#N/D#N/D
MO_4_512378,00 €378,00 €23090286560,016 €0,013 €491,46 €1 651,46 €3 971,46 €538,72 €32332#N/D#N/D307130,015 €#N/D#N/D8,405 €
GP_8_512529,00 €520,00 €21327473920,025 €0,011 €661,38 €1 821,38 €4 141,38 € 76063#N/D#N/D#N/D0,009 €#N/D#N/D#N/D
MO_8_512701,00 €701,00 €36539641920,019 €0,011 €914,82 €2 074,82 €4 394,82 €1 021,12 €73817#N/D#N/D480070,012 €#N/D#N/D11,798 €
GP_16_5121 004,00 €986,00 €33032671480,030 €0,015 €1 254,66 €2 414,66 €4 734,66 € 85698#N/D#N/D#N/D0,015 €#N/D#N/D#N/D
MO_16_5121 346,00 €1 347,00 €26944738710,050 €0,018 €1 761,54 €2 921,54 €5 241,54 €1 985,92 €78345#N/D#N/D1278600,022 €#N/D#N/D8,218 €
GP_2_1024228,00 €225,00 €7707107140,030 €0,021 €284,51 €1 444,51 €3 764,51 € 195462057422442#N/D0,015 €0,070 €0,168 €#N/D
MO_2_1024270,00 €270,00 €13245108050,020 €0,025 €347,87 €1 507,87 €3 827,87 €353,84 €217802058715313168340,016 €0,073 €0,250 €8,711 €
GP_4_1024346,00 €342,00 €15649234560,022 €0,015 €432,83 €1 592,83 €3 912,83 € 298993068826189#N/D0,014 €0,052 €0,149 €#N/D
MO_4_1024432,00 €432,00 €30131269260,014 €0,016 €559,55 €1 719,55 €4 039,55 €595,04 €28520313116699307130,020 €0,055 €0,603 €8,407 €
GP_8_1024583,00 €574,00 €51375564280,011 €0,010 €729,47 €1 889,47 €4 209,47 € 624964541647342#N/D0,012 €0,042 €0,089 €#N/D
MO_8_1024755,00 €755,00 €69446695650,011 €0,011 €982,91 €2 142,91 €4 462,91 €1 077,44 €461944734548372480070,021 €0,045 €0,092 €11,799 €
GP_16_10241 058,00 €1 040,00 €77250739930,014 €0,014 €1 322,75 €2 482,75 €4 802,75 € 748944645852959#N/D0,018 €0,053 €0,091 €#N/D
MO_16_10241 400,00 €1 401,00 €72340771910,019 €0,018 €1 829,63 €2 989,63 €5 309,63 €2 042,24 €4345647841491081278600,042 €0,062 €0,108 €8,218 €
GP_2_2048337,00 €334,00 €958566210,035 €0,050 €420,70 €1 580,70 €3 900,70 € 22540#N/D#N/D#N/D0,019 €#N/D#N/D#N/D
MO_2_2048379,00 €379,00 €1112083310,034 €0,045 €484,06 €1 644,06 €3 964,06 €466,48 €20761#N/D#N/D168340,023 €#N/D#N/D8,718 €
GP_4_2048455,00 €451,00 €24501206090,019 €0,022 €569,02 €1 729,02 €4 049,02 € 42415#N/D#N/D#N/D0,013 €#N/D#N/D#N/D
MO_4_2048541,00 €541,00 €37207246240,015 €0,022 €695,74 €1 855,74 €4 175,74 €707,68 €44550#N/D#N/D307130,016 €#N/D#N/D8,410 €
GP_8_2048692,00 €683,00 €62430549950,011 €0,012 €865,66 €2 025,66 €4 345,66 € 68180#N/D#N/D#N/D0,013 €#N/D#N/D#N/D
MO_8_2048864,00 €864,00 €74070671940,012 €0,013 €1 119,10 €2 279,10 €4 599,10 €1 190,08 €70506#N/D#N/D480070,016 €#N/D#N/D11,801 €
GP_16_20481 167,00 €1 149,00 €58392715740,020 €0,016 €1 458,94 €2 618,94 €4 938,94 € 72923#N/D#N/D#N/D0,020 €#N/D#N/D#N/D
MO_16_20481 509,00 €1 510,00 €74289674490,020 €0,022 €1 965,82 €3 125,82 €5 445,82 €2 154,88 €76100#N/D#N/D1278600,026 €#N/D#N/D8,219 €

*Coûts Aurora : Sont exclu ici les coûts inhérents aux IOPS qui sont à rajouter à la facture globale (0.00000022 / IO mensuelle)

Comparatif TPM / Coût

Stockage 128Mo

Stockage 256Mo

Stockage 512Mo

Stockage 1024Mo

Stockage 2048Mo

*Coûts Aurora : Sont exclu ici les coûts inhérents aux IOPS qui sont à rajouter à la facture globale (0.00000022 / IO mensuelle)

Conclusion

Ce comparatif aura montré d’une part que bien qu’Aurora soit un PaaS très performant qui de prime abord peut paraitre peu onéreux (si on ne prend que le prix de base instance + stockage) ce prix peut vite devenir important en fonction des opérations (et donc des IO) lancées sur celui-ci, on le réservera donc à des besoins spécifiques bien calibrés.

D’autre part, Azure bien qu’assez récent dans le domaine des PaaS PostgreSQL se montre un très bon challenger face à AWS avec des tarifications assez agressives et des performances plus qu’acceptables notamment sur les instances de type Flexible Server (performances à revérifier lors de la disponibilité en “General Availability” tout de même).

Continuez votre lecture sur le blog :

twitterlinkedinmail

Capdata team

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.