Uso de la AWS OpsWorks Stacks herramienta Separar en su lugar - AWS OpsWorks

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la AWS OpsWorks Stacks herramienta Separar en su lugar

importante

El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible.

En esta sección, se describe cómo usar la herramienta AWS OpsWorks Stacks Detach in Place para separar las OpsWorks instancias del OpsWorks servicio Stacks.

Las instancias que desconectes permanecerán en tu Cuenta de AWS servidor, pero ya no podrás administrarlas. OpsWorks En su lugar, utilizará Amazon EC2 o cualquier enfoque compatible con EC2 para configurar y administrar las instancias. AWS Systems Manager

A un nivel superior, el proceso de separación incluye los siguientes pasos:

  1. La herramienta realiza comprobaciones de validación para garantizar que los recursos estén listos para el desprendimiento.

  2. La herramienta exporta el JSON personalizado de su OpsWorks pila y lo almacena como un objeto en Amazon S3.

  3. La herramienta crea documentos de automatización de Systems Manager que representan cada evento del ciclo de vida de OpsWorks Stacks.

  4. La herramienta crea un AWS Service Catalog AppRegistry catálogo para todas las instancias que se están separando y separa los balanceadores de carga de Elastic Load Balancing (ELB) de las capas. OpsWorks

  5. Por último, la herramienta separa y anula el registro de otros recursos, incluidas las instancias de Amazon Relational Database Service (Amazon RDS).

Cómo funciona el proceso

La herramienta Detach In Place proporciona los tres comandos siguientes y una experiencia similar a la de un asistente que le guía a través de una serie de pasos para comprobar y configurar las instancias antes de proceder a separar la capa.

Comando Descripción

handle-prerequisites

Este comando analiza si todas las instancias de una capa son aptas para la separación y resuelve los requisitos previos. Las instancias deben estar en buen estado OpsWorks, no pueden tener escaladores automáticos basados en el tiempo o la carga y deben tener instalada la última versión del OpsWorks agente.

Además, el comando comprueba si todas las instancias tienen los permisos necesarios para admitir el agente SSM y si está instalada la última versión del agente SSM. El comando instalará el agente SSM si no está presente y lo actualizará si no utiliza la última versión. El comando también añadirá los permisos necesarios.

detach

Este comando separa todas las OpsWorks instancias de la capa especificada.

En primer lugar, el comando realizará una comprobación de los requisitos previos para garantizar que la capa cumpla los requisitos para el desprendimiento. Si no desea resolver los requisitos previos, tiene la opción de forzar la separación.

A continuación, el comando indicará que se conservarán todas las etiquetas añadidas a tus instancias mediante las API de OpsWorks etiquetado o mediante la propagación de etiquetas desde tus capas y pilas. Puede eliminar cualquiera de estas etiquetas mediante las API de EC2 pertinentes una vez que se haya completado la separación.

A continuación, el comando comprobará si desea exportar la configuración relacionada con Chef a los parámetros de SSM.

Si tienes un Classic Load Balancer adjunto a la capa, el comando preguntará si puede desconectar el balanceador de carga para evitar cualquier tiempo de inactividad.

cleanup

Este comando elimina todas las entidades de tu cuenta. OpsWorks Terminará las instancias y eliminará todas las pilas. Esto debería usarse para los recursos que ya no se necesitan como último paso para limpiar la cuenta.

nota

Se recomienda ejecutar la nueva configuración durante unos días antes de ejecutar el cleanup comando. Esto garantiza que cualquier configuración necesaria de la pila esté disponible en caso necesario.

Limitaciones

El objetivo principal de la herramienta Detach In Place es separar de forma segura las instancias de OpsWorks Stacks. En esta sección se resumen las limitaciones de la herramienta.

  • Agente SSM de Windows: si el agente SSM no está instalado en la instancia, tendrás que instalarlo manualmente. Lo mismo se aplica si el agente no está actualizado a la última versión.

  • Instancias de Auto Scaling de tiempo/carga: la herramienta de separación no admite instancias con Auto Scaling activado. Debe deshabilitar Auto Scaling en las instancias que desee separar.

  • Permisos: la herramienta de separación no crea ni genera las entidades de IAM especificadas en la página de permisos de la consola. OpsWorks

  • Aplicaciones: la herramienta de separación no crea ni genera aplicaciones externas a. OpsWorks

