Para ofrecer servicios de escalado más eficientes y flexibles, Auto Scaling ahora admite datos de usuario de instancia. Utilice los datos de usuario de instancia para configurar automáticamente las instancias ECS y escalar sus aplicaciones de forma segura.
Contexto
En comparación con herramientas de gestión de infraestructura de código abierto como Terraform, el uso de datos de usuario de instancia nativos en Auto Scaling es más rápido y seguro. Prepare su script de datos de usuario de instancia, codifíquelo en Base64 e inclúyalo en la configuración de escalado. Las instancias ECS creadas automáticamente ejecutarán el script al iniciarse para habilitar el escalado a nivel de aplicación.
Este tema demuestra cómo utilizar los datos de usuario de instancia en un escenario real. Para obtener más información sobre los datos de usuario de instancia, consulte Customize instance initialization configuration. Tanto las instancias Windows como Linux admiten datos de usuario de instancia. Las capacidades clave incluyen lo siguiente:
Customization: Ejecute un script personalizado cuando se inicie la instancia para definir su comportamiento de arranque.
Data reference: Pase datos sin formato a la instancia y consúltelos desde dentro de ella.
Consideraciones
-
Al utilizar datos de usuario de instancia para configurar automáticamente instancias ECS, tenga en cuenta lo siguiente:
El grupo de escalado debe utilizar un tipo de red de nube privada virtual (VPC).
Los datos de usuario de instancia deben estar codificados en Base64.
Los datos de usuario de instancia se transfieren a la instancia sin cifrado. No transmita información confidencial (como contraseñas o claves privadas) en texto sin formato. Si necesita transmitir datos confidenciales, primero cifre los datos, codifique en Base64 la información cifrada, pásela a la instancia y luego descífrelos dentro de la instancia mediante el mismo método.
Al crear una configuración de escalado mediante una API, utilice el parámetro UserData para pasar los datos de usuario de instancia. Para obtener más información, consulte CreateScalingConfiguration.
Además de los datos de usuario de instancia, los key pairs de SSH, los nombres de roles RAM y las etiquetas pueden ayudarle a gestionar las instancias ECS de manera más eficiente y flexible. Para obtener más información, consulte Use scaling configuration features to implement automatic scaling.
Paso 1: Preparar los datos de usuario de instancia
Puede utilizar los datos de usuario de instancia para ejecutar automáticamente un script de shell personalizado cuando se inicia una instancia ECS. Al escribir el script de shell, siga estas directrices:
|
Tipo |
Descripción |
|
Formato del script |
La primera línea debe comenzar con |
|
Límite del script |
El contenido del script no debe exceder los 32 KB antes de la codificación Base64. |
|
Frecuencia de ejecución del script |
El script se ejecuta solo una vez durante el primer inicio de la instancia. |
-
Cree un script de shell que configure los servicios yum y NTP cuando se inicie la instancia ECS.
El siguiente ejemplo muestra un script de shell de muestra:
#!/bin/sh # Modify yum repo and update rm -rf /etc/yum.repos.d/* touch myrepo.repo echo "[base]" | tee /etc/yum.repos.d/myrepo.repo echo "name=myrepo" | tee -a /etc/yum.repos.d/myrepo.repo echo "baseurl=http://mirror.centos.org/centos" | tee -a /etc/yum.repos.d/myrepo.repo echo "gpgcheck=0" | tee -a /etc/yum.repos.d/myrepo.repo echo "enabled=1" | tee -a /etc/yum.repos.d/myrepo.repo yum update -y # Modify NTP Server echo "server ntp1.aliyun.com" | tee /etc/ntp.conf systemctl restart ntpd.service -
Codifique el script de shell en Base64.
El script codificado en Base64 tiene el siguiente aspecto:
IyEvYmluL3NoCiMgTW9kaWZ5IHl1bSByZXBvIGFuZCB1cGRhdGUKcm0gLXJmIC9ldGMveXVtLnJlcG9zLmQvKgp0b3VjaCBteXJlcG8ucmVwbwplY2hvICJbYmFzZV0iIHwgdGVlIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAibmFtZT1teXJlcG8iIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAiYmFzZXVybD1odHRwOi8vbWlycm9yLmNlbnRvcy5vcmcvY2VudG9zIiB8IHRlZSAtYSAvZXRjL3l1bS5yZXBvcy5kL215cmVwby5yZXBvCmVjaG8gImdwZ2NoZWNrPTAiIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAiZW5hYmxlZD0xIiB8IHRlZSAtYSAvZXRjL3l1bS5yZXBvcy5kL215cmVwby5yZXBvCnl1bSB1cGRhdGUgLXkKIyBNb2RpZnkgTlRQIFNlcnZlcgplY2hvICJzZXJ2ZXIgbnRwMS5hbGl5dW4uY29tIiB8IHRlZSAvZXRjL250cC5jb25mCnN5c3RlbWN0bCByZXN0YXJ0IG50cGQuc2VydmljZQ==
Paso 2: Crear y habilitar un grupo de escalado
-
Cree un grupo de escalado y consulte sus detalles después de la creación.
Para obtener instrucciones detalladas, consulte Configure a scaling group.
Al crear el grupo de escalado, preste atención a la siguiente configuración:
Elemento de configuración
Descripción
Minimum Number of Instances
Establézcalo en 1. Esto garantiza que se cree automáticamente una instancia ECS tras habilitar el grupo de escalado.
Instance Configuration Source
Seleccione Create from Scratch.
Network Type
Seleccione VPC.
VPC
Seleccione un ID de VPC existente.
vSwitch
Seleccione el conmutador virtual correspondiente.
El nuevo grupo de escalado aparece en la lista de grupos de escalado en estado Disabled. Haga clic en View Details en la columna Actions para consultar más información.
-
Cree una configuración de escalado y habilítela después de la creación.
Para obtener instrucciones detalladas, consulte Create a scaling configuration (ECS instance).
Al crear la configuración de escalado, preste atención a la siguiente configuración:
Elemento de configuración
Descripción
Instance and image
Image
Elija CentOS 7.9 64-bit en Public Image.
Management configuration
Logon Credential
Seleccione Key Pair.
Key Pair
Seleccione un key pair existente. Para obtener instrucciones sobre cómo crear un key pair, consulte Create an SSH key pair.
Advanced Settings
The user data of the instance.
Introduzca el script de datos de usuario de instancia preparado en Step 1: Prepare instance user data.
-
Habilite el grupo de escalado.
Para obtener instrucciones detalladas, consulte Enable a scaling group.
Paso 3: Comprobar el efecto de los datos de usuario de instancia
Dado que Minimum Number of Instances se estableció en 1, el sistema crea automáticamente una instancia ECS tras habilitar el grupo de escalado para cumplir con este requisito.
-
Consulte las actividades de escalado.
Para obtener instrucciones detalladas, consulte View scaling activity details. Observará que el sistema ha creado automáticamente una instancia ECS.
-
Inicie sesión en la instancia ECS.
Para comprobar el efecto de los datos de usuario de instancia, inicie sesión en la instancia ECS. Para instancias Linux, se recomienda utilizar un key pair. Para obtener instrucciones, consulte Create an SSH key pair y Use OpenSSH/XShell to remotely connect to a Linux instance.
NotaSi la instancia ya tiene una contraseña de inicio de sesión o un key pair adjunto, también puede conectarse mediante Workbench. Para obtener instrucciones, consulte Use Workbench to log on to a Linux instance.
-
Compruebe el estado del servicio.
La siguiente salida confirma que los servicios yum y NTP se están ejecutando, lo que significa que los datos de usuario de instancia en la configuración de escalado surtieron efecto.
[root@ixxxZ ~]# cat /etc/yum.repos.d/myrepo.repo [base] name=myrepo baseurl=http://mirror.centos.org/centos gpgcheck=0 enabled=1 [root@ixxxZ ~]# cat /etc/ntp.conf server ntp1.aliyun.com [root@ixxxZ ~]#