AWS EC2 che cos'è esattamente un ID di prenotazione e cosa rappresenta?


13

Ho realizzato uno script che crea istantanee dei nostri volumi EC2. Lo script esamina quali istanze sono in esecuzione, quali volumi sono collegati a tali istanze e quindi crea snapshot per tali volumi, ignorando il resto.

Utilizzando describe-instances, ottengo gli ID di prenotazione, non gli ID di istanza. Questo è confuso, ma è come è. Quando viene avviata un'istanza, viene creata una prenotazione per quell'istanza.

Sono ancora confuso sul concetto di prenotazione.

Nota a margine: so quali sono le istanze riservate, il che è diverso da quello che sto descrivendo qui. Una "istanza riservata" significa che si affitta un'istanza per un anno o due o tre e si ottiene una riduzione di prezzo per quello. Quindi prenoti un t2.medium per un anno e, se non lo usi, paghi comunque, ma se lo usi, è più economico del normale.

Ora torna al "ID prenotazione". Le domande frequenti su AWS dicono:

Ogni istanza avviata da EC2 ha un ID di prenotazione. Un ID prenotazione ha una relazione uno a uno con una richiesta di avvio dell'istanza, ma può essere associato a più di un'istanza se si avviano più istanze utilizzando la stessa richiesta di avvio.

Poi c'è questa domanda SE: qual è lo scopo di 'Reservations' in Amazon EC2

Non è ancora chiaro cosa rappresenti esattamente un ID di prenotazione

Se avvii un'istanza alla volta, ogni istanza ha il proprio ID di prenotazione univoco.

  • Quando o come un singolo ID di prenotazione può essere collegato a più istanze?
  • Può essere collegato a più istanze non correlate? Supponiamo di avere un server web e un server database. Posso avviarli con un ID prenotazione?
  • In alternativa, un ID prenotazione può essere collegato solo a un'istanza avviata più volte, ad esempio per il bilanciamento del carico.

Nella nostra situazione, tutte le istanze hanno un ID di prenotazione univoco, ma voglio sapere in quali situazioni può cambiare, per uno script che sto utilizzando describe-instances.

Risposte:


15

Non ResearvationIdha nulla a che fare con le istanze riservate. È un valore univoco che indica una richiesta di avvio di istanze EC2. Una richiesta di avvio può provenire da cli, AutoScaling o AWS Management Console.

Ogni richiesta a aws ec2 run-instancesrestituirà zero o più prenotazioni di istanze. Di solito, sarà uno se ha successo, ma i documenti dicono "zero o più" (1), quindi una singola richiesta di avvio può essere suddivisa in più prenotazioni.

Di solito, le istanze che vengono avviate contemporaneamente ottengono lo stesso ReservationId, ma potrebbe non essere una regola rigida. Ma l'avvio di 2 istanze in 2 momenti diversi molto probabilmente darà ReservationIdvalori diversi .

Ad esempio, come parte del aws ec2 run-instancescomando, è possibile indicare il numero minimo e massimo di istanze da avviare contemporaneamente. Molte volte, questo sarà min = max = 1, ma può essere maggiore e / o diverso purché 1 <= min <= max. Puoi anche specificare il numero di istanze da eseguire quando avvii nuove istanze dalla Console di gestione AWS. Questo può essere visto nella pagina "Passaggio 3: Configura dettagli istanza".

Durante l'esecuzione aws ec2 describe-instances, i risultati verranno raggruppati in base al ReservationIdvalore in base al modo in cui sono stati avviati.

In generale, non è necessario preoccuparsi del ReservationIdvalore a meno che non si desideri sapere se sono stati avviati contemporaneamente, a quel punto AmiLaunchIndexl'istanza differirà da istanza a istanza all'interno della prenotazione (0, 1, 2, ecc. ).

Riferimenti:


3

Considera l'id di prenotazione come un ID transazionale. ad es. se acquisti 5 biglietti contemporaneamente. Hai un ID transazione ma cinque ID prenotazione.

Allo stesso modo, se avvii 1 istanza contemporaneamente utilizzando le istanze di esecuzione di aws ec2 , avrai un ID prenotazione e un ID istanza.

Ma se avvii 10 istanze contemporaneamente usando le istanze run di aws ec2 , avrai 1 ID prenotazione e 10 ID istanza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.