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

Préparez-vous à une expérience palpitante ! Dans les prochains articles, découvrez comment activer l'espace d'échange dans les instances EC2 déployées avec EKS. Ne manquez pas cette partie 2 !

Keywords: eks, ebs, swap, disque dur, aws, ec2, nvme ssd

By Carmen Cincotti  

Êtes-vous prêt pour des performances de disque haute vitesse ? Dans cette passionnante Partie 2 de notre série sur l’utilisation des SSD NVMe EC2 dans AWS EKS, je vous montrerai comment booster vos applications avec un stockage ultrarapide !

La semaine dernière, nous avons exploré ce qu’est un SSD NVMe et comment il diffère des volumes EBS AWS (NAS vs DAS), ainsi que les implications en termes de coûts.

Ressource : Qu’est-ce qu’un SSD NVMe ?

Dans cette partie de la série, il est temps de monter d’un cran et de plonger dans le monde exaltant de la configuration et du montage des SSD NVMe pour des performances maximales avec les Modèles de lancement EC2.

Il s’agit d’une série d’articles en plusieurs parties

Mais attendez, ce n’est que la Partie 2 de notre série. Dans un futur article, nous passerons à la vitesse supérieure et vous montrerons comment configurer Kubernetes pour activer l’espace d’échange sur vos instances EC2 déployées avec EKS. Restez à l’écoute !

Montage d’un SSD NVMe via les Modèles de Lancement

Oubliez la méthode traditionnelle de configuration de vos SSD NVMe via ssh. Nous passons à la vitesse supérieure avec les Modèles de Lancement EC2 d’AWS, l’outil ultime pour automatiser le processus et libérer tout le potentiel de vos instances EC2.

Étape 0 : Prérequis — Choisissez un type d’instance EC2 AWS avec un SSD NVMe

Avant d’accélérer la vitesse, nous devons nous assurer d’utiliser le bon type d’instance EC2 qui est livré avec un SSD NVMe. Il s’agit d’une étape critique, car le script de lancement que nous injecterons dans notre machine EC2 ciblera un SSD NVMe.

Pour trouver une instance EC2 qui est livrée avec un SSD NVMe, vous pouvez visiter la page de la liste des types d’instances et des offres EC2 AWS.

Vous devrez chercher une machine qui a un SSD NVMe répertorié sous la colonne Instance Storage.

Voici par exemple la liste pour les instances g4dn.xlarge et g4dn.2xlarge :

Instance GPUs vCPU Memory (GiB) GPU Memory (GiB) Instance Storage (GB)
g4dn.xlarge 1 4 16 16 1 x 125 NVMe SSD
g4dn.2xlarge 1 8
32 16 1 x 225 NVMe SSD

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

Comme vous pouvez le voir, le g4dn.xlarge est livré avec un SSD NVMe de 125 Go et le g4dn.2xlarge est livré avec un SSD NVMe de 225 Go.

Ces machines sont relativement chères. Donc, lors de la configuration de notre instance EC2, nous utiliserons c6gd.medium qui est une instance AWS EC2 Graviton beaucoup moins chère.

Étape 1 : Commençons avec les modèles de lancement EC2 !

Préparez-vous pour une aventure passionnante alors que nous créons un modèle de lancement EC2 !

Cette fonctionnalité incroyable nous permet de lancer plusieurs instances EC2 facilement, sans avoir à les configurer individuellement. Dites adieu aux tâches répétitives et bonjour à la puissance des modèles !

Pour commencer, nous naviguerons vers le menu EC2 > Launch templates.

Ensuite, nous cliquerons sur le bouton orange avec le texte Create launch template.

Bouton de création de modèles de lancement AWS

Vous devriez voir un menu qui ressemble à cette image :

Menu de création de modèles de lancement AWS

Étape 2 : Configuration initiale et choix de l’image de machine Amazon (AMI)

Après avoir défini le nom du modèle de lancement, vous devrez choisir une image de machine Amazon (AMI). Une AMI est essentiellement une image fournie par AWS qui est nécessaire pour lancer une instance.

Choisir une AMI

