RDS Custom for Oracle DB インスタンスを立ててみた

記事タイトルとURLをコピーする

こんにちは、テクニカルサポート課の 佐藤 光晃です。
本ブログは RDS Custom for Oracle DB インスタンスを立てて少しだけ触ってみたブログとなります。

RDS Custom について

RDS Custom は従来の RDS と異なり、DBA として OS と DB へのアクセスおよびカスタマイズが可能になります。
OS と DB へのアクセスを必要とするレガシー、カスタム、およびパッケージアプリケーションをご利用のユーザーをターゲットとしたマネージドデータベースサービスです。
現在 (2023/12/20)、Amazon RDS Custom は Oracle データベースエンジンと Microsoft SQL Server エンジンのみをサポートしています。 より詳細な点については AWS 公式ドキュメントをご参照いただければと思います。
docs.aws.amazon.com

上記ドキュメントより、RDS Custom の重要な点として責任共有モデルと利点を以下に抜粋しております。

責任共有モデル

特徴 Amazon EC2 の責任 Amazon RDS の責任 RDS Custom for Oracle の責任 RDS Custom for SQL Server の責任
アプリケーションの最適化カスタマーカスタマーカスタマーカスタマー
[Scaling] (スケーリング)カスタマーAWS共有共有
高可用性カスタマーAWSカスタマーカスタマー
データベースバックアップカスタマーAWS共有共有
データベースソフトウェアのパッチ適用カスタマーAWS共有AWS
データベースソフトウェアのインストールカスタマーAWS共有AWS
OS のパッチ適用カスタマーAWSカスタマーAWS
OS インストールカスタマーAWS共有AWS
サーバーのメンテナンスAWSAWSAWSAWS
ハードウェアライフサイクルAWSAWSAWSAWS
電力、ネットワーク、および冷却AWSAWSAWSAWS

RDS Custom の利点

RDS Custom を使用すると、次のことが可能です。

  • 以下を含む Amazon RDS と同様の管理タスクの多くを自動化します。
    • データベースのライフサイクル管理
    • 自動バックアップとポイントインタイムリカバリ (PITR) の自動化
    • RDS Custom DB インスタンスの状態をモニタリングし、インフラストラクチャ、オペレーティングシステム、データベースへの変更を観察
    • DB インスタンスの障害に対して、問題解決のための通知またはアクションの実行
  • サードパーティー製アプリケーションをインストールします。
    ソフトウェアをインストールして、カスタムアプリケーションとエージェントを実行できます。ホストへの特権アクセス権があるため、レガシーアプリケーションをサポートするためにファイルシステムを変更できます。
  • カスタムパッチをインストールします。
    RDS Custom DB インスタンスで、カスタムデータベースパッチを適用したり OS パッケージを変更したりできます。
  • フルマネージドサービスへの移行前に、オンプレミスのデータベースをステージングします。
    独自のオンプレミスデータベースを管理している場合、データベースをそのまま RDS Custom にステージングできます。クラウド環境に慣れたら、データベースをフルマネージド Amazon RDS DB インスタンスに移行できます。
  • 独自のオートメーションを作成します。
    レポート、管理、または診断ツール用のカスタムオートメーションスクリプトを作成、スケジュール、および実行できます。

RDS Custom for Oracle 事前準備

上記では RDS Custom 全体について説明させていただきました。
本項目では RDS Custom for Oracle DB インスタンス立ち上げまでに必要な準備物を AWS ドキュメントを参考にしつつ記載します。

要件

一般的な要件を事前に満たす必要があり、RDS Custom for Oracle DB インスタンス用の AWS KMS キーと IAM インスタンスプロファイルの作成が事前に必要になります。
docs.aws.amazon.com Amazon RDS Custom for Oracle については、次の要件に従ってください。

AWS コンソール上のタスクを除くと Oracle Database を自前で用意する必要があります。
また、OPatch や RU などの zip ファイルについては My Oracle Support (要ライセンス) から自前で用意する必要があります。

おおまかな手順

docs.aws.amazon.com ステップは次のとおりです。

  1. Amazon S3 バケットにデータベースソフトウェアをアップロードします。
    詳細については、「ステップ 3: Amazon S3 へのインストールファイルをアップロードする」を参照してください。
  2. メディアから RDS Custom for Oracle カスタムエンジンバージョン (CEV) を作成します。
    マルチテナントまたは非マルチテナントアーキテクチャのいずれかを選択します。詳細については、「CEV の作成」を参照してください。
  3. CEV から RDS Custom for Oracle DB インスタンスを作成します。 詳細については、「RDS Custom for Oracle DB インスタンスを作成する」を参照してください。
  4. アプリケーションを DB インスタンスエンドポイントに接続します。 詳細については、SSH を使用した RDS Custom DB インスタンスへの接続 および Session Manager を使用して RDS Custom DB インスタンスに接続する を参照してください。
  5. (オプション) ホストにアクセスしてソフトウェアをカスタマイズします。
  6. RDS Custom オートメーションによって生成された通知とメッセージを監視します。

RDS Custom for Oracle DB インスタンス作成

事前準備の情報をもとに RDS Custom for Oracle DB インスタンス作成を進めます。

Amazon S3 バケットにデータベースソフトウェアをアップロード

本ブログでは Oracle Software Delivery Cloud からダウンロード可能な Oracle Database のインストーラーのみ準備し、My Oracle Support からダウンロードが必要な OPatch や RU、個別パッチなどは適用しません。

Oracle Software Delivery Cloud で V982063-01.zip をダウンロードします。
S3 コンソール を開き、V982063-01.zip を任意のバケットにアップロードします。
ダウンロード後、S3 バケットにアップロードした状態は以下となります。

RDS Custom for Oracle カスタムエンジンバージョン (CEV) を作成

