Búsqueda de una AMI de Linux - Amazon Elastic Compute Cloud

Búsqueda de una AMI de Linux

Para poder lanzar una instancia, debe seleccionar una AMI que usar. Cuando vaya a seleccionar una AMI, tenga en cuenta los siguientes requisitos que podría tener para las instancias que va a lanzar:

  • La región

  • El sistema operativo

  • La arquitectura: 32 bits (i386), 64 bits (x86_64), ARM 64 bits (arm64)

  • El tipo de dispositivo raíz: Amazon EBS o almacén de instancias

  • El proveedor (por ejemplo, Amazon Web Services)

  • Software adicional (por ejemplo, SQL server)

Si necesita encontrar una AMI de Windows, consulte Búsqueda de una AMI de Windows en la Guía del usuario de Amazon EC2 para instancias de Windows.

Búsqueda de una AMI de Linux mediante la consola de Amazon EC2

Puede buscar una AMI de Linux mediante la consola de Amazon EC2. Puede seleccionar en la lista de AMI cuando utilice el asistente de lanzamiento para lanzar una instancia, o bien puede buscar en todas las AMI disponibles mediante la página Images (Imágenes). Cada ID de AMI es exclusivo para una región de AWS específica.

Para buscar una AMI de Linux mediante el asistente de lanzamiento

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación, seleccione la región en la que se lanzarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación.

  3. En el panel de la consola, elija Launch Instance (Iniciar instancia).

  4. En la pestaña Quick Start (Inicio rápido), seleccione una de las AMI más utilizadas que aparecen en la lista. Si no ve la AMI que necesita, seleccione la pestaña My AMIs (Mis AMI), AWS Marketplace o Community AMIs (AMI de comunidad) para buscar AMI adicionales. Para obtener más información, consulte Paso 1: Elegir una imagen de máquina de Amazon (AMI).

Para buscar una AMI de Linux mediante la página Images

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación, seleccione la región en la que se lanzarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación.

  3. En el panel de navegación, elija AMIs.

  4. (Opcional) Utilice las opciones de Filter (Filtro) para reducir la lista a las AMI de Windows que se ajusten a sus necesidades. Por ejemplo, para enumerar todas las AMI de Linux que proporciona AWS, seleccione Public images (Imágenes públicas). Elija la barra de búsqueda y, en el menú, seleccione Owner (Propietario) y, a continuación, Amazon images (Imágenes de Amazon). Vuelva a elegir la barra de búsqueda para seleccionar Platform (Plataforma) y, a continuación, elija el sistema operativo en la lista proporcionada.

  5. (Opcional) Elija el icono Show/Hide Columns (Mostrar/ocultar columnas) para seleccionar los atributos de imagen que se van a mostrar, como el tipo de dispositivo raíz. Además, puede seleccionar una AMI de la lista y ver sus propiedades en la pestaña Details (Detalles).

  6. Antes de seleccionar una AMI, es importante que compruebe si está respaldada por un almacén de instancias o por Amazon EBS, y que usted es consciente de los efectos de esta diferencia. Para obtener más información, consulte Almacenamiento para el dispositivo raíz.

  7. Para lanzar una instancia desde esta AMI, selecciónela y elija Launch (Lanzar). Para obtener más información acerca del lanzamiento de una instancia mediante la consola, consulte Lanzamiento de la instancia desde una AMI. Si no está preparado para lanzar la instancia en ese momento, anote el ID de la AMI para usarlo más adelante.

Búsqueda de una AMI mediante la AWS CLI

Puede usar comandos de la AWS CLI para Amazon EC2 para enumerar solo las AMI de Linux que se ajusten a sus necesidades. Una vez que haya encontrado la AMI que se ajuste a sus necesidades, anote su ID para poder usarla para lanzar instancias. Para obtener más información, consulte Lanzamiento de una instancia mediante la AWS CLI en la AWS Command Line Interface Guía del usuario.

El comando describe-images admite parámetros de filtrado. Por ejemplo, utilice el parámetro --owners para mostrar las AMI públicas propiedad de Amazon.

