Exploitez toute la puissance des SSD NVMe d'EC2 dans AWS EKS - Partie 1 | DevOps

Dans les prochains articles, nous verrons comment activer l'espace d'échange dans les instances EC2 déployées avec EKS. Ceci est la partie 1.

Keywords: eks, ebs, swap, hard drive, aws, ec2, nvme ssd

By Carmen Cincotti  

Saviez-vous que certaines instances EC2 AWS comprennent des SSD NVMe rapides que nous pouvons utiliser comme systèmes de fichiers ou comme espace d’échange ?

Eh bien, c’est vrai ! Au cours des prochains articles, nous verrons comment nous pouvons monter un système de fichiers sur le SSD NVMe local d’une instance AWS EC2, puis utiliser l’intégralité du SSD comme espace d´échange (swap space).

Ressource: Liste des types d’instances EC2 et des offres

Dans cet article, nous découvrirons les SSDs NVMes et leurs différences avec les volumes AWS EBS. Les SSDs NVMes sont Direct Attached Storage, tandis que les volumes EBS sont Network Attached Storage. En travaillant un peu plus pour activer le SSD NVMe, nous pouvons permettre un transfert de données plus rapide pour nos applications qu’en utilisant un volume EBS typique.

Ensuite, nous examinerons plus en détail pourquoi les SSD NVMe peuvent s’avérer particulièrement utiles pour nous, notamment en tant qu’espace d’échange. Il s’agit effectivement d’une RAM secondaire pas chère.

Ressource: Le prix des types instances AWS EC2

Ceci est une série d’articles en plusieurs parties

Dans un prochain article, nous verrons comment utiliser EC2 Launch Templates afin de déployer un Amazon Machine Image (AMI) qui configure le SSD NVMe local en tant qu’échange d’espace au lancement d’une instance AWS EC2 . Cela peut être utilisé lors du déploiement de machines à usage général.

Ensuite, nous apprendrons comment configurer Kubernetes afin que nos instances EC2 soient déployées avec EKS pourra utiliser l’espace d’échange !

Qu’est-ce qu’un SSD NVMe ?

NVMe SSD signifie Non-Volatile Memory Express Solid State Drive.

NVMe SSD

Il s’agit d’un type de disque de stockage qui utilise une interface haut débit et une mémoire flash NAND non volatile pour stocker des données.

Les SSD NVMe offrent des taux de transfert de données beaucoup plus rapides et une latence plus faible par rapport aux disques durs traditionnels et aux SSD basés sur SATA. En effet, ils utilisent une connexion directe à haut débit entre le stockage et le processeur via le bus PCIe.

Les SSD NVMe sont généralement utilisés dans les applications informatiques haute performance, telles que les jeux, le montage vidéo et les applications serveur.

Le SSD NVMe semble être un BG

Mes réflexions : Les SSDs NVMes semblent être un vrai gagnant par rapport aux SSD normaux basés sur SATA.

Étant donné qu’AWS nous offre SSD NVMe gratuitement (car ils sont inclus avec un certain nombre d’instances EC2), nous devrions certainement en profiter.

Stockage en blocs (EBS) vs SSD NVMe (EC2 Instance Store)

En quoi sont-ils différents des volumes AWS EBS ?

Le TLDR est que les SSDs NVMe fournis avec l’instance EC2 sont montés sur l’instance réelle eux-mêmes et donc devraient toujours être plus rapides que les volumes EBS, qui sont connectés à une instance EC2 via le réseau.

Plus précisément, les volumes EBS font partie d’une classe de périphériques de stockage appelée Network Attached Storage (NAS) (stockages en réseau), tandis que les SSDs NVMes locaux sont Direct Attached Storage (DAS) (stockage en attachement direct). Ces deux classes de stockage ont toutes deux des avantages et des inconvénients.

Les volumes EBS sont des stockages en réseau (NAS)

Les volumes EBS font partie d’une classe de périphériques de stockage appelée Network Attached Storage (NAS). Cela signifie qu’ils sont connectés à nos instances AWS dans le cloud via le réseau.

Il s’agit d’une distinction importante, car les NAS ont leurs propres avantages et inconvénients.

Tout simplement:

  • Avantage - Plusieurs utilisateurs peuvent lire et écrire sur un NAS en s’y connectant simplement.
  • Avantage - Un NAT peut continuer à persister même après qu’une instance EC2 s’en est déconnectée.
  • Inconvénient - La lecture/écriture est limitée par la vitesse et la bande passante du réseau.

Les NVM sont des systèmes de stockage en attachement direct (DAS)

Comparez cela à Direct Attached Storage, où le disque est connecté directement à la machine EC2. Ceci est similaire à votre ordinateur que vous utilisez pour lire cet article. Cela devrait donc être un concept familier.

Nous pouvons imaginer que nous ne verrons pas les mêmes inconvénients que le NAS dans ce cas. Ainsi, certains avantages et inconvénients du DAS sont les suivants :

  • Avantage - Vitesses rapides de lecture/écriture, car le disque est directement connecté à l’instance EC2 et ne nécessite pas de se déplacer sur le réseau.
  • Inconvénient - Les données ne persistent que tant que l’instance EC2 est utilisée.
  • Inconvénient/Avantage - Les données sont moins accessibles. Les données ne sont accessibles qu’à la machine à laquelle le stockage est connecté.
    • En termes de sécurité, cela peut être une option plus sûre. C’est pourquoi j’appelle cela à la fois un inconvénient et un avantage.