Je choisis une Community AMI (AMI de la communauté), al2023-ami-minimal-2023.0.20230322.0-kernel-6.1-arm64 ami-0889ff9188674a22a, que vous pouvez trouver en recherchant dans la boîte de recherche, puis en cliquant sur Community AMI.

Qu’est-ce qui rend cette AMI si spéciale ? Préparez-vous pour la grande révélation - elle est compilée avec l’architecture amd64 incroyable, ce qui signifie que nous pouvons profiter des instances AWS graviton à la prochaine étape !

Étape 3 : Choisissez votre instance Graviton EC2 activée NVMe

Afin de rester abordable, nous utiliserons une instance Graviton puissante pour exécuter notre AMI choisie - le c6gd.medium. Avec son SSD NVMe de 59 Go, nous sommes prêts pour un stockage haute vitesse !

Type d'instance AWS

Après avoir choisi le type d’instance, vous devrez configurer la configuration de la paire de clés pour pouvoir vous connecter en SSH à votre instance, si vous le souhaitez.

Étape 4 : Ajouter le script de lancement à User Data

Le moment que nous attendions tous - ajouter le script de lancement de l’instance dans le champ Donnée utilisateur (User Data) !

C’est là que la vraie magie opère, car le script que nous ajoutons ici sera exécuté automatiquement lorsque notre instance EC2 sera lancée. C’est comme lancer un sort qui configure automatiquement notre SSD NVMe à chaque fois que nous utilisons ce modèle de lancement !

Étape 4a : Script pour monter le SSD NVMe comme stockage temporaire

Voici le script pour monter le SSD NVMe dans un répertoire /data choisi de manière arbitraire.

sudo file -s /dev/nvme1n1 sudo mkfs -t xfs /dev/nvme1n1 sudo mkdir /data sudo mount /dev/nvme1n1 /data

Note : Maximisez les performances de votre SSD avec les Meilleures Pratiques !

Quand il s’agit de SSD, chaque octet et chaque opération compte, et nous allons apprendre les secrets pour débloquer leur plein potentiel !

Limite de 4096 octets

Tout d’abord, effectuez toujours les opérations d’écriture par multiples de 4 096 octets et alignez-les sur une limite de 4 096 octets. Cela garantit des performances optimales et évite les surcharges inutiles.

Lorsque vous remplissez les volumes du stockage basé sur SSD de votre instance, les performances d’écriture diminuent en raison du travail supplémentaire que le contrôleur SSD doit effectuer pour la gestion de l’espace, telle que la recherche d’espace disponible, la réécriture des données existantes et l’effacement de l’espace inutilisé.

Ce processus, connu sous le nom de collecte des déchets (garbage collection), entraîne une amplification interne de l’écriture, qui est le ratio des opérations d’écriture du SSD aux opérations d’écriture de l’utilisateur.

La diminution des performances est encore plus significative si les opérations d’écriture ne sont pas effectuées par multiples de 4 096 octets ou ne sont pas alignées sur une limite de 4 096 octets.

Il est donc recommandé d’effectuer les opérations d’écriture par multiples de 4 096 octets.

Sur-provisionnement

L’écriture d’une quantité plus petite d’octets ou d’octets non alignés nécessite que le contrôleur SSD lise les données environnantes et stocke le résultat dans un nouvel emplacement, ce qui entraîne une amplification de l’écriture accrue, une latence accrue et une réduction des performances d’E/S.

Pour atténuer l’impact de l’amplification de l’écriture, les contrôleurs SSD peuvent utiliser la surprovisionnement, qui consiste à réserver de l’espace dans le stockage d’instance SSD pour une gestion plus efficace de l’espace.

Cependant, les volumes de stockage basé sur SSD fournis à une instance ne disposent pas d’espace réservé pour le surprovisionnement. Pour réduire l’amplification de l’écriture et améliorer les performances, il est recommandé de laisser 10 % du volume non partitionné afin que le contrôleur SSD puisse l’utiliser pour le surprovisionnement. Cela peut diminuer la capacité de stockage utilisable, mais cela peut augmenter les performances même lorsque le disque est presque plein.

Des ressources (en français et anglais)


Comments for Exploitez toute la puissance des SSD NVMe d'EC2 dans AWS EKS - Partie 2 | 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!