Introducción

Paso 1: Compruebe que se cumplen los requisitos previos

Los tres comandos de la herramienta Detach In Place son scripts de Python, que puede ejecutar localmente, en una instancia EC2 o mediante su uso. AWS CloudShell

AWS CloudShell es un shell basado en un navegador que permite acceder desde la línea de comandos a los recursos de la unidad seleccionada. AWS Región de AWS AWS CloudShell viene preinstalado con herramientas populares (como AWS CLI Python). Al AWS CloudShell utilizarla, se utilizan las mismas credenciales que se utilizan para iniciar sesión en la consola.

En este tutorial se presupone que estás utilizando AWS CloudShell.

Paso 2: Descargar el script

  1. Descargue el archivo zip que contiene el script de migración y todos los archivos relevantes ejecutando el siguiente comando:

    aws s3api get-object \ --bucket detach-in-place-bucket-prod-us-east-1 \ --key detach_in_place_script.zip detach_in_place_script.zip
  2. Descomprima el archivo ejecutando el siguiente comando.

    unzip detach_in_place_script.zip

    Una vez descomprimido el archivo, estarán disponibles los siguientes archivos:

    • README.md

    • Licencia

    • NOTICE

    • requirements.txt

    • TODO.py

  3. Si es necesario, instálelo pipenv ejecutando el siguiente comando.

    pip install pipenv

Paso 3: ejecuta el script

En primer lugar, configure su entorno de modo que pueda ejecutar el script mediante la ejecución de los siguientes comandos.

pipenv install -r requirements.txt pipenv shell

A continuación, revise los parámetros del script.

Comando Parámetro Descripción Tipo Obligatoria Predeterminado

handle-prerequisites

--layer-id

El ID de la capa que desea separar.

Cadena

-

--region

La región de la OpsWorks pila. Si la región de la OpsWorks pila y la región del punto final de la API son diferentes, utilice la región de la pila. Es la misma región que los demás recursos que forman parte de la OpsWorks pila (por ejemplo, las instancias y subredes de EC2).

Cadena

No

us-east-1

detach

--layer-id

ID de la capa que desea separar.

Cadena

-

--batch-size

Número de instancias que se van a separar de una capa (por ejemplo, 5).

Cadena

No

-

--region

La región de la OpsWorks pila. Si la región de la OpsWorks pila y la región del punto final de la API son diferentes, utilice la región de la pila. Es la misma región que los demás recursos que forman parte de la OpsWorks pila (por ejemplo, las instancias y subredes de EC2).

Cadena

No

us-east-1

cleanup

--stack-id

ID de la pila que desea eliminar.

Cadena

No

Exclusivos entre sí, debe especificar un ID de capa o un ID de pila

--layer-id

ID de la capa que desea eliminar

Cadena

No

--region

La región de la OpsWorks pila. Si la región de la OpsWorks pila y la región del punto final de la API son diferentes, utilice la región de la pila. Es la misma región que los demás recursos que forman parte de la OpsWorks pila (por ejemplo, las instancias y subredes de EC2).

Cadena

No

us-east-1

Puede ver las opciones disponibles para los detach cleanup comandos handle-prerequisites y ejecutarlos con la --help opción siguiente:

python3 layer_detacher.py detach --help python3 layer_detacher.py handle-prerequisites --help python3 layer_detacher.py cleanup --help

Ya está listo para empezar. Los siguientes ejemplos muestran cómo se pueden ejecutar los comandos para distintos casos de uso.

Ejemplo 1: compruebe si una capa cumple todos los requisitos previos y es apta para la separación

El siguiente comando lee la información sobre una OpsWorks capa (y las instancias que incluye) y comprueba si se cumplen los siguientes requisitos previos:

  • Todas las instancias están en línea.

  • No hay instancias de Auto Scaling de Load/Time.

  • Todas las instancias tienen el agente más reciente OpsWorks .

  • Todas las instancias tienen instalado y configurado el último agente de SSM.

  • Todas las instancias tienen un key pair de claves SSH.

  • Cada instancia pertenece exactamente a una capa.

