#はじめに
Amazon RDS Custom for Oracleを利用する際、Oracle DatabaseをインストールするためにCEV(Custom Engine Version)と呼ばれるAMI(Amazon Machine Image)を、あらかじめ自身が取得したOracle Databaseのメディア(インストーラ)等を用いて作成する必要があります。
ざっくりいうと、OS・(パッチ含めて)インストールされたDatabase Home・作成済みのDatabase が一つに固められたイメージ(AMI)になります。
ユーザガイド に作成手順は載ってますが、現時点ではまだ英語だったり、作ってみるとちょっと足りないところもあったりするのでまとめておきます。
#CEV作成前の準備
ユーザガイドにもありますが、以下の準備が必要です
- Oracle Database のメディア(インストーラ)の準備
- インストールメディアのS3へのアップロード
- CEVのマニフェストファイル(インストールファイルの場所指定)の準備
- IAM権限・KMSの準備
####1. インストーラの準備
Oracle Software Delivery Cloud(EDelivery) からダウンロードするか、手持ちのメディアを利用する必要があります。
edeliveryの利用にはMy Oracle Supportのアカウントや、ライセンス条項への同意も必要になります。
19cのバージョンは以下のような形で選択できます、Platformsは x86-64 を選択します。
ライセンス条項に同意すると、19cのメディア(V982063-01.zip:19.3)がダウンロードが可能となります。
また、RU等のパッチはMOS(My Oracle Support)からダウンロードできます。
例えば、2021年12月現在最新のRU 19.13は次のような形で検索すると確認できます。
x86-64のRU 19.13のダウンロードリンク先です。
RU 19.10のダウンロードリンク先はユーザガイドに記載があります。
(Customではない)RDS for Oracleを導入する際に適用されるパッチ一覧があるので、ここに記載されているパッチをダウンロードすると良いかと思います。
####2. インストールメディアのS3へのアップロード
ダウンロードしたファイルをS3のバケットへアップロードします 1 。
S3のバケットはCEVを作成するリージョンと同じリージョンである必要があります。
####3. CEVのマニフェストファイルの準備
マニフェストファイルはS3にアップロードしたファイルにおいて、どのファイルがどこにありなんの役目か、を示すJSONドキュメントファイルになります。
注意したい点は、JSONドキュメントの記載の順序でパッチが適用されますので、順序が違うとCEV作成で失敗することがあります。
Pythonスクリプトのjson.toolでマニフェストの検証はできますが、適切なパッチなのか、順序は正しいか、等は検証できませんので、実際にCEVを作成して確認する必要があります。(そしてCEV作成には2時間程度時間がかかります)
####4. IAM権限・KMSの準備
IAM権限・KMSについてはRDS Custom自体を作成する際にも必要になりますが、CEV作成で必要な権限は独自の権限になります。
必要なIAM権限についてはユーザガイドに記載があります。
また、ガイドに記載がありませんが、接続元IPアドレス制限があるIAMでのCEV作成はエラーが出て成功しませんでした。
AWS Managedではない対称のKMSキーが利用できる必要があります。(こちらのKeyもRDS Customを作成する際に必要になる対称キーと同じである必要はありません)
#CEVを作成してみる
AWSマネジメントコンソールのRDSコンソールを開き、カスタムエンジンバージョン→カスタムエンジンバージョンの作成 を選択します。
「カスタムエンジンバージョンの作成」のウィンドウが開きます。
-
「インストールメディア」は自身でアップロードしたバイナリが含まれるS3バケットと、マニフェストファイルを記載します
「S3のマニフェストファイルの場所」とありますが、マニフェストファイルではなくバイナリがある場所になります
こちらに記載したマニフェストファイルの説明はユーザガイドを参照してください
- 19.10のマニフェストファイル(例)とS3バケットの中身
(パッチ32327201: RDBMS - DSTV36 UPDATE - TZDATA2020E を追加)
{
"mediaImportTemplateVersion": "2020-08-14",
"databaseInstallationFileNames": [
"V982063-01.zip"
],
"opatchFileNames": [
"p6880880_190000_Linux-x86-64.zip"
],
"psuRuPatchFileNames": [
"p32126828_190000_Linux-x86-64.zip"
],
"otherPatchFileNames": [
"p29213893_1910000DBRU_Generic.zip",
"p29782284_1910000DBRU_Generic.zip",
"p28730253_190000_Linux-x86-64.zip",
"p29374604_1910000DBRU_Linux-x86-64.zip",
"p28852325_190000_Linux-x86-64.zip",
"p29997937_190000_Linux-x86-64.zip",
"p31335037_190000_Linux-x86-64.zip",
"p31335142_190000_Generic.zip",
"p32327201_190000_Linux-x86-64.zip"
]
}
- 19.13のマニフェストファイル(例)とS3バケットの中身
{
"mediaImportTemplateVersion": "2020-08-14",
"databaseInstallationFileNames": [
"V982063-01.zip"
],
"opatchFileNames": [
"p6880880_190000_Linux-x86-64.zip"
],
"psuRuPatchFileNames": [
"p33192793_190000_Linux-x86-64.zip"
],
"otherPatchFileNames": [
"p29213893_1910000DBRU_Generic.zip",
"p29782284_1910000DBRU_Generic.zip",
"p28730253_190000_Linux-x86-64.zip",
"p29374604_1910000DBRU_Linux-x86-64.zip",
"p28852325_190000_Linux-x86-64.zip",
"p29997937_190000_Linux-x86-64.zip",
"p31335142_190000_Generic.zip",
"p32327201_190000_Linux-x86-64.zip"
]
}
-
「KMSキー」は利用可能なキーを選択してください(必須)
-
「タグ」は必要に応じて
-
→カスタムエンジンバージョンを作成、を押下すると、何も問題なければ作成ステータスに遷移します(押下する前に実行するユーザの接続元IPアドレス制限等がかかってないことを確認しておきましょう)
#まとめ
如何でしょうか?CEV作成自体は時間がかかりますがそんなに大変ではありませんので、興味があればトライしてみてください!
CEVを作成しておくことで、RDS Customをすぐにプロビジョニングすることができるようになります。
また、複数のCEVを作成することでRDS Customのバージョン管理等を行うことができるようになりますが、それについては別途書きます。
- 必要なパッチ選定がキモになる
- 作成時間が長いので、リトライが大変
- S3バケットやKMS、IAM権限の設定等、事前の準備が必要
-
既存のバケットがない場合にはバケット作成権限、バケットへのPut権限等が必要になります ↩