

# Creación de una versión de motor personalizado para RDS para SQL Server
<a name="sqlserver-dev-edition.creating-cev"></a>

Una versión de motor personalizada (CEV) para RDS para SQL Server se compone de medios de instalación de SQL Server Developer Edition importados a Amazon RDS. Es necesario cargar el instalador ISO básico y los archivos de actualización acumulativa (.exe) en su bucket de Amazon S3. Una vez cargado, debe proporcionar la ubicación de Amazon S3 a RDS para que descargue, valide y, posteriormente, cree su CEV.

## Limitaciones de nomenclatura
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

Al crear una CEV, debe seguir convenciones de nomenclatura específicas:
+ El nombre de la CEV debe seguir el patrón `major-version.minor-version.customized-string`.
+ `customized-string` puede contener de 1 a 50 caracteres alfanuméricos, guiones bajos, guiones y puntos. Por ejemplo: `16.00.4215.2.my-dev-cev` para SQL Server 2022.

Para crear una lista con todas las versiones compatibles del motor, utilice el siguiente comando:

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}" 

{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

## AWS CLI
<a name="sqlserver-dev-edition.create-cev.CLI"></a>

**Creación de la versión de motor personalizada**
+ Utilice el comando [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html).

  Se requieren las siguientes opciones:
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  También puede especificar las siguientes opciones:
  + `--database-installation-files-s3-prefix`
  + `--description`
  + `--tags`

  ```
  aws rds create-custom-db-engine-version \
  --engine sqlserver-dev-ee \
  --engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
  --region us-west-2 \
  --database-installation-files-s3-bucket-name my-s3-installation-media-bucket \
  --database-installation-files-s3-prefix sqlserver-dev-media \
  --database-installation-files "SQLServer2022-x64-ENU-Dev.iso" "SQLServer2022-KB5065865-x64.exe"
  ```

La creación de la CEV suele tardar entre quince y treinta minutos. Para supervisar el progreso de creación de CEV, utilice el siguiente comando:

```
# Check CEV status
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

## Ciclo de vida de una CEV de RDS para SQL Server
<a name="sqlserver-dev-cev-lifecycle"></a>

Al trabajar con SQL Server Developer Edition en RDS para SQL Server, las versiones personalizadas del motor pasan por varios estados del ciclo de vida.


| Estado del ciclo de vida | Descripción | Cuando ocurre | Acciones disponibles | 
| --- | --- | --- | --- | 
|  pending-validation  |  Estado inicial cuando se crea la CEV  |  Este es el estado inicial tras la creación con el comando `create-custom-db-engine-version`.  |  Supervisión del estado a través de `describe-db-engine-version`.  | 
|  validating  |  Estado de validación de la CEV  |  Amazon RDS valida la versión personalizada del motor (CEV). Este proceso asíncrono puede tardar un tiempo en completarse.  |  Supervise el estado hasta que se complete la validación.  | 
|  available  |  La validación de la versión personalizada del motor (CEV) se ha completado correctamente.  |  La versión personalizada del motor (CEV) ya está disponible. Amazon RDS ha validado correctamente los archivos de actualización acumulativa e ISO de SQL Server. Ahora puede crear instancias de base de datos con esta CEV.  |  Creación de instancias de base de datos con esta CEV  | 
|  error  |  RDS para SQL Server no puede crear la versión personalizada del motor (CEV) al no haberse podido realizar la comprobación de validación.  |  Error en la validación de ISO y medios acumulativos.   |  Error en la validación de ISO. Compruebe el motivo del error en `describe-db-engine-version`, corrija cualquier problema con los archivos, como discordancias del hash o contenido dañado, y, a continuación, vuelva a crear su versión personalizada del motor (CEV).  | 
|  deleting  |  Se elimina la versión personalizada del motor (CEV).  |  Tras la llamada del cliente a `delete-custom-db-engine-version` y hasta la finalización del flujo de trabajo de eliminación.  |  Supervisión del estado a través de `describe-db-engine-version`.  | 
|  incompatible-installation-media  |  Amazon RDS no ha podido validar los medios de instalación proporcionados para la versión personalizada del motor (CEV)  |  Se ha producido un error en la validación de la versión personalizada del motor (CEV). Se trata de un estado terminal.  |  Consulte failureReason a través de `describe-db-engine-versions` para obtener información sobre el motivo del error de validación; elimine la CEV.  | 

### Descripción del estado de CEV
<a name="sqlserver-dev-cev-status-check"></a>

Puede ver el estado de las CEV con la AWS CLI:

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status}'
```

Resultados de ejemplo

```
| DescribeDBEngineVersions                     |
+------------+---------------------------------+
| Status | Version                             |
+------------+---------------------------------+
| available | 16.00.4215.2.cev-dev-ss2022-cu21    |
+------------+---------------------------------+
```

Si una CEV muestra el estado `failed`, puede determinar el motivo mediante el siguiente comando:

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status,FailureReason:FailureReason}'
```