Uso de AMI personalizadas - 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 AMI personalizadas

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 existentes. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post o a través de Premium AWS Support.

AWS OpsWorks Stacks admite dos formas de personalizar las instancias: Amazon Machine Images (AMI) personalizadas y recetas de Chef. Ambos enfoques le permiten controlar qué paquetes y versiones de paquete se instalan, cómo se configuran, etc. Sin embargo, cada uno tiene diferentes ventajas, por lo que el mejor enfoque dependerá de sus necesidades.

A continuación, se enumeran los motivos más importantes para utilizar una AMI personalizada:

  • Desea realizar un empaquetado previo de paquetes concretos en lugar de instalarlos una vez que la instancia se ha iniciado.

  • Desea controlar cuándo se producirán las actualizaciones de paquetes para proporcionar a la capa una imagen base coherente.

  • Desea instancias basadas en carga en particular, para arrancar lo más rápido posible.

A continuación, se enumeran los motivos más importantes para utilizar las recetas de Chef:

  • Son más flexibles que las AMI personalizadas.

  • Son más fáciles de actualizar.

  • Pueden actualizar las instancias que se están ejecutando.

En la práctica, la mejor solución puede ser una combinación de ambos enfoques. Para obtener más información acerca de las recetas, consulte Cookbooks and Recipes.

Cómo funcionan las AMI personalizadas con Stacks AWS OpsWorks

Para especificar una AMI personalizada para las instancias, selecciona Usar una AMI personalizada como sistema operativo de la instancia al crear una nueva instancia. AWS OpsWorks A continuación, Stacks muestra una lista de las AMI personalizadas de la región de la pila y tú seleccionas la que corresponda de la lista. Para obtener más información, consulte Añadir una instancia a una capa.

nota

No puede especificar una AMI personalizada determinada como el sistema operativo predeterminado de una pila. Puede definir Use custom AMI como el sistema operativo predeterminado de la pila, pero solo puede especificar una AMI determinada si añade nuevas instancias a las capas. Para obtener más información, consulte Añadir una instancia a una capa y Crear una pila nueva. Aunque se podrían crear instancias con otros sistemas operativos (como CentOS 6.x) que se hayan creado a partir de AMI personalizadas o desarrolladas por la comunidad, no son compatibles oficialmente.

Este tema trata algunas cuestiones generales que debería tener en cuenta antes de crear o utilizar una AMI personalizada.

Comportamiento de inicio

Al iniciar la instancia, AWS OpsWorks Stacks usa la AMI personalizada especificada para lanzar una nueva instancia de Amazon EC2. AWS OpsWorks Luego, Stacks usa cloud-init para instalar el agente de AWS OpsWorks Stacks en la instancia y el agente ejecuta las recetas de configuración de la instancia seguidas de las de implementación. Cuando la instancia esté online, el agente ejecutará las recetas de configuración en todas las instancias de la pila, también en la instancia que acaba de añadir.

Elección de una capa

El agente de AWS OpsWorks Stacks no suele entrar en conflicto con los paquetes instalados. Sin embargo, la instancia debe ser miembro de al menos una capa. AWS OpsWorks Stacks siempre ejecuta las recetas de esa capa, lo que podría causar problemas. Debe saber qué hacen exactamente las recetas de una capa en una instancia antes de añadir una instancia con una AMI personalizada a dicha capa.

Para ver qué recetas ejecuta un determinado tipo de capa en la instancia, abra una pila que incluya la capa en cuestión. A continuación, haga clic en Layers (Capas) en el panel de navegación y, a continuación, en Recipes (Recetas) en la capa. Para ver el código real, haga clic en el nombre de la receta.

nota

En el caso de las AMI de Linux, una forma de reducir la posibilidad de conflictos consiste en utilizar AWS OpsWorks Stacks para aprovisionar y configurar la instancia que constituye la base de la AMI personalizada. Para obtener más información, consulte Cree una AMI de Linux personalizada a partir de una instancia de AWS OpsWorks Stacks.

Administración de aplicaciones

Además de paquetes, es posible que también desee incluir una aplicación en la AMI. Si tiene una aplicación compleja y de gran tamaño, incluirla en la AMI puede reducir el tiempo de inicio de la instancia. Puede incluir aplicaciones pequeñas en su AMI, pero normalmente la ventaja de tiempo en relación con la implementación de la aplicación por parte de AWS OpsWorks Stacks es mínima o nula.

