

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
<a name="using-stacks-detach-tool"></a>

**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 EC2 compatible para configurar y administrar las instancias. AWS Systems Manager

En 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.

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

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

1. 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

1. 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
<a name="using-stacks-detach-tool-process"></a>

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 | Description (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 las instancias mediante el OpsWorks etiquetado APIs o la propagación de etiquetas desde las capas y pilas. Puedes eliminar cualquiera de estas etiquetas utilizando la función relevante una vez que se EC2 APIs haya completado la separación.  Luego, el comando verificará 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.  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 de ser necesaria.   | 

## Limitaciones
<a name="using-stacks-detach-tool-limitations"></a>

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
<a name="using-stacks-detach-tool-gs"></a>

### Paso 1: Compruebe que se cumplen los requisitos previos
<a name="using-stacks-detach-tool-step1"></a>

Los tres comandos de la herramienta Detach In Place son scripts de Python, que puede ejecutar localmente, en una EC2 instancia o mediante [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html#how-to-get-started)su uso.

AWS CloudShell es un shell basado en un navegador que permite acceder desde la línea de comandos a los recursos de los AWS recursos seleccionados. 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
<a name="using-stacks-detach-tool-step2"></a>

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
   ```

1. 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

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

   ```
   pip install pipenv
   ```

### Paso 3: ejecuta el script
<a name="using-stacks-detach-tool-step3"></a>

En primer lugar, configure su entorno para poder 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.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/using-stacks-detach-tool.html)

Puedes ver las opciones disponibles para los `detach` `cleanup` comandos `handle-prerequisites` y los comandos ejecutándolos 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.

**Topics**
+ [Ejemplo 1: compruebe si una capa cumple todos los requisitos previos y es apta para la separación](#using-stacks-detach-tool-step3-ex1)
+ [Ejemplo 2: Separar todas las instancias de una capa](#using-stacks-detach-tool-step3-ex2)
+ [Ejemplo 3: Separar todas las instancias de una capa en lotes](#using-stacks-detach-tool-step3-ex3)
+ [Ejemplo 4: Limpiar todos los recursos de una capa y eliminarla](#using-stacks-detach-tool-step3-ex4)
+ [Ejemplo 5: Limpiar todos los recursos de una pila y eliminarla](#using-stacks-detach-tool-step3-ex5)

#### Ejemplo 1: compruebe si una capa cumple todos los requisitos previos y es apta para la separación
<a name="using-stacks-detach-tool-step3-ex1"></a>

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 Load/Time Auto Scaling.
+ Todas las instancias tienen el OpsWorks agente más reciente.
+ 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
<a name="using-stacks-detach-tool-step3-ex2"></a>

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.

1. 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.

1. Cree una AppRegistry aplicación para todas las instancias que se separarán. La aplicación tiene un grupo de recursos asociado que contiene todas las instancias y los 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.

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

Este comando modificará solo OpsWorks los recursos. El estado de EC2 las instancias 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
<a name="using-stacks-detach-tool-step3-ex3"></a>

El siguiente comando hace lo mismo que en el ejemplo [anterior](#using-stacks-detach-tool-step3-ex2). La única diferencia es que separa las instancias en lotes.

Este comando modificará solo OpsWorks los recursos. El estado de EC2 las instancias 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
<a name="using-stacks-detach-tool-step3-ex4"></a>

El siguiente comando recorrerá todos los recursos de una capa y los eliminará. Más detalladamente, detendrá y eliminará todas las instancias del balanceador de cargas EC2, lo desconectará OpsWorks y anulará el registro de las instancias, los elásticos y los volúmenes de Amazon RDS. IPs Tras limpiar los recursos, eliminará la capa.

Este comando eliminará OpsWorks los recursos y EC2 las instancias. Si desea que sus EC2 instancias permanezcan intactas, utilice el `detach` comando antes de `cleanup` usarlo. 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
<a name="using-stacks-detach-tool-step3-ex5"></a>

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 y EC2, separará los balanceadores de carga OpsWorks y anulará el registro de las instancias, los elásticos y los volúmenes de Amazon RDS. IPs 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 EC2 las instancias. Si desea que sus EC2 instancias permanezcan intactas, utilice el `detach` comando antes de `cleanup` usarlo. 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
<a name="using-stacks-detach-tool-step4"></a>

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`layer-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 EC2 instancias), 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>`

1. Ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/servicecatalog-appregistry/associate-resource.html](https://docs.aws.amazon.com/cli/latest/reference/servicecatalog-appregistry/associate-resource.html).

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
<a name="using-stacks-detach-tool-step4-tasks"></a>

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


| Tarea | Description (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 EC2 instancias 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/using-stacks-detach-tool.html)  | 
|  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 porque`AWS-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 Amazon EC2 Auto Scaling. El grupo lanzará nuevas instancias para mantener la capacidad deseada cuando Amazon EC2 detecte instancias en mal estado que deban reemplazarse.  | 
|  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ás gestionar tu ELB en él. EC2  | 
|  Conexión a una instancia  |  Al ejecutar el `detach` comando `handle-prerequisites` o, se realizan dos comprobaciones: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/opsworks/latest/userguide/using-stacks-detach-tool.html) 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
<a name="using-stacks-detach-tool-step4-instancetab"></a>

Tras la separación, podrá ver y gestionar sus instancias en la [pestaña](https://docs.aws.amazon.com/systems-manager/latest/userguide/application-manager-working-instances.html) Instancias de Application Manager.

La pestaña **Instancias** proporciona información agregada sobre EC2 las instancias 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.