python3 layer_detacher.py handle-prerequisites \ --layer-id opsworks-layer-id \ --region opsworks-stack-region

Ejemplo 2: Separar todas las instancias de una capa

El siguiente comando iterará sobre todas las instancias de la capa, comprobará si las instancias cumplen los requisitos previos e intentará separar en paralelo todas las instancias que cumplan con los requisitos previos. Si no se cumplen uno o más requisitos previos, el comando proporcionará una opción de separación forzada para las demás instancias que no cumplan con los requisitos.

Antes de separar cualquier instancia, el comando hará lo siguiente:

  1. Guarde el JSON personalizado y cárguelo en S3.

  2. Cree documentos de automatización de SSM para cada evento OpsWorks del ciclo de vida de la capa y cargue los registros de ejecución de los documentos de automatización en S3.

  3. Cree una AppRegistry aplicación para todas las instancias que se van a separar. La aplicación tiene un grupo de recursos asociado que contiene todas las instancias y recursos separados. Los recursos incluyen documentos de SSM Automation y parámetros de SSM que contienen información sobre los eventos del ciclo de vida y las recetas personalizadas de Chef.

  4. Separa el Classic Load Balancer de la capa, si existe.

Este comando modificará solo OpsWorks los recursos. El estado de las instancias EC2 seguirá siendo el mismo.

python3 layer_detacher.py detach \ --layer-id opsworks-layer-id \ --region opsworks-stack-region

Ejemplo 3: Separar todas las instancias de una capa en lotes

El siguiente comando hace lo mismo que en el ejemplo anterior. La única diferencia es que separa las instancias en lotes.

Este comando modificará solo OpsWorks los recursos. El estado de las instancias EC2 seguirá siendo el mismo.

python3 layer_detacher.py detach \ --layer-id opsworks-layer-id \ --region opsworks-stack-region \ --batch-size 5

Ejemplo 4: Limpiar todos los recursos de una capa y eliminarla

El siguiente comando recorrerá todos los recursos de una capa y los eliminará. Más detalladamente, detendrá y eliminará todas las instancias de EC2, separará el balanceador de carga OpsWorks y anulará el registro de las instancias, las IP elásticas y los volúmenes de Amazon RDS. Tras limpiar los recursos, eliminará la capa.

Este comando eliminará OpsWorks los recursos y las instancias de EC2. Si desea que las instancias de EC2 permanezcan intactas, utilice el detach comando antes de usarlo. cleanup De esta forma, el cleanup comando eliminará todos los recursos restantes.

python3 layer_detacher.py cleanup \ --layer-id opsworks-layer-id \ --region opsworks-stack-region

Ejemplo 5: Limpiar todos los recursos de una pila y eliminarla

El siguiente comando se repetirá en todas las capas y, a continuación, en los recursos de cada capa. Para cada capa, el comando detendrá y eliminará todas las instancias de EC2, separará los balanceadores de carga OpsWorks y anulará el registro de las instancias, las IP elásticas y los volúmenes de Amazon RDS. A continuación, el comando eliminará la capa. Se realizará el mismo proceso en todas las capas que pertenezcan a esta pila. Por último, después de eliminar todas las capas, se eliminará la pila.

Este comando eliminará OpsWorks los recursos y las instancias de EC2. Si desea que las instancias de EC2 permanezcan intactas, utilice el detach comando antes de usarlo. cleanup De esta forma, el cleanup comando eliminará todos los recursos restantes.

python3 layer_detacher.py cleanup \ --stack-id opsworks-stack-id \ --region opsworks-stack-region

Paso 4: Sigue utilizando tus recursos después de separarte de OpsWorks

Tras ejecutar el detach comando, la herramienta crea una nueva AWS Service Catalog AppRegistry aplicación correspondiente a la capa separada. El nombre de la aplicación sigue el formatolayer-name---layer-id. También añade la OpsWorksLayerId etiqueta para identificar de forma exclusiva la aplicación que coincide con la capa separada.

