AWS EC2 qu'est-ce qu'un ID de réservation exactement et que représente-t-il?

13

J'ai fait un script qui crée des instantanés de nos volumes EC2. Le script examine les instances en cours d'exécution, les volumes connectés à ces instances, puis crée des instantanés pour ces volumes, en ignorant les autres.

En utilisant describe-instances, j'obtiens des ID de réservation, pas des ID d'instance. C'est déroutant, mais c'est comme ça. Lorsqu'une instance est démarrée, une réservation est créée pour cette instance.

Je suis toujours confus au sujet du concept de réservation.

Note latérale: Je sais ce que sont les instances réservées, ce qui est différent de ce que je décris ici. Une «instance réservée» signifie que vous louez une instance pour un an ou deux ou trois, et vous obtenez une réduction de prix pour cela. Vous réservez donc un t2.medium pour un an, et si vous ne l'utilisez pas, vous payez toujours, mais si vous l'utilisez, c'est moins cher que la normale.

Revenons maintenant à l '"ID de réservation". La FAQ AWS dit:

Chaque instance lancée par EC2 a un ID de réservation. Un ID de réservation a une relation un à un avec une demande de lancement d'instance, mais peut être associé à plusieurs instances si vous lancez plusieurs instances à l'aide de la même demande de lancement.

Ensuite, il y a cette question SE: quel est le but des `` réservations '' dans Amazon EC2

On ne sait toujours pas exactement ce que représente un ID de réservation

Si vous lancez une instance à la fois, chaque instance a son propre ID de réservation unique.

  • Quand ou comment un ID de réservation unique peut-il être lié à plusieurs instances?
  • Peut-il être lié à plusieurs instances indépendantes? Disons que j'ai un serveur Web et un serveur de base de données. Puis-je les démarrer avec un seul ID de réservation?
  • Ou, un identifiant de réservation peut-il être lié à une seule instance qui est démarrée plusieurs fois, comme à des fins d'équilibrage de charge.

Dans notre situation, toutes les instances ont un ID de réservation unique, mais je veux savoir dans quelles situations cela peut changer, pour un script que j'utilise describe-instances.

SPRBRN
la source

Réponses:

15

Le ResearvationIdn'a rien à voir avec les instances réservées. Il s'agit d'une valeur unique indiquant une demande de lancement d'instances EC2. Une demande de lancement peut provenir de cli, AutoScaling ou AWS Management Console.

Chaque demande de aws ec2 run-instancesretourne zéro ou plusieurs réservations d'instances. Habituellement, ce sera un s'il réussit, mais les documents disent "zéro ou plus" (1), donc une seule demande de lancement peut être divisée en plusieurs réservations.

Habituellement, les instances qui sont lancées en même temps obtiennent la même chose ReservationId, mais cela peut ne pas être une règle stricte. Mais le lancement de 2 instances à 2 moments différents donnera très probablement des ReservationIdvaleurs différentes .

Par exemple, dans le cadre de la aws ec2 run-instancescommande, vous pouvez indiquer le nombre minimal et maximal d'instances à lancer simultanément. Plusieurs fois, ce sera min = max = 1, mais il peut être plus et / ou différent tant que 1 <= min <= max. Vous pouvez également spécifier le nombre d'instances à exécuter lorsque vous lancez de nouvelles instances à partir d'AWS Management Console. Cela peut être vu sur la page "Étape 3: Configurer les détails de l'instance".

Lors de l'exécution aws ec2 describe-instances, vos résultats seront regroupés par ReservationIdvaleur en fonction de la façon dont ils ont été lancés.

En général, vous n'avez pas à vous soucier de la ReservationIdvaleur, sauf si vous voulez savoir si elles ont été lancées simultanément à quel moment AmiLaunchIndexde l'instance différera d'une instance à l'autre dans la réservation (0, 1, 2, etc. ).

Les références:

Matt Houser
la source
3

Considérez l'ID de réservation comme un ID transactionnel. Par exemple, si vous achetez 5 billets en même temps. Vous avez un ID de transaction mais cinq ID de réservation.

De la même manière, si vous lancez 1 instance à la fois à l'aide des instances d'exécution aws ec2 , vous aurez un ID de réservation et un ID d'instance.

Mais si vous lancez 10 instances à la fois en utilisant les instances d'exécution aws ec2 , vous aurez 1 ID de réservation et 10 ID d'instance.

Vikash
la source