こんにちは、テクニカルサポート課の 佐藤 光晃です。
本ブログは RDS Custom for Oracle DB インスタンスを立てて少しだけ触ってみたブログとなります。
- RDS Custom について
- RDS Custom for Oracle 事前準備
- RDS Custom for Oracle DB インスタンス作成
- 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 |
サーバーのメンテナンス | AWS | AWS | AWS | AWS |
ハードウェアライフサイクル | AWS | AWS | AWS | AWS |
電力、ネットワーク、および冷却 | AWS | AWS | AWS | AWS |
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 については、次の要件に従ってください。
- Oracle ソフトウェアデリバリークラウドを使用して、Oracle インストールファイルおよびパッチファイルをダウンロードします。詳細については、「RDS Custom for Oracle インスタンス作成の前提条件」を参照してください。
- RDS Custom for Oracle の DB インスタンスクラスでのサポートに表示される DB インスタンスクラスを使用します。DB インスタンスは Oracle Linux 7 アップデート 9 を実行する必要があります。(OS の種類が Oracle Linux 7 に固定されております。)
- ストレージ用の gp2、gp3、または io1 ソリッドステートドライブを指定します。最大ストレージ制限は 64 TiB です。
- RDS Custom DBインスタンスを作成するために、AWS KMSキーがあることを確認してください。詳細については、「ステップ 1: 対称暗号化 AWS KMS キーを作成または再利用する」を参照してください。
- 承認された Oracle データベースインストールファイルとパッチファイルのみを使用してください。詳細については、「ステップ 2: Oracle Software Delivery Cloud からデータベースインストールファイルおよびパッチをダウンロードする」を参照してください。
- AWS Identity and Access ManagementIAM ロールおよびインスタンスプロファイルを作成します。詳細については、「ステップ 3: IAM と Amazon VPC を設定する」を参照してください。
- RDS Custom が他の AWS のサービス サービスにアクセスするために使用できるネットワーク構成を必ず指定してください。特定の要件については、「ステップ 3: IAM と Amazon VPC を設定する」を参照してください。(CloudFormation テンプレートが準備されてるので使用した方が過不足なく準備できます。エンドポイント多くて手動作成は大変です。。。)
- RDS Custom と Amazon RDS DB インスタンスの合計数が、クォータ制限を超えていないことを確認してください。例えば、Amazon RDS のクォータが 40 DB インスタンスの場合、20のRDS Custom for Oracle DB インスタンスと 20 の Amazon RDS DB インスタンスを持つことができます。
AWS コンソール上のタスクを除くと Oracle Database を自前で用意する必要があります。
また、OPatch や RU などの zip ファイルについては My Oracle Support (要ライセンス) から自前で用意する必要があります。
おおまかな手順
docs.aws.amazon.com ステップは次のとおりです。
- Amazon S3 バケットにデータベースソフトウェアをアップロードします。
詳細については、「ステップ 3: Amazon S3 へのインストールファイルをアップロードする」を参照してください。 - メディアから RDS Custom for Oracle カスタムエンジンバージョン (CEV) を作成します。
マルチテナントまたは非マルチテナントアーキテクチャのいずれかを選択します。詳細については、「CEV の作成」を参照してください。 - CEV から RDS Custom for Oracle DB インスタンスを作成します。 詳細については、「RDS Custom for Oracle DB インスタンスを作成する」を参照してください。
- アプリケーションを DB インスタンスエンドポイントに接続します。 詳細については、SSH を使用した RDS Custom DB インスタンスへの接続 および Session Manager を使用して RDS Custom DB インスタンスに接続する を参照してください。
- (オプション) ホストにアクセスしてソフトウェアをカスタマイズします。
- 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、個別パッチなどは適用しません。
ダウンロード後、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 キー
- AWS KMS キー: ステップ 1: 対称暗号化 AWS KMS キーを作成または再利用するを参考に作成した 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 カスタムセキュリティ
- IAM インスタンスプロファイル: ステップ 3: IAM と Amazon VPC を設定する を参考に作成した IAM インスタンスプロファイルを選択します。
- AWS KMS キー: ステップ 1: 対称暗号化 AWS KMS キーを作成または再利用するを参考に作成した KMS キーを選択。
- 追加設定
- システム 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 インスタンスとなります。
RDS Custom for Oracle DB インスタンス色々確認
上記のとおり従来の RDS for Oracle では出来ない OS 側でのコマンドが自由に実行できるようになっています。
まとめ
RDS Custom for Oracle DB インスタンスを立ち上げ、従来できない sysdba でのログインや OPatch の使用を実施してみました。
Oracle on EC2 で少々めんどくさかった OS の事前準備や Oracle Database Installer の実施が省略出来て少し楽できるのかな、と思いました。
ライセンスに関しては BYOL のみになりますので、ご利用の際は Oracle 側のライセンス等にもご注意いただければと思います、
佐藤 光晃 (記事一覧)
マネージドサービス部・テクニカルサポート課
2022年10月にサーバーワークスに入社しました。
前職でもテクニカルサポートに従事しており、情報収集に役立つサービスやツールに興味があります。2024 Japan AWS All Certifications Engineers になりました。