0
0

More than 1 year has passed since last update.

Amazon RDS Custom for Oracle作成の手引き(その1:Custom Engine Versionの作成)

Posted at

はじめに

Amazon RDS Custom for Oracleを利用する際、Oracle DatabaseをインストールするためにCEV(Custom Engine Version)と呼ばれるAMI(Amazon Machine Image)を、あらかじめ自身が取得したOracle Databaseのメディア(インストーラ)等を用いて作成する必要があります。
ざっくりいうと、OS・(パッチ含めて)インストールされたDatabase Home・作成済みのDatabase が一つに固められたイメージ(AMI)になります。
ユーザガイド に作成手順は載ってますが、現時点ではまだ英語だったり、作ってみるとちょっと足りないところもあったりするのでまとめておきます。

CEV作成前の準備

ユーザガイドにもありますが、以下の準備が必要です

  1. Oracle Database のメディア(インストーラ)の準備
  2. インストールメディアのS3へのアップロード
  3. CEVのマニフェストファイル(インストールファイルの場所指定)の準備
  4. IAM権限・KMSの準備

1. インストーラの準備

Oracle Software Delivery Cloud(EDelivery) からダウンロードするか、手持ちのメディアを利用する必要があります。
edeliveryの利用にはMy Oracle Supportのアカウントや、ライセンス条項への同意も必要になります。

19cのバージョンは以下のような形で選択できます、Platformsは x86-64 を選択します。
image.png

ライセンス条項に同意すると、19cのメディア(V982063-01.zip:19.3)がダウンロードが可能となります。
image.png

また、RU等のパッチはMOS(My Oracle Support)からダウンロードできます。
例えば、2021年12月現在最新のRU 19.13は次のような形で検索すると確認できます。
image.png
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作成はエラーが出て成功しませんでした。
- Adding necessary IAM permissions

AWS Managedではない対称のKMSキーが利用できる必要があります。(こちらのKeyもRDS Customを作成する際に必要になる対称キーと同じである必要はありません)

CEVを作成してみる

AWSマネジメントコンソールのRDSコンソールを開き、カスタムエンジンバージョン→カスタムエンジンバージョンの作成 を選択します。
image.png

「カスタムエンジンバージョンの作成」のウィンドウが開きます。

  • 「エンジンのオプション」は現在選択できません
    image.png

  • 「バージョンの詳細」は名前を入れるだけなので、好きな名前を入れましょう
    image.png

  • 「インストールメディア」は自身でアップロードしたバイナリが含まれるS3バケットと、マニフェストファイルを記載します
     「S3のマニフェストファイルの場所」とありますが、マニフェストファイルではなくバイナリがある場所になります
     こちらに記載したマニフェストファイルの説明はユーザガイドを参照してください
    image.png

- 19.10のマニフェストファイル(例)とS3バケットの中身
 (パッチ32327201: RDBMS - DSTV36 UPDATE - TZDATA2020E を追加)

19.10のマニフェストファイル(例)
{
    "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"
    ]
}

image.png

- 19.13のマニフェストファイル(例)とS3バケットの中身

19.13のマニフェストファイル(例)
{
    "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"
    ]
}

image.png

  • 「KMSキー」は利用可能なキーを選択してください(必須)
  • 「タグ」は必要に応じて
  • →カスタムエンジンバージョンを作成、を押下すると、何も問題なければ作成ステータスに遷移します(押下する前に実行するユーザの接続元IPアドレス制限等がかかってないことを確認しておきましょう)
    image.png

  • 入力した情報に問題がない場合には、「作成中」のステータスに遷移します(作成に成功したら「利用可能」になります)
    image.png

  • 作成に失敗すると「イベント」にエラー情報が出力されます
    image.png

まとめ

如何でしょうか?CEV作成自体は時間がかかりますがそんなに大変ではありませんので、興味があればトライしてみてください!
CEVを作成しておくことで、RDS Customをすぐにプロビジョニングすることができるようになります。
また、複数のCEVを作成することでRDS Customのバージョン管理等を行うことができるようになりますが、それについては別途書きます。

  • 必要なパッチ選定がキモになる
  • 作成時間が長いので、リトライが大変
  • S3バケットやKMS、IAM権限の設定等、事前の準備が必要

  1. 既存のバケットがない場合にはバケット作成権限、バケットへのPut権限等が必要になります 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0