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:
-
La herramienta realiza comprobaciones de validación para garantizar que los recursos estén listos para el desprendimiento.
-
La herramienta exporta el JSON personalizado de su OpsWorks pila y lo almacena como un objeto en Amazon S3.
-
La herramienta crea documentos de automatización de Systems Manager que representan cada evento del ciclo de vida de OpsWorks Stacks.
-
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
-
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 |
---|---|
|
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. |
|
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. |
|
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. notaSe recomienda ejecutar la nueva configuración durante unos días antes de ejecutar el |
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
-
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
-
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
-
-
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 |
---|---|---|---|---|---|
|
|
El ID de la capa que desea separar. |
Cadena |
Sí |
- |
|
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 |
|
|
|
ID de la capa que desea separar. |
Cadena |
Sí |
- |
|
Número de instancias que se van a separar de una capa (por ejemplo, 5). |
Cadena |
No |
- |
|
|
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 |
|
|
|
ID de la pila que desea eliminar. |
Cadena |
No |
Exclusivos entre sí, debe especificar un ID de capa o un ID de pila |
|
ID de la capa que desea eliminar |
Cadena |
No |
||
|
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.
Ejemplos:
- Ejemplo 1: compruebe si una capa cumple todos los requisitos previos y es apta para la separación
- Ejemplo 2: Separar todas las instancias de una capa
- Ejemplo 3: Separar todas las instancias de una capa en lotes
- Ejemplo 4: Limpiar todos los recursos de una capa y eliminarla
- Ejemplo 5: Limpiar todos los recursos de una pila y eliminarla
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
\ --regionopsworks-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:
-
Guarde el JSON personalizado y cárguelo en S3.
-
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.
-
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.
-
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
\ --regionopsworks-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
\ --regionopsworks-stack-region
\ --batch-size5
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
\ --regionopsworks-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
\ --regionopsworks-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 formato
. También añade la layer-name
---layer-id
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:
-
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
> -
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 |
---|---|
|
|
|
|
|
|
|
|
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 El nombre de cada documento de automatización sigue este formato: 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:
|
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 El proceso de actualización de recetas y libros de cocina no ha cambiado porque |
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 |
Conexión a una instancia |
Al ejecutar el
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.