

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 una AMI personalizada para ofrecer más flexibilidad a la configuración del clúster de Amazon EMR
<a name="emr-custom-ami"></a>

Si utiliza la versión 5.7.0 o superior de Amazon EMR, puede optar por especificar una AMI de Amazon Linux personalizada en lugar de la AMI de Amazon Linux predeterminada para Amazon EMR. Una AMI personalizada resulta útil si desea hacer lo siguiente:
+ Pre-install aplicaciones y realizar otras personalizaciones en lugar de utilizar acciones de arranque. Esto puede mejorar el tiempo de inicio del clúster y simplificar el flujo de trabajo de inicio. Para obtener más información y un ejemplo, consulte [Creación de una AMI de Amazon Linux personalizada a partir de una instancia preconfigurada](#emr-custom-ami-preconfigure).
+ Implementar configuraciones de clúster y de nodo más sofisticadas de lo que permiten las acciones de arranque.
+ Cifre los volúmenes del dispositivo raíz de EBS (volúmenes de arranque) de instancias de EC2 en su clúster si está utilizando una versión de Amazon EMR anterior a la 5.24.0. Al igual que con la AMI predeterminada, el tamaño mínimo del volumen raíz de una AMI personalizada es de 10 GiB para las versiones 6.9 y posteriores de Amazon EMR, y de 15 GiB para las versiones 6.10 y posteriores de Amazon EMR. Para obtener más información, consulte [Creación de una AMI personalizada con un volumen de dispositivo raíz de Amazon EBS cifrado](#emr-custom-ami-encrypted).
**nota**  
A partir de la versión 5.24.0 de Amazon EMR, puede utilizar una opción de configuración de seguridad para cifrar los volúmenes de almacenamiento y los dispositivos raíz de EBS si lo especifica como proveedor de claves. AWS KMS Para obtener más información, consulte [Cifrado de disco local](emr-data-encryption-options.md#emr-encryption-localdisk).

Debe existir una AMI personalizada en la misma AWS región en la que se creó el clúster. También debe coincidir con la arquitectura de la instancia de EC2. Por ejemplo, una instancia m5.xlarge tiene una arquitectura x86\_64. Por lo tanto, para aprovisionar una instancia m5.xlarge mediante una AMI personalizada, la AMI también debe tener una arquitectura x86\_64. Del mismo modo, para aprovisionar una instancia m6g.xlarge, que tiene una arquitectura arm64, la AMI personalizada debe tener una arquitectura arm64. Para más información acerca de la identificación de una AMI de Linux para su tipo de instancia, consulte [Buscar una AMI de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) en la *Guía del usuario de Amazon EC2*.

**importante**  
Los clústeres de Amazon EMR que ejecutan las imágenes de máquina de Amazon (AMI) de Amazon Linux o Amazon Linux 2 utilizan el comportamiento predeterminado de Amazon Linux y no descargan ni instalan automáticamente actualizaciones importantes y críticas del kernel que requieren un reinicio. Este comportamiento es el mismo que el de otras instancias de Amazon EC2 que ejecutan la AMI predeterminada de Amazon Linux. Si aparecen nuevas actualizaciones de software de Amazon Linux que requieren un reinicio (por ejemplo, actualizaciones del kernel, NVIDIA y CUDA) tras el lanzamiento de una versión de Amazon EMR, las instancias de clúster de Amazon EMR que ejecutan la AMI predeterminada no descargan ni instalan automáticamente esas actualizaciones. Para obtener actualizaciones del kernel, puede [personalizar la AMI de Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html) para que [utilice la AMI de Amazon Linux más reciente](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).

## Creación de una AMI de Amazon Linux personalizada a partir de una instancia preconfigurada
<a name="emr-custom-ami-preconfigure"></a>

Los pasos básicos para preinstalar el software y realizar otras configuraciones para crear una AMI de Amazon Linux personalizada para Amazon EMR son los siguientes:
+ Lance una instancia desde la AMI de Amazon Linux de base.
+ Conéctese a la instancia para instalar software y realizar otras personalizaciones.
+ Cree una nueva imagen (instantánea de AMI) de la instancia que haya configurado.

Después de crear la imagen en función de su instancia personalizada, puede copiar dicha imagen a un destino cifrado tal y como se describe en [Creación de una AMI personalizada con un volumen de dispositivo raíz de Amazon EBS cifrado](#emr-custom-ami-encrypted).

### Tutorial: Creación de una AMI desde una instancia con software personalizado Instalado
<a name="emr-custom-ami-preconfigure-walkthrough"></a>

**Para lanzar una instancia EC2 en función de la AMI de Amazon Linux más reciente**

1. Utilice el AWS CLI para ejecutar el siguiente comando, que crea una instancia a partir de una AMI existente. `{{MyKeyName}}`Sustitúyalo por el par de claves que utilizas para conectarte a la instancia y {{MyAmiId}} por el ID de una AMI de Amazon Linux adecuada. Para conocer los ID de AMI más recientes, consulte [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).
**nota**  
Se incluyen caracteres de continuación de línea de Linux (\\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

   ```
   aws ec2 run-instances --image-id {{MyAmiID}} \
   --count 1 --instance-type {{m5.xlarge}} \
   --key-name {{MyKeyName}} --region {{us-west-2}}
   ```

   El valor de salida `InstanceId` se utiliza como `{{MyInstanceId}}` en el siguiente paso.

1. Use el siguiente comando:

   ```
   aws ec2 describe-instances --instance-ids {{MyInstanceId}}
   ```

   El valor de salida `PublicDnsName` se utiliza para conectarse a la instancia en el siguiente paso.

**Para conectar a la instancia e instalar software**

1. Utilice una conexión SSH que le permita ejecutar comandos de shell en su instancia de Linux. Para más información, consulte [Conexión a su instancia de Linux mediante SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) en la *Guía del usuario de Amazon EC2*.

1. Realice las personalizaciones necesarias. Por ejemplo:

   ```
   sudo yum install {{MySoftwarePackage}}
   sudo pip install {{MySoftwarePackage}}
   ```

**Para crear una instantánea desde su imagen personalizada**
+ Después de personalizar la instancia, utilice el comando `create-image` para crear una AMI desde la instancia.

  ```
  aws ec2 create-image --no-dry-run --instance-id {{MyInstanceId}} --name {{MyEmrCustomAmi}}
  ```

  El valor de salida `imageID` se utiliza al lanzar el clúster o crear una instantánea cifrada. Para obtener más información, consulte [Utilice una sola AMI personalizada en un clúster de EMR](#single-custom-ami) y [Creación de una AMI personalizada con un volumen de dispositivo raíz de Amazon EBS cifrado](#emr-custom-ami-encrypted).

## Cómo utilizar una AMI personalizada en un clúster de Amazon EMR
<a name="emr-custom-ami-types"></a>

Puede utilizar una AMI personalizada para aprovisionar un clúster de Amazon EMR de dos maneras:
+ Utilice una sola AMI personalizada para todas las instancias de EC2 del clúster.
+ Utilice diferentes AMI personalizadas para los distintos tipos de instancias de EC2 que se utilizan en el clúster.

Puede usar solo una de las dos opciones al aprovisionar un clúster de EMR y no puede cambiarla una vez que se haya iniciado el clúster.


**Consideraciones sobre el uso de una sola AMI personalizada en lugar de varias en un clúster de Amazon EMR**  

| Consideración | AMI personalizada única | Múltiples AMI personalizadas | 
| --- | --- | --- | 
| Utilice los procesadores x86 y Graviton2 con AMI personalizadas en el mismo clúster |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-no.png) No compatible |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible | 
| La personalización de la AMI varía según el tipo de instancia |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-no.png) No compatible |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible | 
| Cambie las AMI personalizadas al añadir una nueva instancia de tareas groups/fleets a un clúster en ejecución. Nota: no puedes cambiar la AMI personalizada de la instancia existente groups/fleets. |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-no.png) No compatible |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible | 
| Utilice AWS la consola para iniciar un clúster |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-no.png) No compatible | 
| Se utiliza AWS CloudFormation para iniciar un clúster |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible |  ![](http://docs.aws.amazon.com/es_es/emr/latest/ManagementGuide/images/icon-yes.png) Compatible | 

## Utilice una sola AMI personalizada en un clúster de EMR
<a name="single-custom-ami"></a>

Para especificar el ID de una AMI personalizada al crear un clúster, utilice una de las siguientes opciones:
+ Consola de administración de AWS
+ AWS CLI
+ SDK de Amazon EMR
+ API de Amazon EMR [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html)
+ AWS CloudFormation (consulte la `CustomAmiID` propiedad en [Clúster InstanceGroupConfig, [Clúster InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html) InstanceGroupConfig, [Recurso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html) o [Recurso InstanceFleetConfig-InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html))

------
#### [ Amazon EMR console ]

**Para especificar una sola AMI personalizada desde la consola**

1. Inicie sesión en y abra la Consola de administración de AWS consola de Amazon EMR en. [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr)

1. En **EMR en EC2** situado en el panel de navegación izquierdo, elija **Clústeres** y, a continuación, elija **Crear clúster**.

1. En **Nombre y aplicaciones**, busque **Opciones del sistema operativo**. Elija **AMI personalizada** e ingrese el ID de su AMI en el campo **AMI personalizada**. 

1. Elija cualquier otra opción que se aplique a su clúster. 

1. Para lanzar el clúster, elija **Crear clúster**.

------
#### [ AWS CLI ]

**Para especificar una sola AMI personalizada con AWS CLI**
+ Utilice el parámetro `--custom-ami-id` para especificar el ID de AMI al ejecutar el comando `aws emr [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)`.

  El siguiente ejemplo especifica un clúster que utiliza una sola AMI personalizada con un volumen de arranque de 20 GiB. Para obtener más información, consulte [Personalización del volumen de dispositivo raíz de Amazon EBS](emr-custom-ami-root-volume-size.md).
**nota**  
Se incluyen caracteres de continuación de línea de Linux (\\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

  ```
  aws emr create-cluster --name "{{Cluster with My Custom AMI}}" \
  --custom-ami-id {{MyAmiID}} --ebs-root-volume-size {{20}} \
  --release-label emr-5.7.0 --use-default-roles \
  --instance-count {{2}} --instance-type {{m5.xlarge}}
  ```

------

## Uso de varias AMI personalizadas en un clúster de Amazon EMR
<a name="multiple-custom-ami"></a>

Para crear un clúster mediante varias AMI personalizadas, utilice una de las siguientes opciones: 
+ AWS CLI versión 1.20.21 o superior
+ AWS SDK
+ Amazon EMR [RunJobFlow](https://docs.aws.amazon.com/emr/latest/APIReference/API_RunJobFlow.html)en la referencia de la API de Amazon *EMR*
+ AWS CloudFormation [(consulte la `CustomAmiID` propiedad en [Cluster InstanceGroupConfig, [ InstanceTypeConfigCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancetypeconfig.html)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-cluster-instancegroupconfig.html), Resource o [Resource InstanceGroupConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-instancegroupconfig.html)) InstanceFleetConfig-InstanceTypeConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticmapreduce-instancefleetconfig-instancetypeconfig.html)

Actualmente, la consola de AWS administración no admite la creación de un clúster mediante varias AMI personalizadas.

**Example - Usa la AWS CLI para crear un clúster de grupos de instancias mediante varias AMI personalizadas**  
Con la versión 1.20.21 o superior de la AWS CLI, puede asignar una sola AMI personalizada a todo el clúster o puede asignar varias AMI personalizadas a cada nodo de instancia del clúster.  
En el siguiente ejemplo, se muestra un clúster de grupos de instancias uniforme creado con dos tipos de instancias (m5.xlarge) que se utilizan en todos los tipos de nodos (principal, central y de tarea). Cada nodo tiene varias AMI personalizadas. En el ejemplo se ilustran varias características de la configuración de varias AMI personalizadas:   
+ No hay ninguna AMI personalizada asignada en el nivel de clúster. Esto sirve para evitar conflictos entre varias AMI personalizadas y una sola AMI personalizada, lo que provocaría un error en el lanzamiento del clúster.
+ El clúster puede tener varias AMI personalizadas en los nodos principales, centrales y de tareas individuales. Esto permite realizar personalizaciones de AMI individuales, como aplicaciones preinstaladas, configuraciones de clústeres sofisticadas y volúmenes de dispositivos raíz de Amazon EBS cifrados.
+ El nodo principal del grupo de instancias solo puede tener un tipo de instancia y la AMI personalizada correspondiente. Del mismo modo, el nodo principal solo puede tener un tipo de instancia y la AMI personalizada correspondiente. 
+ El clúster puede tener varios nodos de tarea.

```
aws emr create-cluster --instance-groups 
InstanceGroupType=PRIMARY,InstanceType={{m5.xlarge}},InstanceCount={{1}},CustomAmiId={{ami-123456}} 
InstanceGroupType=CORE,InstanceType={{m5.xlarge}},InstanceCount={{1}},CustomAmiId={{ami-234567}}
InstanceGroupType=TASK,InstanceType={{m6g.xlarge}},InstanceCount={{1}},CustomAmiId={{ami-345678}}
InstanceGroupType=TASK,InstanceType={{m5.xlarge}},InstanceCount={{1}},CustomAmiId={{ami-456789}}
```

**Example - Usa la AWS CLI versión 1.20.21 o superior para agregar un nodo de tareas a un clúster de grupos de instancias en ejecución con varios tipos de instancias y varias AMI personalizadas**  
Con la versión 1.20.21 o superior de la AWS CLI, puedes añadir varias AMI personalizadas a un grupo de instancias y añadirlas a un clúster en ejecución. El argumento `CustomAmiId` se puede usar con el comando `add-instance-groups`, como se muestra en el siguiente ejemplo. Observe que se utiliza el mismo ID de AMI personalizada múltiple (ami-123456) en más de un nodo.   

```
aws emr create-cluster --instance-groups 
InstanceGroupType=PRIMARY,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 
InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456
InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-234567

{
    "ClusterId": "j-123456",
    ...
}

aws emr add-instance-groups --cluster-id j-123456 --instance-groups InstanceGroupType=Task,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-345678
```

**Example - Utilice la AWS CLI versión 1.20.21 o superior para crear un clúster de flota de instancias, varias AMI personalizadas, varios tipos de instancias, nodos On-Demand principales, principales, múltiples On-Demand núcleos y nodos de tareas**  

```
aws emr create-cluster --instance-fleets 
InstanceFleetType=PRIMARY,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] 
InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']
InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-456789},{InstanceType=m6g.xlarge, CustomAmiId=ami-567890}']
```

**Example - Utilice la AWS CLI versión 1.20.21 o superior para añadir nodos de tareas a un clúster en ejecución con varios tipos de instancias y varias AMI personalizadas**  

```
aws emr create-cluster --instance-fleets 
InstanceFleetType=PRIMARY,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] 
InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']

{
    "ClusterId": "j-123456",
    ...
}

aws emr add-instance-fleet --cluster-id j-123456 --instance-fleet 
InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']
```

## Administración de actualizaciones de repositorio de paquetes de la AMI
<a name="emr-custom-ami-package-update"></a>

Durante el primer arranque, de forma predeterminada, las AMI de Amazon Linux se conectan a repositorios de paquetes para instalar las actualizaciones de seguridad antes de que inicien otros servicios. En función de sus requisitos, puede optar por desactivar estas actualizaciones al especificar una AMI personalizada para Amazon EMR. La opción de deshabilitar esta característica solo está disponible cuando se utiliza una AMI personalizada. De forma predeterminada, las actualizaciones del kernel de Amazon Linux y otros paquetes de software que requieren un reinicio no se actualizan. Tenga en cuenta que la configuración de red debe permitir la salida de HTTP y HTTPS a los repositorios de Amazon Linux en Amazon S3; de lo contrario, las actualizaciones de seguridad no se realizarán correctamente.

**aviso**  
Recomendamos encarecidamente que elija actualizar todos los paquetes instalados durante el reinicio al especificar una AMI personalizada. Si se elige no actualizar paquetes se crean riesgos de seguridad adicionales.

Con el Consola de administración de AWS, puede seleccionar la opción para deshabilitar las actualizaciones al elegir una **AMI personalizada**. 

Con el AWS CLI, puede especificar `--repo-upgrade-on-boot NONE` y `--custom-ami-id` cuándo utilizar el **create-cluster** comando. 

Con la API de Amazon EMR, puede especificar el `NONE` [RepoUpgradeOnBoot](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html#EMR-RunJobFlow-request-RepoUpgradeOnBoot)parámetro.

## Creación de una AMI personalizada con un volumen de dispositivo raíz de Amazon EBS cifrado
<a name="emr-custom-ami-encrypted"></a>

Para cifrar el volumen de dispositivo raíz de Amazon EBS de una AMI de Amazon Linux para Amazon EMR, copie una imagen de instantánea desde una AMI sin cifrar a un destino cifrado. Para más información sobre la creación de volúmenes cifrados de EBS, consulte [Cifrado de Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) en la *Guía del usuario de Amazon EC2*. La AMI de origen para la instantánea puede ser la AMI base de Amazon Linux o puede copiar una instantánea de una AMI derivada de la AMI base de Amazon Linux que haya personalizado. 

**nota**  
A partir de la versión 5.24.0 de Amazon EMR, puede utilizar una opción de configuración de seguridad para cifrar los volúmenes de almacenamiento y los dispositivos raíz de EBS si lo especifica como proveedor de claves. AWS KMS Para obtener más información, consulte [Cifrado de disco local](emr-data-encryption-options.md#emr-encryption-localdisk).

Puede utilizar un proveedor de claves externo o una clave AWS KMS para cifrar el volumen raíz de EBS. Se debe permitir al rol de servicio que utiliza Amazon EMR (normalmente, el `EMR_DefaultRole` predeterminado) que cifre y descifre el volumen, como mínimo, para que Amazon EMR pueda crear un clúster con la AMI. Si se utiliza AWS KMS como proveedor de claves, esto significa que se deben permitir las siguientes acciones:
+ `kms:encrypt`
+ `kms:decrypt`
+ `kms:ReEncrypt*`
+ `kms:CreateGrant`
+ `kms:GenerateDataKeyWithoutPlaintext"`
+ `kms:DescribeKey"`

La forma más sencilla de hacerlo consiste en agregar el rol como usuario clave, tal y como se describe en el siguiente tutorial. Se proporciona la siguiente instrucción de política de ejemplo por si tiene que personalizar políticas de rol.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EmrDiskEncryptionPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:CreateGrant",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

### Tutorial: Creación de una AMI personalizada con un volumen de dispositivo raíz cifrado utilizando una clave de KMS
<a name="emr-custom-ami-encrypted-walkthrough"></a>

El primer paso de este ejemplo consiste en encontrar el ARN de una clave de KMS o crear una nueva. Para más información sobre la creación de claves, consulte [Creación de claves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) en la *Guía para desarrolladores de AWS Key Management Service *. El siguiente procedimiento muestra cómo añadir el rol de servicio predeterminado, `EMR_DefaultRole`, como un usuario clave a la política de claves. Anote el valor **ARN** para la clave en el momento de crearla o editarla. Utilice el ARN más superior al crear la AMI.

**Para agregar el rol de servicio para Amazon EC2 a la lista de usuarios de claves de cifrado utilizando la consola**

1. Inicie sesión en la consola AWS Key Management Service (AWS KMS) Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Para cambiarla Región de AWS, usa el selector de regiones en la esquina superior derecha de la página.

1. Elija el alias de la clave de KMS que vaya a utilizar.

1. En la página de detalles de la clave, en **Key Users (Usuarios de claves)**, seleccione **Add (Añadir)**.

1. En el cuadro de diálogo **Asociar**, elija el rol de servicio de Amazon EMR. El nombre del rol predeterminado es `EMR_DefaultRole`.

1. Elija **Adjuntar**.

**Para crear una AMI cifrada con el AWS CLI**
+ Utilice el `aws ec2 copy-image` comando de AWS CLI para crear una AMI con un volumen de dispositivo raíz de EBS cifrado y la clave que modificó. Sustituya el valor `--kms-key-id` especificado con todo el ARN de la clave que ha creado o modificado antes.
**nota**  
Se incluyen caracteres de continuación de línea de Linux (\\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

  ```
  aws ec2 copy-image --source-image-id {{MyAmiId}} \
  --source-region {{us-west-2}} --name {{MyEncryptedEMRAmi}} \
  --encrypted --kms-key-id {{arn:aws:kms:us-west-2:12345678910:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}}
  ```

La salida del comando proporciona el ID de la AMI que ha creado, que puede especificar al crear un clúster. Para obtener más información, consulte [Utilice una sola AMI personalizada en un clúster de EMR](#single-custom-ami). También puede elegir personalizar esta AMI instalando software y realizando otras configuraciones. Para obtener más información, consulte [Creación de una AMI de Amazon Linux personalizada a partir de una instancia preconfigurada](#emr-custom-ami-preconfigure).

## Prácticas recomendadas y consideraciones
<a name="emr-custom-ami-considerations"></a>

Cuando cree una AMI personalizada para Amazon EMR, tenga en cuenta lo siguiente:
+ La serie 7.x de Amazon EMR se basa en Amazon Linux 2023. Para estas versiones de Amazon EMR, debe utilizar imágenes basadas en Amazon Linux 2023 para AMI personalizadas. Para buscar una AMI personalizada base, consulte [Búsqueda de una AMI de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html). 
+ La AMI de Amazon Linux 2023 debe estar basada en el kernel 6.1 de Linux. El uso de la AMI de Amazon Linux 2023 basada en la versión 6.12 del kernel de Linux puede provocar errores en el aprovisionamiento de clústeres.
+ Para las versiones de Amazon EMR anteriores a 7.x, no se admiten las AMI de Amazon Linux 2023.
+ La versión 5.30.0 y posteriores de Amazon EMR y la serie 6.x de Amazon EMR se basan en Amazon Linux 2. Para estas versiones de Amazon EMR, debe utilizar imágenes basadas en Amazon Linux 2 para AMI personalizadas. Para buscar una AMI personalizada base, consulte [Búsqueda de una AMI de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
+ Para las versiones de Amazon EMR anteriores a 5.30.0 y 6.x, no se admiten las AMI de Amazon Linux 2.
+ Debe utilizar una AMI de Amazon Linux de 64 bits. No se admite una AMI de 32 bits.
+ No se admiten las AMI de Amazon Linux con varios volúmenes de Amazon EBS.
+ Base su personalización en la [AMI de EBS-backed Amazon Linux](https://aws.amazon.com/amazon-linux-ami/) más reciente. Para obtener una lista de las AMI de Amazon Linux y los ID de AMI correspondientes, consulte [AMI de Amazon Linux](https://aws.amazon.com/amazon-linux-ami/).
+ No copie una instantánea de una instancia de Amazon EMR existente para crear una AMI personalizada. Esto provoca errores.
+ Solo son compatibles el tipo de virtualización HVM y las instancias compatibles con Amazon EMR. Asegúrese de seleccionar la imagen de HVM y un tipo de instancia compatible con Amazon EMR a medida que realice el proceso de personalización de la AMI. Para conocer las instancias y tipos de virtualización compatibles, consulte [Tipos de instancias admitidas con Amazon EMR](emr-supported-instance-types.md).
+ El rol de servicio deben tener permisos de lanzamiento en la AMI, por lo que la AMI debe ser pública o debe ser el propietario de la AMI o que el propietario la haya compartido con usted.
+ La creación de usuarios en la AMI con el mismo nombre que las aplicaciones provoca errores (por ejemplo, `hadoop`, `hdfs`, `yarn` o `spark`).
+ El contenido de `/tmp`, `/var` y `/emr` (si se encuentran en la AMI), se traslada a `/mnt/tmp`, `/mnt/var`y `/mnt/emr` respectivamente durante el inicio. Los archivos se conservan, pero si hay una gran cantidad de datos, el startup puede tardar más de lo esperado.
+ Si utiliza una AMI personalizada de Amazon Linux basada en una AMI de Amazon Linux con una fecha de creación del 11 de agosto de 2018, el servidor de Oozie no podrá iniciarse. Si utiliza Oozie, cree una AMI personalizada basada en un ID de AMI de Amazon Linux con una fecha de creación diferente. Puede utilizar el siguiente AWS CLI comando para obtener una lista de los ID de imagen de todas las AMI HVM de Amazon Linux con una versión 2018.03, junto con la fecha de lanzamiento, de modo que pueda elegir una AMI de Amazon Linux adecuada como base. MyRegion Sustitúyalo por tu identificador de región, como us-west-2.

  ```
  aws ec2 --region {{MyRegion}} describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1
  ```
+ En los casos en los que utilice una VPC con un nombre de dominio y un AmazonProvided DNS no estándar, no debe utilizar la `rotate` opción en la configuración de DNS del sistema operativo.
+ Si crea una AMI personalizada que incluya el agente de Amazon EC2 Systems Manager (SSM), el agente SSM habilitado puede provocar un error de aprovisionamiento en el clúster. A fin de evitarlo, desactive el agente SSM cuando utilice una AMI personalizada. Para ello, al elegir e iniciar su instancia de Amazon EC2, desactive el agente SSM antes de usar esa instancia para crear la AMI personalizada y, posteriormente, su clúster de EMR. 

Para obtener más información, consulte [Creación de una AMI de Amazon EBS-backed Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) en la Guía del *usuario de Amazon EC2*.