Una opción es incluir la aplicación en la AMI y también crear una aplicación que la implemente en las instancias de un repositorio. Este enfoque reduce el tiempo de inicio, pero también constituye una forma fácil de actualizar la aplicación si la instancia se está ejecutando. Tenga en cuenta que las recetas de Chef son idempotentes, lo que significa que las recetas de implementación no modificarán la aplicación si la versión del repositorio es la misma que la de la instancia.

Creación de una AMI personalizada para AWS OpsWorks Stacks

Para usar una AMI personalizada con AWS OpsWorks Stacks, primero debes crear una AMI a partir de una instancia personalizada. Puede elegir entre dos opciones.

  • Utilizar la consola de Amazon EC2 o la API para crear y personalizar una instancia basada en una versión de 64 bits de una de las AMI soportadas en AWS OpsWorks Stacks.

  • En el caso de las AMI de Linux, se utiliza OpsWorks para crear una instancia de Amazon EC2 en función de la configuración de sus capas asociadas.

Antes de crear una AMI de Linux personalizada, inhabilita noexec la /tmp partición para permitir que AWS OpsWorks Stacks instale su agente en instancias de Linux personalizadas.

nota

Tenga en cuenta que es posible que una AMI no funcione en todos los tipos de instancias, por lo que deberá asegurarse de que la AMI de origen es compatible con los tipos de instancia que va a utilizar. En concreto, los tipos de instancia R3 necesitan una AMI de virtualización asistida por hardware (HVM).

A continuación, utilice la consola de Amazon EC2 o la API para crear una AMI personalizada a partir de la instancia personalizada. Puede utilizar las AMI personalizadas en cualquier pila que esté en la misma región. Para ello, añada una instancia a una capa y especifique la AMI personalizada. Para obtener más información sobre cómo crear una instancia que utilice una AMI personalizada, consulte Añadir una instancia a una capa.

nota

De forma predeterminada, AWS OpsWorks Stacks instala todas las actualizaciones de Amazon Linux en el arranque, lo que te proporciona la versión más reciente. Además, Amazon Linux publica una versión nueva aproximadamente cada seis meses, lo que puede conllevar cambios significativos. De forma predeterminada, las AMI personalizadas basadas en Amazon Linux se actualizan automáticamente a la nueva versión cuando esta se publica. La práctica recomendada es bloquear la AMI personalizada en una versión específica de Amazon Linux y aplazar la actualización hasta que haya probado la nueva versión. Para obtener más información, consulte ¿Cómo puedo bloquear la AMI para una versión concreta?

Creación de una AMI personalizada con Amazon EC2

La forma más sencilla de crear una AMI personalizada, y la única opción en el caso de las AMI de Windows, es realizar toda la tarea en la consola de Amazon EC2 o la API. Para obtener más información sobre los siguientes pasos, consulte Crear sus propias AMI.

Para crear una AMI personalizada con la consola de Amazon EC2 o la API
  1. Utilice una versión de 64 bits de una de las AMI soportadas en AWS OpsWorks para crear una instancia.

  2. Personalice la instancia a partir del paso 1; configúrela, instale los paquetes, etc. Recuerde que todo lo que instale se reproducirá en todas las instancias basadas en la AMI, por lo que se recomienda no incluir elementos que deberían ser específicos de una determinada instancia.

  3. Detenga la instancia y cree una AMI personalizada.

Cree una AMI de Linux personalizada a partir de una instancia de AWS OpsWorks Stacks

Para usar una instancia de AWS OpsWorks Stacks Linux personalizada para crear una AMI, tenga en cuenta que cada instancia de Amazon EC2 creada OpsWorks por incluye una identidad única. Si crea una AMI personalizada a partir de una instancia de este tipo, contendrá la identidad y todas las instancias basadas en esa AMI tendrán la misma identidad. Para garantizar que la instancia basada en la AMI personalizada tiene una identidad única, debe eliminar la identidad de la instancia personalizada antes de crear la AMI.