aws ec2 describe-images --owners self amazon

Puede añadir el siguiente filtro al comando anterior para mostrar solo las AMI con respaldo Amazon EBS.

--filters "Name=root-device-type,Values=ebs"
importante

La omisión de la marca --owners del comando describe-images devolverá todas las imágenes para las que tiene permisos de lanzamiento, independientemente de quién sea su propietario.

Búsqueda de la AMI de Amazon Linux más reciente mediante Administrador de sistemas

Amazon EC2 proporciona parámetros públicos de AWS Administrador de sistemas para AMI públicas mantenidas por AWS que puede utilizar al iniciar instancias. Por ejemplo, el parámetro /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 proporcionado por EC2 está disponible en todas las regiones y siempre apunta a la versión más reciente de la AMI Amazon Linux 2 en una región determinada.

Los parámetros públicos de AMI de Amazon EC2 están disponibles en las siguientes rutas:

  • /aws/service/ami-amazon-linux-latest

  • /aws/service/ami-windows-latest

Puede ver una lista de todas Linux en la región actual de AWS mediante el siguiente comando en AWS CLI.

aws ssm get-parameters-by-path --path /aws/service/ami-amazon-linux-latest --query Parameters[].Name

Para lanzar una instancia con un parámetro público

En el ejemplo siguiente se utiliza el parámetro público proporcionado por EC2 para lanzar una instancia m5.xlarge con la AMI de Amazon Linux 2 más reciente.

Para especificar el parámetro en el comando, utilice la siguiente sintaxis: resolve:ssm:public-parameter, donde resolve:ssm es el prefijo estándar y public-parameter es la ruta y el nombre del parámetro público.

En el ejemplo, los parámetros --count y --security-group no están incluidos. En el caso de --count, el valor predeterminado es 1. Si tiene una VPC predeterminada y un grupo de seguridad predeterminado, estos serán los que se utilicen.

aws ec2 run-instances --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge --key-name MyKeyPair

Para obtener más información, consulte Uso de parámetros públicos en la Guía del usuario de AWS Administrador de sistemas y Query for the latest Amazon Linux AMI IDs Using AWS Administrador de sistemas Parameter Store.

Usar un parámetro de Administrador de sistemas para buscar una AMI

Cuando inicia una instancia mediante el asistente de inicio de EC2 en la consola, puede seleccionar una AMI de la lista o seleccionar un parámetro de AWS Administrador de sistemas que apunte a un ID de AMI. Si utiliza código de automatización para iniciar las instancias, puede especificar el parámetro de Administrador de sistemas en lugar del ID de AMI.

Un parámetro de Administrador de sistemas es un par clave-valor definido por el cliente que puede crear en el almacén de parámetros de Administrador de sistemas. El almacén de parámetros proporciona un almacén central para externalizar los valores de configuración de la aplicación. Para obtener más información, consulte la sección sobre el almacén de parámetros de Administrador de sistemas en la Guía del usuario de AWS Administrador de sistemas.

Cuando cree un parámetro que apunte a un ID de AMI, asegúrese de especificar el tipo de datos como aws:ec2:image. Este tipo de datos garantiza que cuando se crea o modifica el parámetro, el valor del parámetro se valida como ID de AMI. Para obtener más información, consulte Native parameter support for Amazon Machine Image IDs en la Guía del usuario de AWS Administrador de sistemas.

Casos de uso

Mediante el uso de parámetros de Administrador de sistemas para apuntar a los ID de AMI, puede facilitar a los usuarios la selección de la AMI correcta al iniciar instancias, y puede simplificar el mantenimiento del código de automatización.

Más fácil para los usuarios

Si necesita que las instancias se inicien con una AMI específica y si esa AMI se actualiza regularmente, se recomienda que exija a los usuarios seleccionar un parámetro de Administrador de sistemas para encontrar la AMI. Al exigir a los usuarios que seleccionen un parámetro de Administrador de sistemas, puede asegurarse de que se utiliza la última AMI para iniciar instancias.

