Comment puis-je augmenter la taille des volumes Amazon EBS dans AWS Batch à l'aide d'un modèle de lancement ?
Date de la dernière mise à jour : 19/08/2020
Je souhaite augmenter la taille des volumes Amazon Elastic Block Store (Amazon EBS) dans AWS Batch à l'aide d'un modèle de lancement.
Brève description
Pour augmenter la taille des volumes Amazon EBS dans AWS Batch, vous devez créer un modèle de lancement avant de l'associer à votre environnement de calcul.
Vous pouvez créer un modèle de lancement avec la console Amazon Elastic Compute Cloud (Amazon EC2) ou l'interface de ligne de commande AWS (AWS CLI). La résolution suivante vous montre comment créer un modèle de lancement avec l'interface de ligne de commande AWS.
Remarque : le DeviceName sur le modèle de lancement peut différer en fonction de la version d'Amazon Machine Image (AMI) optimisée par Amazon Elastic Container Service (Amazon ECS) que vous utilisez. Par défaut, AWS Batch est basé sur Amazon Linux 1 qui est fourni avec deux volumes Amazon EBS (/dev/xvda et /dev/xvdcz). Si vous utilisez Amazon Linux 2, AWS Batch n'a qu'un seul volume (/dev/xvda). Pour plus d'informations, consultez la section Configuration du stockage AMI.
Important : pour augmenter votre limite de stockage au-delà de la limite de stockage Docker (10 Gio par conteneur) pour Amazon Linux 1, consultez la section Comment résoudre l'erreur « Aucun espace restant sur l'appareil » dans AWS Batch ?
Résolution
Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, assurez-vous que vous utilisez la version la plus récente de l'interface de ligne de commande AWS CLI.
Créer un modèle de lancement
1. Créez un fichier nommé launch-template-data.json pour redimensionner les volumes pour votre environnement de calcul. Reportez-vous aux exemples suivants.
Exemple de modèle pour augmenter les volumes pour Amazon Linux 1 (/dev/xvda) et (/dev/xvdcz) :
{
"LaunchTemplateName":"increase-all-volume",
"LaunchTemplateData": {
"BlockDeviceMappings": [
{
"Ebs": {
"DeleteOnTermination": true,
"VolumeSize": 50,
"VolumeType": "gp2"
},
"DeviceName": "/dev/xvda"
},
{
"Ebs": {
"DeleteOnTermination": true,
"VolumeSize": 75,
"VolumeType": "gp2"
},
"DeviceName": "/dev/xvdcz"
}
]
}
}
Exemple de modèle pour augmenter le volume pour Amazon Linux 2 (/dev/xvda) :
{
"LaunchTemplateName": "increase-volume",
"LaunchTemplateData": {
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"VolumeSize": 100,
"VolumeType": "gp2"
}
}
]
}
}
2. Pour créer un modèle de lancement, exécutez la commande suivante :
aws ec2 --region us-east-1 create-launch-template --cli-input-json file://launch-template-data.json
Remarque : remplacez us-east-1 par votre région AWS.
La sortie est similaire à ce qui suit :
{
"LaunchTemplate": {
"LaunchTemplateId": "lt-06935eb650e40f886",
"LaunchTemplateName": "increase-volume",
"CreateTime": "2019-12-26T09:40:46.000Z",
"CreatedBy": "arn:aws:iam::12345678999:user/alice",
"DefaultVersionNumber": 1,
"LatestVersionNumber": 1
}
}
Créer un environnement de calcul à associer à votre nouveau modèle de lancement
1. Ouvrez la console AWS Batch.
2. Dans le volet de navigation, sélectionnez « Compute environments » (Environnements de calculs).
3. Choisissez « Create environment » (Créer un environnement).
4. Dans la section « Configure your Compute resources » (Configurer vos ressources de calcul), pour « Launch Template », (Modèle de lancement), sélectionnez le modèle de lancement que vous avez créé précédemment.
5. Sélectionnez « Create » (Créer).
Remarque : les instances affichent les nouvelles tailles de disque lorsqu'AWS Batch les lance.
6. Pour tester si les volumes sont redimensionnés, utilisez SSH pour vous connecter à l'instance lancée par AWS Batch, puis exécutez la commande suivante :
$ lsblk
Le résultat ressemble à l'exemple suivant :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 50G 0 disk
`-xvda1 202:1 0 50G 0 part /
xvdcz 202:26368 0 75G 0 disk
`-xvdcz1 202:26369 0 75G 0 part
|-docker-docker--pool_tdata 253:1 0 74.1G 0 lvm
| `-docker-docker--pool 253:2 0 74.1G 0 lvm
| `-docker-202:1-394378-b6aedb5f6f6fd8af3731edb7043bafa704d9ff9752495f8eb24e613ec5dd85fd
253:3 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b6aedb5f6f6fd8a
`-docker-docker--pool_tmeta 253:0 0 80M 0 lvm
`-docker-docker--pool 253:2 0 74.1G 0 lvm
`-docker-202:1-394378-b6aedb5f6f6fd8af3731edb7043bafa704d9ff9752495f8eb24e613ec5dd85fd
253:3 0 10G 0 dm /var/lib/docker/devicemapper/mnt/b6aedb5f6f6fd8a
La sortie indique que /dev/xvda est de 50G et que /dev/xvdcz est de 75G.
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?