Ma question concerne les machines virtuelles et la livraison de leur contenu via la connexion des serveurs à Internet.
J'ai une instance de fenêtres Ec2 et sa connexion réseau semble être de 100 Mbps
Si je devais fournir du contenu à partir de cette instance EC2, est-ce mon goulot d'étranglement potentiel?
En quoi s3 diffère-t-il, je suppose qu'il n'y a pas de véritable goulot d'étranglement sortant potentiel avec s3?
Remarque: je sais que s3 et leur CDN seraient mieux pour le contenu statique, mais je dois explorer cette situation pour l'instant. Nos pages HTML doivent accéder à une page côté serveur via AJAX, et parce qu'il n'y a pas de travail à l'épreuve des bombes pour le moment, notre contenu et notre serveur doivent être exactement sur le même domaine, il est donc exclu d'utiliser S3.
Bande passante nécessaire: je ne suis pas sûr, nous pourrions avoir jusqu'à 100 utilisateurs téléchargeant des vidéos à tout moment, probablement plus. Les vidéos peuvent mesurer jusqu'à 5 Mo chacune, mais elles en afficheraient jusqu'à 20.
la source
Réponses:
Je ne peux pas parler pour les instances Windows, mais je suppose que leurs caractéristiques de base sont assez similaires à celles des instances Linux.
Votre estimation de l'utilisation de la bande passante est de 100 téléchargements vidéo simultanés (je ne sais pas si vous voulez dire télécharger le fichier ou diffuser la vidéo - je suppose que c'est le dernier). Si nous prenons un débit de 512 kbps, vous avez besoin d'environ 51 Mbit / s ou 6,5 Mo / s.
Les instances EC2 diffèrent dans leurs performances d'E / S (ce qui inclut la bande passante). Il existe 3 niveaux de performances d'E / S: faible, modéré et élevé. Gardez à l'esprit, cependant, que les E / S de disque (c'est-à-dire des volumes EBS) dépendent également de la bande passante. Vous ne pouvez vraiment considérer la bande passante au sein du réseau EC2 (car elle sera complètement variable sur Internet).
Quelques chiffres typiques pour quantifier «faible», «moyen» et «élevé» (différentes sources citent des nombres différents pour les valeurs théoriques, de sorte qu'ils peuvent ne pas être complètement précis).
Élevé: théorique: 1 Gbit / s = 125 Mo / s; Réaliste ( source ): 750 Mbps = 95 Mo / s
Modéré: théorique: 250 Mbps; Réaliste ( source, p57 ): 80 Mbps = 10 Mo / s
Faible: théorique: 100 Mbps; Réaliste (d'après mes propres tests): 10-15Mbps = 1-2MB / s
(Il y a également un niveau «très élevé» (10 Gbit / s théorique) mais cela ne s'applique qu'aux instances de calcul de cluster uniquement).
Un autre point à mentionner est le degré de variation. Sur des instances plus petites, les performances sont plus variées car les composants physiques sont partagés entre plusieurs machines virtuelles. Quoi qu'il en soit, vous pouvez vous attendre à une variation d'environ +/- 20% de vos performances (sources: 1 , 2 , 3 ). Dans votre cas (selon les hypothèses / calculs en haut), vous devrez peut-être une bande passante maximale de 13 Mo / s (double 6,5 Mo, car les E / S disque sont également limitées au réseau). Si vous transférez un contenu à faible bande passante, vous devriez pouvoir utiliser une instance avec des performances d'E / S «modérées» (voir la page des types d'instance), si vos calculs entraînent une exigence de bande passante plus élevée, vous aurez besoin d'une instance avec des performances d'E / S «élevées». Le simple streaming des données ne doit pas être lié au processeur ou à la mémoire, mais le maintien de 100 connexions simultanées nécessitera probablement au moins une instance de taille moyenne - et si la bande passante est un problème, sur la base de ce qui précède, une grande instance serait un pari plus sûr).
Je recommanderais de comparer les serveurs que vous lancez pour voir s'ils répondent à vos besoins (calculés). Lancez deux instances (du même type) et exécutez-les
iperf
sur chacune en utilisant les adresses IP privées des instances - vous devrez ouvrir le port 5001 dans votre groupe de sécurité si vous l'exécutez avec les paramètres par défaut). De plus, la plupart des tests en dehors du réseau EC2 montrent des résultats compris entre 80 et 130 Mbps (grandes instances) - bien que ces chiffres ne soient pas nécessairement significatifs.Un CDN serait mieux adapté à vos besoins, si votre configuration le permet. S3 semble avoir une limite d'environ 50 Mo / s pour la bande passante (au moins à partir d'une seule instance) selon cet article , mais c'est plus élevé que ce que vous devriez exiger (S3 ne prend pas en charge la diffusion en continu). Cloudfront serait mieux adapté à votre tâche (car il est conçu comme un CDN) et prend en charge 1000 Mbps = 125 Mo / s par défaut ( source ) avec une bande passante plus élevée disponible sur demande et peut également diffuser du contenu)
la source
Les chiffres semblent changer au fil du temps et à mesure que le nombre de types d'instances différents prolifèrent. Mais un certain nombre de personnes affichent des repères. J'ai eu de la chance en googlant
[instance category] ec2 network benchmark
.Par exemple, je voulais connaître la bande passante d'une
m4.xlarge
instance, alors j'ai cherchéec2 m4 network benchmark
. J'ai trouvé ce résultat de test sur le blog d'ingénierie du Washington Post:la source