Quel type de stockage AWS dois-je utiliser ?

L’utilisation des volumes EBS et des SSD NVMe locaux dépend de notre application. Alors… la réponse est : ça dépend.

Utilisez EBS pour le stockage persistant

Cela dit, les volumes EBS doivent être utilisés pour les cas d’utilisation où la persistance des données est une exigence.

Nous pouvons les attacher facilement à nos machines EC2 sans aucune étape supplémentaire, puisque l’interface utilisateur AWS Launch Instance nous permet d’attacher et de monter un EBS assez facilement.

Ressource : Comment attacher un volume EBS à une instance EC2

Utilisez des SSDs NVMes pour un stockage temporaire rapide

L’option SSD NVMe locale est toujours meilleure lorsque notre application demande des opérations de lecture/écriture rapides.

Par conséquent, pour une utilisation en tant qu’espace d’échange, nous voudrons certainement utiliser des SSD NVMe locaux afin de nous rapprocher des performances que nous offre la RAM dédiée.

Bien que, pour être clair, rien n’est plus performant que la RAM dédiée.

En supposant que nous soyons tous sur la même page à propos des SSDs NVMes locaux et de leur supériorité sur les volumes EBS en termes de performances - apprenons-en plus sur l’espace d’échange et pourquoi il peut nous être utile.

Qu’est-ce que l’espace d’échange ?

En termes généraux, l’espace d’échange n’est essentiellement qu’une RAM secondaire, bien qu’elle soit plus lente que la RAM typique d’une machine.

Habituellement, lorsque plus de RAM est nécessaire pour prendre en charge toutes les applications qui en font la demande, l’OS peut “échanger” la mémoire allouée dans la RAM sur le disque, ce qui libère finalement de la RAM pour d’autres applications.

Par conséquent, nous pouvons allouer de l’espace disque en tant qu’espace d’échange afin d’augmenter les limites de mémoire d’une machine EC2.

L’espace d’échange est lent

L’un des inconvénients de l’utilisation de l’espace d’échange est qu’il est beaucoup plus lent que l’utilisation de la RAM dédiée. Si votre application nécessite un accès constant à de grandes quantités de RAM, il peut être préférable d’utiliser une machine EC2 capable de répondre aux demandes de ressources de l’application.

Cependant, si votre application est sujette à des pics d’utilisation de la RAM, l’utilisation de l’espace d’échange peut être une option viable.

Pourquoi ne pas déployer une instance de machine EC2 plus grande ?

Supposons que nous ayons une machine EC2 de type d’instance g4dn.xlarge qui nous coûtera par heure (à la demande) 0,526 $. Le g4dn.xlarge est annoncé comme ayant 4 vCPU et 16 Go de RAM.

Si de temps en temps, notre application demandait 32 Go de mémoire, nous aurions besoin d’augmenter la taille de notre machine à la classe suivante g4dn.2xlarge qui est annoncée comme ayant 32 Go de mémoire. Cela augmenterait nos coûts horaires à 0,752 $.

Voici un résumé de ce que nous savons jusqu’à présent :

  g4dn.xlarge g4dn.2xlarge
RAM
16Go 32Go
$ / hour
0.526 $ 0.752 $
$ / 30 days 378.72 $ 541.44 $
$ / 365 days 4607.76 $ 6587.52 $

Comme nous pouvons le voir, le coût d’exécution d’un g4dn.xlarge sur 30 jours est de 378,72 $, alors que nous sommes contraints de payer 541,44 $ pour une machine g4dn.2xlarge.

La différence est de 162,72 $ par mois, et cette différence grimpe à 1 979,76 $ si on la considère au niveau annuel.

Pour une grande entreprise avec beaucoup d’argent en caisse, cela peut sembler une goutte d’eau dans le seau… mais pouvons-nous activer de la RAM supplémentaire à moindre coût ?

Utiliser un SSD NVMe comme espace d’échange est moins cher

Si nous utilisons une instance AWS EC2 fournie avec un SSD NVMe, le coût de l’espace d’échange est pratiquement gratuit.

Comme je l’ai mentionné précédemment, l’utilisation de l’espace d’échange ne bat pas les performances de l’utilisation de la RAM dédiée. Par conséquent, selon votre cas d’utilisation, payer pour la RAM supplémentaire peut en valoir la peine.

La prochaine fois

Nous allons configurer des EC2 Launch Templates pour voir comment nous pouvons déployer une machine EC2 avec un SSD NVMe inclus activé comme espace d’échange !

Des ressources (en français et anglais)


Comments for Exploitez toute la puissance des SSD NVMe d'EC2 dans AWS EKS - Partie 1 | DevOps



Written by Carmen Cincotti, computer graphics enthusiast, language learner, and improv actor currently living in San Francisco, CA.  Follow @CarmenCincotti

Contribute

Interested in contributing to Carmen's Graphics Blog? Click here for details!