AWS ドキュメントを参考に CEV 作成を進めます。 docs.aws.amazon.com RDS コンソール を開き、カスタムエンジンバージョンを開きます。 カスタムエンジンバージョンの作成をクリックし、以下の項目を入力していきます。

  • エンジンのオプション
    • エンジンのタイプ: Oracle
    • マルチテナントアーキテクチャ: 本ブログではチェック済み
    • エンジンバージョン: Oracle 19c
  • バージョンの詳細
    • カスタムエンジンバージョン名: custom-oratest01
    • 説明: 後で何の CEV か分かるような説明
  • インストールメディア
    • AMI ID - 任意: 本ブログでは無記入で、デフォルトの採番を使用。
    • S3 のマニフェストファイルの場所: 本ブログでは s3://oracle-test-swx-msato
    • CEV マニフェスト: 本ブログでは Oracle Database インストーラーのみ準備した関係上、以下の記述としております。他に指定できる JSON フィールドについてはCEV マニフェストの JSON フィールドをご参照ください。
  • KMS キー
  • タグ

今回使用した CEV マニフェスト

{
    "mediaImportTemplateVersion": "2020-08-14",
    "databaseInstallationFileNames": [
        "V982063-01.zip"
    ],
    "installationParameters": {
        "unixGroupName": "dba",
        "unixGroupId": 12345,
        "unixUname": "oracle",
        "unixUid": 12345,
        "oracleHome": "/u01/app/oracle/product/19.3.0/dbhome_1",
        "oracleBase": "/u01/app/oracle"
    }
}

上記入力後 [カスタムエンジンバージョンの作成] をクリックして CEV 作成に進みます。 CEV の作成は約 2 時間程かかると表示されますので、約 2 時間くらい経過するのを待ちます。本ブログでの設定内容では RU の適用が無いのでそこまで時間はかからなそう、とは思っておりますがとりあえず待ちです。

約 2 時間経過後、CEV が利用可能な状態になります。

RDS Custom for Oracle DB インスタンスの作成

RDS コンソールのダッシュボードやデータベースから [データベースの作成] をクリックします。
データベース作成方法の「標準作成」と「簡単に作成」は「標準作成」を選択してください。「簡単に作成」では RDS Custom は作成できません。
後は以下の項目を選択したり、入力を進めます。

  • エンジンのオプション
    • エンジンのタイプ: Oracle
    • データベース管理タイプ: Amazon RDS Custom
    • アーキテクチャ設定: チェックを入れる (マルチテナントアーキテクチャにする)
    • エディション: Oracle Enterprise Edition
    • エンジンバージョン
      • カスタムエンジンバージョン: 19.custom-oratest01 (作成した CEV を選択します。)
  • テンプレート: 開発/テスト (検証用なので開発/テストを選択しておりますが、本番稼働用を選択したうえで任意で必要最低限のストレージ容量にするでも OK です。)
  • 設定
    • DB インスタンス識別子: デフォルトの database-1 でも お好みの DB インスタンス識別子でもどちらでも OK。
    • マスターユーザー名: デフォルトの admin でもお好みのユーザー名でもどちらでも OK。
    • パスワード: 自動生成でもお好みの設定でもどちらでも OK。
  • インスタンスの設定: RDS Custom for Oracle の DB インスタンスクラスでのサポートに記載のあるインスタンスクラスを選択します。
  • ストレージ: お好みの設定で OK。
  • 接続: お好みの設定で OK。
  • RDS カスタムセキュリティ
  • 追加設定
    • システム ID (SID): デフォルトの RDSCDB でも お好みの SID でもどちらでも OK。
    • 最初のデータベース名: デフォルトの ORCLでも お好みの DB 名でもどちらでも OK。
    • オプショングループ: デフォルトの default:custom-oracle-ee-cdb-19 でも、事前に準備したオプショングループでもどちらでも OK です。
    • バックアップ保持期間、メンテナンスウィンドウ: お好みになります。

上記設定して [データベースの作成] をクリックします。
しばらく時間が経過すると RDS Custom for Oracle DB インスタンスの作成が完了します。 また、RDS Custom for Oracle DB インスタンスの作成が完了した後に EC2 コンソールを開くと、EC2 インスタンスが一つ立ち上がっております。これが RDS Custom for Oracle の OS を管理をする上での EC2 インスタンスとなります。

タグ: AWSRDSCustom が RDS Custom を示しております。

RDS Custom for Oracle DB インスタンス色々確認

Session Manager を使用して EC2 インスタンスに接続してみます。
AWS のドキュメントに記載のとおり Oracle Linux 7.9 が使用されておりました。
Linux のユーザー一覧から oracle ユーザーが有る事を確認します。
そして oracle ユーザーのパスワードを変えていきます。
oracle にスイッチユーザーしていきます。
sqlplus / as sysdba で Oracle Database インスタンスに接続が可能であることを確認します。
OPatch で現在のパッチ適用状況確認ができます。

上記のとおり従来の RDS for Oracle では出来ない OS 側でのコマンドが自由に実行できるようになっています。

まとめ

RDS Custom for Oracle DB インスタンスを立ち上げ、従来できない sysdba でのログインや OPatch の使用を実施してみました。
Oracle on EC2 で少々めんどくさかった OS の事前準備や Oracle Database Installer の実施が省略出来て少し楽できるのかな、と思いました。
ライセンスに関しては BYOL のみになりますので、ご利用の際は Oracle 側のライセンス等にもご注意いただければと思います、

佐藤 光晃 (記事一覧)

マネージドサービス部・テクニカルサポート課

2022年10月にサーバーワークスに入社しました。
前職でもテクニカルサポートに従事しており、情報収集に役立つサービスやツールに興味があります。AWS資格13冠。