Comment obtenir la taille totale de la mémoire de l'instance AWS à l'aide de python ?


Joseph N

Je souhaite exécuter un script de démarrage python dans l'instance AWS dans lequel je souhaite obtenir la taille totale de la mémoire sélectionnée lors de la création de l'instance.

Je l' ai essayé free -h, des grep MemTotal /proc/meminfocommandes. Mais le problème avec ces commandes est que je reçois une quantité de RAM inférieure à la taille de mémoire réelle que j'ai sélectionnée lors de la création d'une instance (en raison de l'utilisation du système peut-être). Je veux obtenir la taille de mémoire exacte que j'ai sélectionnée lors de la création d'une instance. par exemple, "2 Go" pour "t2.small", "4 Go" pour "c5.large", etc.

De plus, aucune URL de métadonnées n'est disponible pour obtenir la taille de la mémoire de l'instance AWS.

Y'a-t'il un quelconque moyen d'y arriver?

Oscar De Léon

Je ne l'ai pas fait moi-même, mais je pense que le processus pourrait être quelque chose comme:

client = boto3.client('ec2')

type = client.describe_instance_attribute(Attribute='instanceType', InstanceId='YOUR_ID' )

details = client.describe_instance_types( InstanceTypes=[ type ] )

mémoire = détails['InstanceTypes']['MemoryInfo']['SizeInMiB']

Vous devrez donner à l'instance les bonnes autorisations IAM pour obtenir les données (ce n'est pas la même chose que les métadonnées http://169.254.169.254 ).

Vous pouvez également obtenir le type d'instance à partir de http://169.254.169.254/2020-10-27/meta-data/instance-type/ mais j'essaie d'opter pour une solution entièrement python avec boto3.

Articles connexes