Para garantizar la accesibilidad del servicio, puede vincular automáticamente una dirección IP elástica (EIP) a cada nueva instancia ECS durante un evento de escalado horizontal. Por el contrario, durante un evento de reducción horizontal, puede liberar automáticamente las EIP de las instancias que se eliminan. Esta práctica resulta útil en periodos de baja demanda o cuando ya no se requiere acceso público. Asimismo, optimiza el uso de recursos y reduce costos al eliminar los cargos por recursos inactivos.
Una EIP es una dirección IP pública que puede adquirir y gestionar de forma independiente. Puede vincular una EIP a una instancia ECS o liberarla según sea necesario. Para obtener más información, consulte What is an elastic ip address.
Requisitos previos
Cree un grupo de escalado y asegúrese de que se encuentre en estado Enable. Para obtener más información, consulte Create a scaling group.
-
Otorgue permisos a CloudOps Orchestration Service (OOS) para acceder a otros servicios en la nube. Para obtener más información, consulte Set a RAM role and grant permissions to OOS.
-
Cree un rol de RAM.
Establezca el servicio de confianza para el rol de RAM como OOS. Este tema utiliza
OOSServiceRolecomo nombre del rol de RAM. -
Adjunte directivas al rol de RAM.
Cuando OOS ejecuta una tarea, requiere acceso a recursos de ECS, Auto Scaling y EIP. Por lo tanto, adjunte las siguientes directivas del sistema al rol
OOSServiceRole:AliyunECSFullAccess
AliyunESSFullAccess
AliyunEIPFullAccess
-
Vincular automáticamente EIP durante el escalado horizontal
-
Cree un hook de ciclo de vida.
La siguiente tabla describe los parámetros clave. Puede conservar los valores predeterminados para el resto de los parámetros. Para obtener más información, consulte Create a lifecycle hook.
Parámetro
Descripción
Name
Introduzca
ESSHookForAttachEip.Scaling Activity
Seleccione Scale-out Event.
Timeout Period
Introduzca un periodo de tiempo de espera adecuado, como 300 segundos.
ImportanteEste parámetro especifica el tiempo máximo para completar la acción personalizada. Si el periodo de tiempo de espera es demasiado corto, la acción podría fallar. Establezca un tiempo suficiente para que su acción personalizada se complete correctamente.
Send Notification When Lifecycle Hook Takes Effect
Seleccione OOS Template y configure los siguientes parámetros:
-
En OOS Template Type, seleccione Public Templates.
-
Seleccione la plantilla pública de OOS
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance. Esta plantilla vincula automáticamente una EIP a una instancia ECS durante un evento de escalado horizontal. -
Haga clic en Parameter Settings junto a la plantilla
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance.A continuación se muestran ejemplos de parámetros clave. Puede conservar los valores predeterminados para el resto de los parámetros.
-
Billing method for EIP: PayByBandwidth especifica el método de facturación por ancho de banda. PayByTraffic especifica el método de facturación por tráfico. Este tema utiliza PayByBandwidth como ejemplo.
-
Peak bandwidth for EIP: Este ejemplo utiliza un valor de 5, lo que establece el ancho de banda máximo de la EIP en 5 Mbit/s.
-
EIP tags: Agregue etiquetas a las EIP para simplificar su gestión.
-
The RAM role assumed by OOS. : Seleccione
OOSServiceRole.Este rol otorga a OOS los permisos necesarios para gestionar recursos de ECS, Auto Scaling y EIP.
-
-
-
Desencadene un evento de escalado horizontal.
Este ejemplo desencadena un evento de escalado horizontal mediante la ejecución manual de una regla de escalado. También puede utilizar tareas programadas o activadas por eventos. Para obtener más información, consulte Execute a scaling rule.
NotaCuando ejecuta manualmente una regla de escalado para desencadenar un evento de escalado horizontal, el hook de ciclo de vida entra en vigor. Sin embargo, si agrega manualmente una instancia ECS existente, el hook de ciclo de vida no se activa.
Una vez desencadenado correctamente el evento de escalado horizontal, el grupo de escalado crea automáticamente una instancia ECS. Dado que el hook de ciclo de vida
ESSHookForAttachEipestá creado en el grupo de escalado, este coloca la instancia ECS en estado pendiente y notifica a OOS para que ejecute una tarea que cree y vincule una EIP a la instancia.Si el estado de la actividad de escalado cambia a Failed y se reporta un error similar al siguiente, compruebe los detalles de ejecución de la tarea en la consola de OOS. Para obtener más información, consulte (Optional) View OOS execution details.
Los detalles de la actividad de escalado muestran el siguiente error:
Fail to create Instances into scaling group(code:"LifecycleActionResult.Abandon", msg:"Abandon lifecycleActionResult parameter caused the instance to rollback.") -
Compruebe que se haya vinculado automáticamente una EIP a la instancia ECS escalada horizontalmente.
En la pestaña del grupo de escalado, haga clic en el ID de la instancia ECS creada automáticamente para ir a la página de detalles de la instancia. Para obtener más información, consulte Query the instance list of a scaling group.
En la sección de información básica de la instancia ECS, revise el parámetro EIP. La presencia de una dirección IP en este campo indica que la EIP se vinculó correctamente.
NotaSi la instancia ECS se creó pero no se vinculó ninguna EIP, compruebe los detalles de ejecución de la tarea en la consola de OOS.
-
(Opcional) Consulte los detalles de ejecución de OOS.
La página de detalles de ejecución de la tarea muestra información como el ID de ejecución y el estado en el área Basic Information, y proporciona detalles de ejecución y registros en el área Execution Steps and Results. Para obtener más información, consulte View task execution details.
ImportanteSi la ejecución falla, se muestra un mensaje de error relevante en la página de detalles de ejecución.
Liberar automáticamente EIP durante la reducción horizontal
-
Cree un hook de ciclo de vida.
La siguiente tabla describe los parámetros clave. Puede conservar los valores predeterminados para el resto de los parámetros. Para obtener más información, consulte Create a lifecycle hook.
Parámetro
Descripción
Name
Introduzca
ESSHookForReleaseEip.Scaling Activity
Seleccione Scale-in Event.
Timeout Period
Introduzca un periodo de tiempo de espera adecuado, como 300 segundos.
ImportanteEste parámetro especifica el tiempo máximo para completar la acción personalizada. Si el periodo de tiempo de espera es demasiado corto, la acción podría fallar. Establezca un tiempo suficiente para que su acción personalizada se complete correctamente.
Send Notification When Lifecycle Hook Takes Effect
Seleccione OOS Template y configure los siguientes parámetros:
-
En OOS Template Type, seleccione Public Templates.
-
Seleccione la plantilla pública de OOS
ACS-ESS-LifeCycleReleaseEipAddressFromInstance. Esta plantilla libera automáticamente la EIP de una instancia ECS durante un evento de reducción horizontal. -
Haga clic en Parameter Settings junto a la plantilla
ACS-ESS-LifeCycleReleaseEipAddressFromInstance.Establezca The RAM role assumed by OOS. como
OOSServiceRoley conserve los valores predeterminados para el resto de los parámetros. Este rol otorga a OOS los permisos necesarios para gestionar recursos de ECS, Auto Scaling y EIP.
-
-
Desencadene un evento de reducción horizontal.
Este ejemplo desencadena un evento de reducción horizontal mediante la ejecución manual de una regla de escalado. También puede utilizar tareas programadas o activadas por eventos. Para obtener más información, consulte Execute a scaling rule.
NotaCuando ejecuta manualmente una regla de escalado para desencadenar un evento de reducción horizontal, el hook de ciclo de vida entra en vigor. Sin embargo, si elimina manualmente una instancia ECS existente, el hook de ciclo de vida no se activa.
Una vez desencadenado correctamente el evento de reducción horizontal, el grupo de escalado elimina automáticamente una instancia ECS. Dado que el hook de ciclo de vida
ESSHookForReleaseEipestá creado en el grupo de escalado, este coloca la instancia ECS en estado pendiente y notifica a OOS para que ejecute una tarea que libere la EIP de la instancia. -
Compruebe que la EIP se haya liberado automáticamente de la instancia ECS reducida horizontalmente.
Revise la lista de direcciones IP elásticas para buscar la EIP. La EIP se habrá liberado correctamente si ya no aparece en la lista.
NotaSi la instancia ECS se eliminó pero la EIP no se liberó, compruebe los detalles de ejecución de la tarea en la consola de OOS.
-
(Opcional) Consulte los detalles de ejecución de OOS.
La página de detalles de ejecución de la tarea muestra información como el ID de ejecución y el estado en el área Basic Information, y proporciona detalles de ejecución y registros en el área Execution Steps and Results. Para obtener más información, consulte View task execution details.
ImportanteSi la ejecución falla, se muestra un mensaje de error relevante en la página de detalles de ejecución.
Preguntas frecuentes
Si no logra ejecutar una tarea de operación y mantenimiento, solucione el problema basándose en el mensaje de error del resultado de ejecución. Para obtener más información, consulte FAQ.
La siguiente tabla describe los mensajes de error comunes.
|
Mensaje de error |
Causa |
Solución |
|
Forbidden.Unauthorized message: A required authorization for the specified action is not supplied. |
No ha autorizado a Auto Scaling para realizar la acción actual. |
Compruebe si el rol de RAM OOSServiceRole tiene los permisos necesarios. |
|
Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM. |
El usuario de RAM o el rol de RAM no tienen permisos para operar los recursos correspondientes. |
Compruebe si el rol de RAM OOSServiceRole tiene los permisos necesarios. Por ejemplo, puede otorgar permisos de OOS al rol de RAM. Antes de que OOS pueda gestionar los recursos declarados en la plantilla de OOS, debe otorgar los permisos necesarios al rol de RAM. |
|
LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action. |
La acción del hook de ciclo de vida en curso ha finalizado o se ha detenido. |
Evalúe el periodo de tiempo de espera del hook de ciclo de vida para asegurarse de que las tareas de operación y mantenimiento especificadas en la plantilla de OOS puedan completarse dentro del límite de tiempo asignado. |
Documentos relacionados
Un hook de ciclo de vida es una herramienta utilizada para gestionar el ciclo de vida de las instancias en un grupo de escalado. Puede usar hooks de ciclo de vida para realizar acciones personalizadas en una instancia antes de que se ponga en servicio o se termine. Para obtener más información, consulte Lifecycle hook overview.
CloudOps Orchestration Service (OOS) es un servicio automatizado de operación y mantenimiento proporcionado por Alibaba Cloud que puede utilizar para automatizar la gestión y ejecución de tareas. Para obtener más información, consulte What is CloudOps Orchestration Service.
Para escenarios de red avanzados, como crear una solución de failover de bajo costo que requiera acceso a Internet público, puede vincular automáticamente una interfaz de red elástica (ENI) secundaria con una EIP a una instancia ECS durante un evento de escalado horizontal. Por el contrario, durante un evento de reducción horizontal, puede liberar automáticamente la ENI secundaria y su EIP asociada cuando la instancia se termina o si ya no se requiere acceso público. Para obtener más información, consulte Automatically attach and release secondary ENIs with EIPs.