Por ejemplo, cada mes en su organización puede crear una nueva versión de su AMI que tenga los últimos parches de aplicaciones y sistema operativo. También requiere que los usuarios inicien instancias con la última versión de su AMI. Para asegurarse de que los usuarios utilizan la versión más reciente, puede crear un parámetro de Administrador de sistemas (por ejemplo, golden-ami) que apunte al ID de AMI correcto. Cada vez que se crea una nueva versión de la AMI, se actualiza el valor del ID de la AMI en el parámetro para que siempre apunte a la AMI más reciente. Los usuarios no necesitan saber nada sobre las actualizaciones periódicas de la AMI, ya que siguen seleccionando el mismo parámetro de Administrador de sistemas cada vez. Al hacer que los usuarios seleccionen un parámetro de Administrador de sistemas, les resultará más fácil seleccionar la AMI correcta para el inicio de una instancia.

Simplificar el mantenimiento del código de automatización

Si utiliza código de automatización para iniciar las instancias, puede especificar el parámetro de Administrador de sistemas en lugar del ID de la AMI. Si se crea una nueva versión de la AMI, cambie el valor del ID de la AMI en el parámetro para que apunte a la AMI más reciente. Cada vez que se crea una nueva versión de la AMI no es necesario modificar el código de automatización que hace referencia al parámetro. Esto simplifica enormemente el mantenimiento de la automatización y ayuda a reducir los costos de implementación.

nota

Las instancias en ejecución no se ven afectadas cuando se cambia el ID de la AMI al que apunta el parámetro de Administrador de sistemas.

Lanzamiento de una instancia mediante un parámetro de Administrador de sistemas

Puede iniciar una instancia usando la consola o la AWS CLI. En lugar de especificar un ID de AMI, puede especificar un parámetro de AWS Administrador de sistemas que apunte a un ID de AMI.

Para buscar una AMI de Linux utilizando un parámetro de Administrador de sistemas (consola)

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación, seleccione la región en la que se lanzarán las instancias. Puede seleccionar cualquier región disponible, independientemente de su ubicación.

  3. En el panel de la consola, elija Launch Instance (Iniciar instancia).

  4. Elija Search by Administrador de sistemas parameter (Buscar por parámetro de Administrador de sistemas) (en la parte superior derecha).

  5. Para Administrador de sistemas parameter (Parámetro de Administrador de sistemas), seleccione un parámetro. El ID de AMI correspondiente aparece junto a Currently resolves to (Actualmente se resuelve en).

  6. Elija Search (Buscar). Las AMI que coinciden con el ID de AMI aparecen en la lista.

  7. Seleccione la AMI de la lista y elija Select (Seleccionar).

Para obtener más información sobre cómo iniciar una instancia desde una AMI mediante el asistente de inicio, consulte Paso 1: Elegir una imagen de máquina de Amazon (AMI).

Para lanzar una instancia utilizando un parámetro de AWS Administrador de sistemas en lugar de un ID de AMI (AWS CLI)

En el ejemplo siguiente se utiliza el parámetro de Administrador de sistemas golden-ami para lanzar una instancia m5.xlarge. El parámetro apunta a un ID de AMI.

Para especificar el parámetro en el comando, utilice la siguiente sintaxis: resolve:ssm:/parameter-name, donde resolve:ssm es el prefijo estándar y parameter-name es el nombre de parámetro único. Tenga en cuenta que el nombre de parámetro distingue entre mayúsculas y minúsculas. Las barras diagonales inversas para el nombre del parámetro solo son necesarias cuando el parámetro forma parte de una jerarquía, por ejemplo, /amis/production/golden-ami. Puede omitir la barra invertida si el parámetro no forma parte de una jerarquía.

En el ejemplo, los parámetros --count y --security-group no están incluidos. En el caso de --count, el valor predeterminado es 1. Si tiene una VPC predeterminada y un grupo de seguridad predeterminado, estos serán los que se utilicen.

aws ec2 run-instances --image-id resolve:ssm:/golden-ami --instance-type m5.xlarge ...

