

# RDS for SQL Server のカスタムエンジンバージョンの作成
<a name="sqlserver-dev-edition.creating-cev"></a>

RDS for SQL Server のカスタムエンジンバージョン (CEV) は、Amazon RDS にインポートされた SQL Server Developer Edition インストールメディアで構成されます。ベース ISO インストーラと累積更新ファイル (.exe) を Amazon S3 バケットにアップロードする必要があります。アップロードしたら、Amazon S3 の場所を RDS に提供して、CEV をダウンロード、検証、作成する必要があります。

## 命名に関する制限
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

CEV を作成するときは、特定の命名規則に従う必要があります。
+ CEV 名はパターン `major-version.minor-version.customized-string` に従う必要があります。
+ `customized-string` には、1～50 文字の英数字、アンダースコア、ダッシュ、ピリオドを含めることができます。例: `16.00.4215.2.my-dev-cev` SQL Server 2022 用。

サポートされているすべてのエンジンバージョンを一覧表示するには、次のコマンドを使用します。

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

**カスタムエンジンバージョンを作成するには**
+ [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) コマンドを使用します。

  以下のオプションは必須です。
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  また、以下のオプションを指定することもできます。
  + `--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"
  ```

CEV の作成には通常 15～30 分かかります。CEV 作成の進行状況をモニタリングするには、次のコマンドを使用します。

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

## RDS for SQL Server CEV のライフサイクル
<a name="sqlserver-dev-cev-lifecycle"></a>

RDS for SQL Server で SQL Server Developer Edition を使用する場合、カスタムエンジンバージョンはさまざまなライフサイクル状態に移行します。


| ライフサイクル状態 | 説明 | いつ発生するか | 使用可能なアクション | 
| --- | --- | --- | --- | 
|  検証保留中  |  CEV 作成時の初期状態  |  これは、`create-custom-db-engine-version` コマンドを使用して作成した後の最初の状態です。  |  `describe-db-engine-version` を介してステータスをモニタリングします。  | 
|  検証しています  |  CEV 検証状態  |  Amazon RDS はカスタムエンジンバージョン (CEV) を検証しています。この非同期プロセスが完了するまでに時間がかかる場合があります。  |  検証が完了するまでステータスをモニタリングします。  | 
|  利用可能  |  カスタムエンジンバージョン (CEV) の検証が正常に完了しました。  |  カスタムエンジンバージョン (CEV) が利用可能になりました。Amazon RDS は SQL Server ISO と累積更新ファイルの検証に成功しました。この CEV を使用して DB インスタンスを作成できるようになりました。  |  この CEV を使用して DB インスタンスを作成する  | 
|  失敗  |  検証チェックに失敗したため、RDS for SQL Server はカスタムエンジンバージョン (CEV) を作成できません。  |  ISO と累積メディアの検証に失敗しました。   |  ISO 検証に失敗しました。`describe-db-engine-version` で障害の理由を確認し、ハッシュの不一致やコンテンツの破損などのファイルの問題を修正してから、カスタムエンジンバージョン (CEV) を再作成します。  | 
|  削除中  |  カスタムエンジンバージョン (CEV) は削除中です  |  顧客が `delete-custom-db-engine-version` を呼び出した後、削除ワークフローが完了するまで。  |  `describe-db-engine-version` を介してステータスをモニタリングします。  | 
|  incompatible-installation-media  |  Amazon RDS は、カスタムエンジンバージョン (CEV) 用に提供されたインストールメディアを検証できませんでした  |  カスタムエンジンバージョン (CEV) の検証に失敗しました。これは終了状態です。  |  検証が失敗した理由については、`describe-db-engine-versions` の failureReason を参照してください。CEV を削除します。  | 

### CEV ステータスの説明
<a name="sqlserver-dev-cev-status-check"></a>

AWS CLI を使用して CEV の状態を確認できます。

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

サンプル出力

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

CEV が `failed` ステータスを表示している場合、次のコマンドを使用して理由を特定できます。

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