Para añadir nuevos AWS recursos a esta aplicación (por ejemplo, nuevas instancias de EC2), puede realizar una de las siguientes acciones:

  1. Etiquete el recurso con la etiqueta de aplicación exclusiva de la AppRegistry aplicación:

    Clave de etiqueta: awsApplication

    Valor: arn:aws:resource-groups:region:account-id:group/application-name/application-id>

  2. Ejecute el comando associate-resource.

Además, para cada AppRegistry aplicación, se crea un grupo de recursos. El grupo de recursos contiene las siguientes etiquetas.

Clave de etiqueta Valor

EnableAWSServiceCatalogAppRegistry

TRUE

aws:servicecatalog:applicationName

application-name

aws:servicecatalog:applicationId

application-id

aws:servicecatalog:applicationArn

arn:aws:servicecatalog:region:account-id:/applications/application-id

Realizar tareas después de la separación

En la siguiente tabla se proporciona información sobre cómo realizar las tareas después de la separación:

Tarea Descripción

Ejecutar eventos del ciclo de vida

Tras ejecutar el detach comando y si ha seleccionado la opción, el script crea 5 documentos de automatización que coinciden con los 5 eventos OpsWorks del ciclo de vida.

El nombre de cada documento de automatización sigue este formato:layer-id_lifecycle-event_automation_document.

Para simular OpsWorks el comportamiento en Systems Manager, tendrá que activar manualmente las ejecuciones de automatización al aprovisionar, finalizar las instancias de EC2 o implementar o eliminar recetas.

Actualización del JSON personalizado

El JSON personalizado para la pila y la capa se almacena en un depósito de S3 especificado durante la separación o, como alternativa, en un depósito de S3 nuevo que se crea.

Los nombres de archivo almacenados para los archivos JSON son los siguientes:

  • layercustomjson.json

  • stackcustomjson.json

Cambiar la lista de ejecución para los eventos del ciclo de vida

La lista de ejecución de cada evento del ciclo de vida se define en el documento de automatización correspondiente. Para cambiar la lista de ejecuciones, busque los documentos de automatización en la AppRegistry aplicación y modifique el RunList parámetro.

El proceso de actualización de recetas y libros de cocina no ha cambiado porqueAWS-ApplyChefRecipes, al activarse los documentos de Automation, es compatible con la misma fuente que OpsWorks.

Gestión de la sanación y el escalado automáticos

Al desconectar una instancia, el OpsWorks agente se desinstala. Sin el agente, OpsWorks no puede reparar ni reemplazar automáticamente los casos en mal estado, ni puede escalar automáticamente su flota. Para continuar con el escalado automático y la sustitución de las instancias fallidas, cree un grupo de Auto Scaling de Amazon EC2. El grupo lanzará nuevas instancias para mantener la capacidad deseada cuando Amazon EC2 detecte instancias en mal estado que deban sustituirse.

Gestión de Load Balancer

Si la capa usa un Classic Load Balancer, el detach comando lo separará antes de anular el registro de las instancias. Esto se hace para garantizar que todas las asociaciones de instancias de ELB permanezcan conservadas en Amazon EC2 durante el proceso de desconexión, lo que se traduce en un tiempo de inactividad nulo. Una vez finalizado el proceso, podrá administrar su ELB en EC2.

Conexión a una instancia

Al ejecutar el detach comando handle-prerequisites o, se realizan dos comprobaciones:

  • La versión del agente SSM y los permisos

  • Claves de SSH

Los comandos también le ofrecen la opción de actualizar el agente SSM y añadir los permisos necesarios para que pueda conectarse a las instancias mediante el Administrador de sesiones. Si existen claves SSH, también tienes la opción de usar SSH en la instancia.

Uso de la pestaña Instancias del administrador de aplicaciones de Systems Manager

Tras la separación, podrá ver y gestionar sus instancias en la pestaña Instancias de Application Manager.

La pestaña Instancias proporciona información agregada sobre las instancias EC2 de una aplicación, como su estado, estado y estado del último comando. Con esta pestaña, puede ver información detallada sobre instancias individuales, como el historial de comandos, los estados de alarma, el estado de los agentes de Systems Manager y más. La pestaña Instancias también proporciona una variedad de acciones, como la posibilidad de aplicar recetas de Chef, iniciar o detener una instancia, o agregar o eliminar una instancia de un grupo de Auto Scaling.