こんにちは、大柳です。
元オンプレエンジニアが、AWSを使った感想、オンプレとの違いについて紹介していくシリーズ、2つめのテーマはAmazon RDS(Amazon Relational Database Service)です。
今回もRDSを使ってみた感想を紹介していきます。今回はRDS構築編です。
AWSサービスの選択
マネジメントコンソールにログインするとAWSで利用できるサービス一覧が表示されます。
RDSはデータベースのカテゴリにありますので今回はこれを選択します。
データベースカテゴリには他に、NoSQLデータベースサービスであるDynamoDBや、ペタバイト規模のデータウェアハウスサービスのRedshiftもあり、AWSの提供するサービスだけで、多様なDB要件に対応することができます。
ナレコムAWSレシピ DynamoDB紹介記事一覧
ナレコムAWSレシピ Redshift紹介記事一覧
RDSダッシュボード
ダッシュボード画面が表示されるので、「DBインスタンスの起動」をクリックします。
エンジンの選択
利用したいRDBMSとエディションを選択します。前回記事でもお伝えしたように、商用、OSSのメジャーなRDBMSが選べます。
今回は「Oracle EE」(Oracle Enterprise Edition)を選択します。
本番稼働/開発環境の選択
今回は検証用に使いたいだけなので、「開発/テスト」を選択します。
DB詳細の指定
この画面では以下のようなDB構築のために以下のような項目を設定できます。
DBエンジンのバージョン…Oracleなら11g、12c、さらにマイナーバージョンのどれを使いたいか。
マルチAZ配置…高可用性構成を利用するか。
ストレージタイプ、割り当て…利用するディスクのタイプ(汎用SSD、高IOPS SSD、HDD)とサイズ。
DBマスタユーザの名前・パスワード…管理用のユーザの名前とパスワードを指定します。Oracle on RDSの場合、sysユーザはログインも利用もできませんので、注意が必要です。
設定を入力したら、「次のステップ」を選択します。
[詳細設定]の設定
この画面でも引き続き以下のような項目を設定できます。
パラメーターグループ…RDBMSの各種パラメーターはRDSではDBパラメーターグループと呼ばれる単位でまとめられています。Oracleであれば初期化パラメーターの設定は、このグループとして管理されます。
詳細は次回記事で取り上げます。
オプショングループ…RDBMSの各種オプションはRDSではオプショングループと呼ばれる単位でまとめられています。Oracleであれば、OEM、TDEの利用有無などを指定できます。こちらも詳細は次回記事で取り上げます。
なお、ここではデフォルトのパラメーターグループ、オプショングループを指定しましたが、別のグループに付け替えるためには、DBの再起動が必要になります。
DBの詳細設定の画面ではほぼクリックだけで、様々な要件に対応することができます。
viを使ったスクリプトの編集は必要ありません!
設定を入力して、「DBインスタンスの作成」を選択すると、DBインスタンスの作成、起動が始まります。
「DBインスタンスの表示」を選択するとインスタンス一覧画面に遷移します。
RDSインスタンス起動の確認
今回の構成の場合は作成、起動に約10分かかりました。
以下の画面のように、ステータスが「利用可能」となれば起動完了です。
最後にアラートログを確認して、データベースが起動されたことを、確認しましょう。
RDSはマネージドサービスの制約で、OSファイルには直接アクセスできません。アラートログもマネジメントコンソールから確認する方式です。
DBインスタンスを選択し、「ログ」を選択すると、ログ一覧が表示されます。
ここからアラートログやトレースファイル、auditログなどが参照できます。
フィルタに「alert」と入力してアラートログを見てみましょう。
以下のように、アラートログの内容をブラウザ上でも確認できます。tail -fやgrepが使えないのは少し物足りませんが、ログ一覧の画面からログのダウンロードも可能で、使い慣れたエディタでログの分析もすることも可能です。
参考に、データベースの起動時の初期化パラメーターの情報(デフォルト値以外)やデータベースオープンのメッセージを載せておきます。
「Completed: alter database open」でデータベースがオープンされて利用可能となったことがわかります。
アラートログを見る限りは、オンプレと違いはなさそうです。
123456789101112131415161718192021222324252627282930313233343536373839404142
---------------------------------------System parameters with non-default values: processes = 84 spfile = "/rdsdbbin/oracle/dbs/spfileORCL.ora" filesystemio_options = "setall" memory_target = 596M memory_max_target = 596M control_files = "/rdsdbdata/db/ORCL_A/controlfile/control-01.ctl" log_archive_dest_1 = "location="/rdsdbdata/db/ORCL_A/arch/redolog", valid_for=(ALL_LOGFILES,ALL_ROLES)" log_archive_format = "-%s-%t-%r.arc" archive_lag_target = 300 db_create_file_dest = "/rdsdbdata/db" db_recovery_file_dest_size= 1G standby_file_management = "AUTO" undo_tablespace = "UNDO_T1" heat_map = "OFF" db_block_checking = "MEDIUM" recyclebin = "OFF" local_listener = "(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))" job_queue_processes = 50 audit_file_dest = "/rdsdbdata/admin/ORCL/adump" db_name = "ORCL" db_unique_name = "ORCL_A" open_cursors = 300 max_string_size = "STANDARD" dg_broker_config_file1 = "/rdsdbdata/config/dr1ORCL.dat" dg_broker_config_file2 = "/rdsdbdata/config/dr2ORCL.dat" diagnostic_dest = "/rdsdbdata/log" enable_pluggable_database= FALSE ~中略~ Database Characterset is AL32UTF8No Resource Manager plan activereplication_dependency_tracking turned off (no async multimaster replication found)Starting background process AQPCTue Jan 24 04:04:28 2017AQPC started with pid=30, OS id=11749 Starting background process CJQ0Completed: alter database openTue Jan 24 04:04:30 2017---------------------------------------
まとめ
RDBMS自体や、DBエンジンに関わる設定があるため、EC2より設定項目も多く、時間もかかりましたが、設定10分、起動10分という短時間でRDBMSを構築できました。
この作業でサーバ構築、DBの初期設定は完了しており、オンプレに比べれば格段に手間も時間も少なくて済みました。
しかしながら、例えばsysユーザが利用できないなど、オンプレに比べた制約もあります。
引き続き、次回も元オンプレエンジニアシリーズ RDS編として、RDSのDBパラメーターグループやオプショングループでの設定内容や制約ついて取り上げます。
お楽しみに!
マルチAZ配置…高可用性構成を利用するか。
ストレージタイプ、割り当て…利用するディスクのタイプ(汎用SSD、高IOPS SSD、HDD)とサイズ。
DBマスタユーザの名前・パスワード…管理用のユーザの名前とパスワードを指定します。Oracle on RDSの場合、sysユーザはログインも利用もできませんので、注意が必要です。
設定を入力したら、「次のステップ」を選択します。
詳細は次回記事で取り上げます。
なお、ここではデフォルトのパラメーターグループ、オプショングループを指定しましたが、別のグループに付け替えるためには、DBの再起動が必要になります。
DBの詳細設定の画面ではほぼクリックだけで、様々な要件に対応することができます。
viを使ったスクリプトの編集は必要ありません!
設定を入力して、「DBインスタンスの作成」を選択すると、DBインスタンスの作成、起動が始まります。
以下の画面のように、ステータスが「利用可能」となれば起動完了です。
RDSはマネージドサービスの制約で、OSファイルには直接アクセスできません。アラートログもマネジメントコンソールから確認する方式です。
ここからアラートログやトレースファイル、auditログなどが参照できます。
フィルタに「alert」と入力してアラートログを見てみましょう。
「Completed: alter database open」でデータベースがオープンされて利用可能となったことがわかります。
アラートログを見る限りは、オンプレと違いはなさそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
--------------------------------------- System parameters with non-default values: processes = 84 spfile = "/rdsdbbin/oracle/dbs/spfileORCL.ora" filesystemio_options = "setall" memory_target = 596M memory_max_target = 596M control_files = "/rdsdbdata/db/ORCL_A/controlfile/control-01.ctl" log_archive_dest_1 = "location="/rdsdbdata/db/ORCL_A/arch/redolog", valid_for=(ALL_LOGFILES,ALL_ROLES)" log_archive_format = "-%s-%t-%r.arc" archive_lag_target = 300 db_create_file_dest = "/rdsdbdata/db" db_recovery_file_dest_size= 1G standby_file_management = "AUTO" undo_tablespace = "UNDO_T1" heat_map = "OFF" db_block_checking = "MEDIUM" recyclebin = "OFF" local_listener = "(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))" job_queue_processes = 50 audit_file_dest = "/rdsdbdata/admin/ORCL/adump" db_name = "ORCL" db_unique_name = "ORCL_A" open_cursors = 300 max_string_size = "STANDARD" dg_broker_config_file1 = "/rdsdbdata/config/dr1ORCL.dat" dg_broker_config_file2 = "/rdsdbdata/config/dr2ORCL.dat" diagnostic_dest = "/rdsdbdata/log" enable_pluggable_database= FALSE ~中略~ Database Characterset is AL32UTF8 No Resource Manager plan active replication_dependency_tracking turned off (no async multimaster replication found) Starting background process AQPC Tue Jan 24 04:04:28 2017 AQPC started with pid=30, OS id=11749 Starting background process CJQ0 Completed: alter database open Tue Jan 24 04:04:30 2017 --------------------------------------- |
この作業でサーバ構築、DBの初期設定は完了しており、オンプレに比べれば格段に手間も時間も少なくて済みました。
しかしながら、例えばsysユーザが利用できないなど、オンプレに比べた制約もあります。