Para lanzar una instancia usando una versión específica de un parámetro de AWS Administrador de sistemas (AWS CLI)

Los parámetros de Administrador de sistemas tienen compatibilidad de versión. A cada iteración de un parámetro se le asigna un número de versión único. Puede hacer referencia a la versión del parámetro de la siguiente manera: resolve:ssm:parameter-name:version, donde version es el número de versión único. De forma predeterminada, se utiliza la última versión del parámetro cuando no se especifica ninguna versión.

En el ejemplo siguiente se utiliza la versión 2 del parámetro.

En el ejemplo, los parámetros --count y --security-group no están incluidos. En el caso de --count, el valor predeterminado es 1. Si tiene una VPC predeterminada y un grupo de seguridad predeterminado, estos serán los que se utilicen.

aws ec2 run-instances --image-id resolve:ssm:/golden-ami:2 --instance-type m5.xlarge ...

Para iniciar una instancia utilizando un parámetro público proporcionado por AWS

Amazon EC2 proporciona parámetros públicos de Administrador de sistemas para AMI públicas proporcionadas por AWS. Por ejemplo, el parámetro public /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 está disponible en todas las regiones y siempre apunta a la versión más reciente de la AMI de Amazon Linux 2 en la región.

aws ec2 run-instances --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge ...

Permisos

Si utiliza parámetros de Administrador de sistemas que apuntan al ID de AMI en el asistente de instancia de inicio, debe agregar ssm:DescribeParameters y ssm:GetParameters a la política de IAM. ssm:DescribeParameters concede a los usuarios de IAM el permiso para ver y seleccionar parámetros de Administrador de sistemas. ssm:GetParameters concede a los usuarios de IAM el permiso para obtener los valores de los parámetros de Administrador de sistemas. También puede restringir el acceso a parámetros de Administrador de sistemas específicos. Para obtener más información, consulte Usar el asistente para el lanzamiento de EC2.

Limitaciones

Las AMI y los parámetros de Administrador de sistemas son específicos de la región. Para utilizar el mismo nombre de parámetro de Administrador de sistemas en regiones, cree un parámetro de Administrador de sistemas en cada región con el mismo nombre (por ejemplo, golden-ami). En cada región, apunte con el parámetro de Administrador de sistemas a una AMI de esa región.

Búsqueda de una AMI de inicio rápido

Cuando se lanza una instancia con la consola de Amazon EC2, la página Choose an Amazon Machine Image (AMI) (Elija una imagen de máquina de Amazon (AMI)) incluye una lista de las AMI más utilizadas en la pestaña Quick Start (Inicio rápido). Si desea automatizar el lanzamiento de una instancia utilizando una de estas AMI de inicio rápido, deberá localizar mediante programación el ID de la versión actual de la AMI.

Para localizar la versión actual de una AMI de inicio rápido, puede enumerar todas las AMI con su nombre de AMI y luego buscar la que tiene la fecha de creación más reciente.

ejemplo Ejemplo: Buscar la AMI de Amazon Linux 2 actual

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=amzn2-ami-hvm-2.0.????????.?-x86_64-gp2' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

ejemplo Ejemplo: Buscar la AMI de Amazon Linux actual

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=amzn-ami-hvm-????.??.?.????????-x86_64-gp2' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

ejemplo Ejemplo: Buscar la AMI de Ubuntu Server 16.04 LTS actual

aws ec2 describe-images \ --owners 099720109477 \ --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-????????' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

ejemplo Ejemplo: Buscar la AMI de Red Hat Enterprise Linux 7.5 actual

aws ec2 describe-images \ --owners 309956199498 \ --filters 'Name=name,Values=RHEL-7.5_HVM_GA*' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text

ejemplo Ejemplo: Buscar la AMI de SUSE Linux Enterprise Server 15 actual

aws ec2 describe-images \ --owners amazon \ --filters 'Name=name,Values=suse-sles-15-v????????-hvm-ssd-x86_64' 'Name=state,Values=available' \ --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' \ --output text