Da ist einAWS-MetadatenDienst, der einige Informationen über die EC2-Instanz bereitstellt, an die eine Anfrage gesendet wird http://169.254.169.254/
. Ich frage mich, ob es eine Möglichkeit gibt, anhand dieser Metadaten herauszufinden, ob es sich bei der Instanz um eine „Spot“- oder eine „On Demand“-Instanz handelt.
Antwort1
Die Informationen sind in den Metadaten nicht verfügbar.
Sie können die Instanz-ID jedoch aus den Metadaten abrufen und dann ec2-describe-instances aufrufen, um Instanzinformationen zu Ihrer Instanz abzurufen. In dieser Instanzbeschreibung befindet sich die Anforderungs-ID der Spot-Instanz. Wenn dieses Feld leer ist, handelt es sich nicht um eine Spot-Instanz, andernfalls ist es eine Spot-Instanz.
Antwort2
Ich glaube nicht, dass sie diese Informationen in den Metadaten haben.
Sie können Instanzen, die Sie als Spot-Instanzen starten, ein anderes Profil zuweisen und den Profilnamen verwenden, um zu bestimmen, um welchen Instanztyp es sich handelt. Wenn Ihnen das nicht nach einer sauberen oder praktikablen Lösung erscheint, können Sie immer die Instanz-ID aus den Metadaten abrufen und dann den Befehl ausführen. ec2-describe-spot-instance-requests --filter instance-id=<instanceid>
Wenn der Befehl leer zurückgibt, handelt es sich nicht um eine Spot-Instanz. Wenn der Befehl Daten zurückgibt, handelt es sich um eine Spot-Instanz.
Antwort3
Ich weiß, das ist uralt, aber falls jemand einen Einzeiler möchte:
aws ec2 describe-spot-instance-requests \
--filters Name=instance-id,Values="$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)" \
--region us-east-1 | \
jq -r '.SpotInstanceRequests | if length > 0 then "spot" else "normal" end'
--region
Dementsprechend anpassen
https://gist.github.com/urjitbhatia/c5af8a3d53661cb3d4e896feae23fc1d
Antwort4
Es sieht so aus, als ob sich die Dinge im Laufe der Jahre geändert haben, also funktioniert es jetzt
# a spot instance
$ curl -s --fail http://169.254.169.254/latest/meta-data/instance-life-cycle
spot
# a normal instance
$ curl -s --fail http://169.254.169.254/latest/meta-data/instance-life-cycle
on-demand