Para crear una AMI personalizada a partir de una instancia de AWS OpsWorks Stacks
  1. Cree una pila de Linux y agregue una o varias capas para definir la configuración de la instancia personalizada. Puede utilizar las capas integradas personalizadas según sea necesario, o también capas totalmente personalizadas. Para obtener más información, consulte Personalización AWS OpsWorks Pilas.

  2. Edita las capas y AutoHealing desactívalas.

  3. Añada una instancia con su distribución de Linux preferida a la capa o capas e iníciela. Le recomendamos que utilice una instancia respaldada por Amazon EBS. Abra la página de detalles de la instancia y anote su ID de Amazon EC2, lo necesitará más adelante.

  4. Cuando la instancia esté online, inicie sesión con SSH y realice uno de los cuatro pasos siguientes, según el sistema operativo de la instancia.

  5. En el caso de una instancia de Amazon Linux en una pila de Chef 11 o Chef 12 o una instancia de Red Hat Enterprise Linux 7 en una pila de Chef 11, haga lo siguiente.

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef

      nota

      En el caso de instancias en una pila de Chef 12, añada las siguientes dos carpetas a este comando:

      • /var/chef

      • /opt/chef

    4. sudo rpm -e opsworks-agent-ruby

    5. sudo rpm -e chef

  6. En el caso de una instancia de Ubuntu 16.04 LTS o 18.04 LTS en una pila de Chef 12, haga lo siguiente.

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    3. sudo apt-get -y remove chef

    4. sudo dpkg -r opsworks-agent-ruby

    5. systemctl stop apt-daily.timer

    6. systemctl stop apt-daily-upgrade.timer

    7. rm /var/lib/systemd/timers/stamp-apt-daily.timer

    8. rm /var/lib/systemd/timers/stamp-apt-daily-upgrade.timer

  7. En el caso de otras versiones de Ubuntu compatibles en una pila de Chef 12, haga lo siguiente.

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    4. sudo apt-get -y remove chef

    5. sudo dpkg -r opsworks-agent-ruby

  8. En el caso de una instancia de Red Hat Enterprise Linux 7 en una pila de Chef 12, haga lo siguiente.

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef /var/chef

    3. sudo rpm -e opsworks-agent-ruby

    4. sudo rpm -e chef

  9. Este paso depende del tipo de instancia:

  10. Para limpiar tu pila, vuelve a la consola de AWS OpsWorks Stacks y elimina la instancia de la pila.

Creación de una AMI de Windows personalizada

Los siguientes procedimientos crean AMI personalizadas para Windows Server 2022 Base. Puede seleccionar otros sistemas operativos Windows Server en la consola de administración de Amazon EC2.

importante

Actualmente, el agente de AWS OpsWorks Stacks no se puede instalar en instancias basadas en Windows que utilizan un idioma de interfaz de usuario del sistema distinto del inglés ( AWS OpsWorks Estados Unidos) (en-US), ni tampoco puede administrarlas.

Creación de una AMI de Windows personalizada con Sysprep

La creación de AMI de Windows personalizadas con Sysprep suele ser un proceso que, aunque ralentiza el lanzamiento de la instancia, resulta más transparente. La primera vez que se inicia una instancia creada a partir de una imagen creada con ella Sysprep lleva más tiempo debido a Sysprep las actividades, los reinicios, el aprovisionamiento de Stacks y la primera ejecución de AWS OpsWorks Stacks, incluida la instalación y la configuración. AWS OpsWorks Complete los pasos para crear una AMI personalizada de Windows en la consola de Amazon EC2.

