Identificación de las instancias inicializadas en una sola solicitud
En este ejemplo se demuestra cómo se pueden usar los datos de usuario y los metadatos de instancia para configurar las instancias de Amazon EC2.
nota
En los ejemplos de esta sección, se utiliza la dirección IPv4 de IMDS: 169.254.169.254
. Si recupera metadatos de instancia para las instancias de EC2 a través de la dirección IPv6, asegúrese de habilitar y utilizar la dirección IPv6 en su lugar: [fd00:ec2::254]
. La dirección IPv6 de IMDS es compatible con los comandos de IMDSv2. Solo se puede acceder a la dirección IPv6 con instancias basadas en Nitro en subredes compatibles con IPv6 (de doble pila o solo IPv6).
Alice desea iniciar cuatro instancias de su AMI de base de datos favorita, de modo que la primera sea la instancia original y las tres restantes actúen como réplicas. Al iniciarlas, desea agregar datos de usuario acerca de la estrategia de replicación para cada réplica. Es consciente de que estos datos estarán disponibles para las cuatro instancias, por lo que debe estructurar los datos de usuario de modo que cada instancia pueda reconocer qué partes se aplican a cada una. Lo puede hacer con el valor de metadato de instancia ami-launch-index
, que será exclusivo para cada instancia. Si ha iniciado más de una instancia al mismo tiempo, ami-launch-index
indica el orden en el que se ha iniciado la instancia. El valor de la primera instancia iniciada es 0
.
Estos son los datos de usuario que ha creado Alice.
replicate-every=1min | replicate-every=5min | replicate-every=10min
Los datos de replicate-every=1min
definen la configuración de la primera réplica, replicate-every=5min
define la configuración de la segunda réplica y así sucesivamente. Alice decide facilitar estos datos como una cadena ASCII con un símbolo de barra vertical (|
) que delimita los datos de las distintas instancias.
Alice inicia cuatro instancias con el comando run-instances y especifica los datos de usuario.
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --count 4 \ --instance-type t2.micro \ --user-data "replicate-every=1min | replicate-every=5min | replicate-every=10min"
Una vez iniciadas, todas las instancias tienen una copia de los datos de usuario y los metadatos comunes se muestran aquí:
-
ID de la AMI: ami-0abcdef1234567890
-
ID de reserva: r-1234567890abcabc0
-
Claves públicas: ninguna
-
Nombre de grupo de seguridad: predeterminado
-
Tipo de instancia: t2.micro
Sin embargo, cada instancia tiene metadatos únicos, tal como se muestra en las tablas siguientes.
Metadatos | Valor |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 0 |
public-hostname | ec2-203-0-113-25.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.223 |
local-hostname | ip-10-251-50-12.ec2.internal |
local-ipv4 | 10.251.50.35 |
Metadatos | Valor |
---|---|
instance-id | i-0598c7d356eba48d7 |
ami-launch-index | 1 |
public-hostname | ec2-67-202-51-224.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.224 |
local-hostname | ip-10-251-50-36.ec2.internal |
local-ipv4 | 10.251.50.36 |
Metadatos | Valor |
---|---|
instance-id | i-0ee992212549ce0e7 |
ami-launch-index | 2 |
public-hostname | ec2-67-202-51-225.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.225 |
local-hostname | ip-10-251-50-37.ec2.internal |
local-ipv4 | 10.251.50.37 |
Metadatos | Valor |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 3 |
public-hostname | ec2-67-202-51-226.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.226 |
local-hostname | ip-10-251-50-38.ec2.internal |
local-ipv4 | 10.251.50.38 |
Alice puede utilizar el valor ami-launch-index
para determinar la parte de los datos de usuario que se aplican a una instancia en concreto.
-
Se conecta a una de las instancias y recupera
ami-launch-index
de esa instancia para asegurarse de que es una de las réplicas: -
Guarda
ami-launch-index
como variable. -
Guarda los datos de usuario como variable.
-
Por último, Alice utiliza el comando cut para extraer la parte de los datos de usuario que se aplican a esa instancia.