AWS EC2: o que é exatamente um ID de reserva e o que ele representa?


13

Criei um script que cria instantâneos de nossos volumes EC2. O script examina quais instâncias estão em execução, quais volumes estão conectados a essas instâncias e, em seguida, cria capturas instantâneas para esses volumes, ignorando o restante.

Usando describe-instances, obtenho IDs de reserva, não IDs de instância. Isso é confuso, mas é como é. Quando uma instância é iniciada, uma reserva é criada para essa instância.

Ainda estou confuso sobre o conceito de reserva.

Nota lateral: Eu sei o que são instâncias reservadas, o que é diferente do que estou descrevendo aqui. Uma "instância reservada" significa que você aluga uma instância por um ano ou dois ou três e obtém um corte de preço por isso. Portanto, você reserva um t2.medium por um ano e, se não o usar, ainda pagará, mas se o usar, será mais barato que o normal.

Agora, volte para o "ID da reserva". As Perguntas frequentes da AWS dizem:

Toda instância lançada pelo EC2 tem um ID de reserva. Um ID de reserva tem um relacionamento individual com uma solicitação de inicialização da instância, mas pode ser associado a mais de uma instância se você ativar várias instâncias usando a mesma solicitação de ativação.

Depois, há a pergunta do SE: Qual é o objetivo de 'Reservas' no Amazon EC2

Ainda não está claro o que um ID de reserva representa exatamente

Se você iniciar uma instância por vez, cada instância terá seu próprio ID de reserva exclusivo.

  • Quando ou como um único ID de reserva pode ser vinculado a várias instâncias?
  • Pode ser vinculado a várias instâncias não relacionadas? Digamos que eu tenha um servidor da web e um servidor de banco de dados. Posso iniciá-los com um único ID de reserva?
  • Ou um ID de reserva pode ser vinculado apenas a uma instância iniciada várias vezes, como para fins de balanceamento de carga.

Em nossa situação, todas as instâncias têm um ID de reserva exclusivo, mas quero saber em que situações isso pode mudar, para um script que estou executando usando describe-instances.

Respostas:


15

O ResearvationIdnão tem nada a ver com instâncias reservadas. É um valor exclusivo que indica uma solicitação para iniciar instâncias do EC2. Uma solicitação de inicialização pode vir do cli, AutoScaling ou do AWS Management Console.

Cada solicitação aws ec2 run-instancesretornará zero ou mais reservas de instâncias. Normalmente, será um caso seja bem-sucedido, mas os documentos dizem "zero ou mais" (1); portanto, uma única solicitação de inicialização pode ser dividida em várias reservas.

Geralmente, as instâncias iniciadas ao mesmo tempo são as mesmas ReservationId, mas isso pode não ser uma regra rígida. Mas iniciar duas instâncias em dois momentos diferentes provavelmente fornecerá ReservationIdvalores diferentes .

Por exemplo, como parte do aws ec2 run-instancescomando, você pode indicar o número mínimo e máximo de instâncias a serem iniciadas simultaneamente. Muitas vezes, isso será min = max = 1, mas pode ser mais e / ou diferente desde que 1 <= min <= max. Você também pode especificar o número de instâncias a serem executadas ao iniciar novas instâncias no AWS Management Console. Isso pode ser visto na página "Etapa 3: configurar detalhes da instância".

Ao executar aws ec2 describe-instances, seus resultados serão agrupados pelo ReservationIdvalor com base em como eles foram lançados.

Em geral, você não precisa se preocupar com o ReservationIdvalor, a menos que queira saber se eles foram iniciados simultaneamente, quando AmiLaunchIndexa instância será diferente de instância para instância na reserva (0, 1, 2 etc.) )

Referências:


3

Considere o ID da reserva como um ID transacional. Por exemplo, se você comprar 5 ingressos de uma só vez. Você tem um ID de transação, mas cinco IDs de reserva.

Da mesma forma, se você iniciar uma instância de uma vez usando instâncias de execução do aws ec2 , terá um ID de reserva e um ID de Instância.

Mas se você iniciar 10 instâncias de uma vez usando instâncias de execução do aws ec2 , terá 1 ID de reserva e 10.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.