Para crear una AMI de Windows personalizada con Sysprep
  1. En la consola de Amazon EC2, elija Launch Instance.

  2. Busque Microsoft Windows Server 2022 Base y, a continuación, elija Seleccionar.

  3. Elija el tipo de instancia que desee y, a continuación, elija Configure Instance Details (Configurar detalles de la instancia). Realice los cambios de configuración en la AMI, incluidos nombre del equipo, almacenamiento y configuración del grupo de seguridad. Elija Iniciar.

  4. Una vez que el proceso de arranque de la instancia haya finalizado, introduzca la contraseña y conéctese a la instancia en una ventana Remote Desktop Connection (Conexión de escritorio remota) de Windows.

  5. En la pantalla de inicio de Windows, selecciona Inicio y, a continuación, empieza a escribir ec2configservice hasta que los resultados muestren la consola EC2. ConfigServiceSettings Abra la consola de .

  6. En la pestaña General, asegúrate de que la casilla Habilitar la UserData ejecución esté llena (aunque esta opción no es necesariaSysprep, sí lo es para que AWS OpsWorks Stacks instale su agente). Desactive la casilla de verificación de la opción Set the computer name of the instance... (Establecer el nombre del equipo de la instancia), ya que esta opción puede provocar un bucle de reinicio con AWS OpsWorks Stacks.

  7. En la pestaña Imagen, establezca Contraseña de administrador en Aleatoria para que Amazon EC2 genere automáticamente una contraseña que pueda recuperar mediante una clave SSH, o bien Especificar si desea especificar su propia contraseña. Sysprep guarda esta configuración. Si especifica su propia contraseña, guárdela en un lugar adecuado. Le recomendamos que no elija Keep Existing (Conservar existente).

  8. Elija Apply (Aplicar) y, a continuación, elija Shutdown with Sysprep (Cerrar con Sysprep). Cuando se le pida confirmación, elija Yes (Sí).

  9. Una vez que la instancia se haya detenido, en la consola de Amazon EC2, haga clic con el botón secundario del mouse en la instancia en la lista Instances, elija Image y, a continuación, elija Create Image.

  10. En la página Create Image (Crear imagen), introduzca un nombre y una descripción para la imagen y especifique la configuración de volumen. Cuando haya terminado, seleccione Create Image (Crear imagen).

  11. Abra la página Images (Imágenes) y espere a que la imagen pase del estado pending (pendiente) a available (disponible). Ya se puede utilizar la nueva AMI.

Creación de una AMI de Windows personalizada sin Sysprep

Complete los pasos para crear una AMI personalizada de Windows en la consola de Amazon EC2.

Para crear una AMI de Windows personalizada sin Sysprep
  1. En la consola de Amazon EC2, elija Launch Instance.

  2. Busque Microsoft Windows Server 2022 Base y, a continuación, elija Seleccionar.

  3. Elija el tipo de instancia que desee y, a continuación, elija Configure Instance Details (Configurar detalles de la instancia). Realice los cambios de configuración en la AMI, incluidos nombre del equipo, almacenamiento y configuración del grupo de seguridad. Elija Iniciar.

  4. Una vez que el proceso de arranque de la instancia haya finalizado, introduzca la contraseña y conéctese a la instancia en una ventana Remote Desktop Connection (Conexión de escritorio remota) de Windows.

  5. En la instancia, abra C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml, cambie los dos valores siguientes y, a continuación, guarde y cierre el archivo:

    • De Ec2SetPassword a Enabled

    • De Ec2HandleUserData a Enabled

  6. Desconéctese de la sesión de Remote Desktop y vuelva a la consola de Amazon EC2.

  7. En la lista Instances (Instancias), detenga la instancia.

  8. Una vez que la instancia se haya detenido, en la consola de Amazon EC2, haga clic con el botón secundario del mouse en la instancia en la lista Instances, elija Image y, a continuación, elija Create Image.

  9. En la página Create Image (Crear imagen), introduzca un nombre y una descripción para la imagen y especifique la configuración de volumen. Cuando haya terminado, seleccione Create Image (Crear imagen).

  10. Abra la página Images (Imágenes) y espere a que la imagen pase del estado pending (pendiente) a available (disponible). Ya se puede utilizar la nueva AMI.

Adición de una nueva instancia mediante el uso de una AMI de Windows personalizada

Una vez que la imagen haya cambiado al estado available (disponible), podrá crear instancias basadas en la AMI de Windows personalizada. Cuando se elige Use custom Windows AMI (Usar AMI de Windows personalizada) en la lista Operating system (Sistema operativo), AWS OpsWorks Stacks muestra una lista de AMI personalizadas.

Para añadir una nueva instancia basada en una AMI de Windows personalizada
  1. Cuando tu nueva AMI esté disponible, ve a la consola AWS OpsWorks Stacks, abre la página de instancias de una pila de Windows y selecciona + Instance en la parte inferior de la página para añadir una nueva instancia.

  2. En la pestaña New (Nueva), elija Advanced (Avanzado).

  3. En la lista desplegable Operating system (Sistema operativo), elija Use custom Windows AMI (Usar AMI de Windows personalizada).

  4. En la lista desplegable Custom AMI (AMI personalizada), seleccione la AMI que ha creado y, a continuación, elija Add Instance (Añadir instancia).

Ahora puede arrancar y ejecutar la instancia.