AWSクイックスタート:Oracle DB 12c on AWS を試してみた

2016.10.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。最近少し冷えるようになったので、寝ていると猫が布団に入ってくるようになりました。

はじめに

CloudFormationのテンプレートを利用することで、エンタープライズアプリケーションを簡単にAWSへデプロイ可能なAWSクイックスタートに、先日新たにOracle Database 12cのリファレンスが公開されました。

Oracle Database on the AWS Cloud: Quick Start Reference Deployment

特徴

  • EC2にOracle DB 12c EEをインストール
  • ライセンスはBYOLのみ
  • ASMによるストレージ管理
  • Data GuardによるMulti-AZに対応したActive-Standby構成
  • Route53 を利用したスイッチオーバ時の接続先切替
  • Oracle Secure Backup Cloud ModuleによるS3へのデータバックアップ(オプション)

architecture

先日のブログ記事で、マネージドサービスであるRDS for Oracleと、自身で構築/運用するOracle on EC2を比較しました。

[比較] RDS vs RDB on EC2:Oracle編

EC2でOracleを構築することにより柔軟で自由度の高い環境にできる一方で、構築の手間が大きいと書きました。今回公開されたテンプレートを使うことで迅速なデプロイが可能になり、RDSとの間をうまく埋めてくれるソリューションといえます。

構築してみた

さっそく、公開されたテンプレートを使ってデプロイしてみました。

Oracle Database 12c on the AWS Cloud: Quick Start Reference Deployment | AWS Documentation

テンプレートには、NAT/踏み台を含めたVPCを新規作成するものと、既存のVPCにDBのインスタンスのみを作成する2種類があります。今回は既存のVPCを使って、DB関連のリソースのみをデプロイするテンプレートを使用しました。

手順サマリ

  1. 利用するLinux AMIのサブスクライブ
  2. Oracle ソフトウェアの準備
  3. CloudFormationスタックの作成

1. 利用するLinux AMIのサブスクライブ

利用するOSをRHEL 7.2 または Oracle Linux 6.7 から選択し、Marketplaceでライセンス条項に同意します。今回はRHEL 7.2 を選択しました。

oracle-qs-001

2. Oracle ソフトウェアの準備

インストールに必要な下記のソフトウェアバイナリを入手し、S3のバケットへアップロードしておきます。

  • linuxamd64_12102_database_1of2.zip
  • linuxamd64_12102_database_2of2.zip
  • linuxamd64_12102_grid_1of2.zip
  • linuxamd64_12102_grid_2of2.zip
  • oracleasm-support-2.1.8-1.el6.x86_64.rpm
  • oracleasmlib-2.0.4-1.el6.x86_64.rpm

検証用途であればOTNライセンスで入手可能です(本番利用不可)。

上記をS3にアップロードしておきます。

oracle-qs-003

3. CloudFormationスタックの作成

テンプレートを使ってCloudFromationのスタックを作成します。

oracle-qs-002

パラメータとして以下の項目が求められますので、それぞれ入力していきます。

項目 内容
Network Configuration VPCID デプロイするVPC
PrivateSubnet1ID PrimaryDBが配置されるサブネット
PrivateSubnet2ID StandbyDBが配置されるサブネット
BastionSecurityGroupID DBインスタンスへのSSHを許可するSG
Amazon EC2 Configuration KeyPairName DBインスタンスにSSHする際のKeyPair
OracleAMIOS RHEL or Oracle Linux
OracleInstanceType DBインスタンスのタイプ

今回はm3.mediumを選択

PrimaryIPAddress PrimaryDBのIPアドレス
StandbyIPAddress StandbyDBのIPアドレス
 Oracle Database Configuration DomainName エンドポイントのドメイン名
DatabasePort listenerのポート番号
DatabaseName PrimaryDBの名前
DataGuardConfig シングルかDG構成か

今回はData Guard構成

CharacterSet DBのCharacter set
StandbyName StandbyDBの名前
DatabasePass SYS/SYSTEMのPassword
AsmPass ASM Password
EBSData データ用のEBSサイズ

設定値x6のStripeとなる

DataVolumeType データ用EBSタイプ:PIOPS or GP2
DataIOPS データ用EBSのI/O(PIOPS時)
EBSReco リカバリ用のEBSサイズ

設定値x3のStripeとなる

RecoVolumeType リカバリ用EBSタイプ:PIOPS or GP2
RecoIOPS リカバリ用EBSのI/O(PIOPS時)
InstallBucketName Oracle SWを格納したS3のプレフィックス
Oracle Secure Backup Cloud Module (Optional) OSBInstall Secure Backupを有効にするか

今回は無効

OSBOTN OTNのログインアカウント
OSBPass  OTNのログインパスワード
OSBBucketName バックアップ先のS3バケット
OSBKey S3へアクセスするためのAWS Access Key
OSBSecret S3へアクセスするための AWS Secret Key
AWS Quick Start Configuration QSS3BucketName クイックスタートスクリプト等が格納されるS3のパス

通常は変更しない

QSS3KeyPrefix

今回はData Guardあり、m3.medium、Secure Backupなし、他はほぼデフォルトの構成でデプロイしました。

しばらくするとインスタンスが2台起動し、デプロイが完了します。

oracle-qs-004

Oracle Database のインストール、設定まで自動で行われるため、Completeまでにそれなりの時間が必要です。今回は約1時間30分程度でした。そのうちPrimaryDB、StandbyDBの構築に程度40分ずつかかっています。構築中にEC2の負荷がそれなりにありましたので、高スペックのインスタンスタイプを使えばもう少し短縮されるかもしれません。

確認

デプロイができましたので、SSHでログインして環境を見てみます。

まずはsrvctlでPrimaryDBの状態を確認します。

$ srvctl config database -d ORCL
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/12.1.0.2/db_1
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfile.271.925773751
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DATA,RECO
Services:
OSDBA group:
OSOPER group:
Database instance: orcl

ASMの構成です。

$ srvctl config asm
ASM home: <CRS home>
Password file: +DATA/orapwasm
ASM listener: LISTENER
Spfile: +DATA/ASM/ASMPARAMETERFILE/registry.253.925772623
ASM diskgroup discovery string:

リスナーの構成です。

$ srvctl config listener
Name: LISTENER
Type: Database Listener
Home: /u01/app/oracle/product/12.1.0.2/grid
End points: TCP:1521
Listener is enabled.

続いて、SQL*Plusで接続してみます。

$ sqlplus sys/password@orcl as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Oct 21 02:21:28 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL>

データファイルを確認。

SQL> select name from V$datafile;

NAME
--------------------------------------------------------------------------------
+DATA/ORCL/DATAFILE/system.258.925773111
+DATA/ORCL/DATAFILE/sysaux.257.925773047
+DATA/ORCL/DATAFILE/undotbs1.260.925773199
+DATA/ORCL/DATAFILE/example.270.925773257
+DATA/ORCL/DATAFILE/users.259.925773197

SQL>

Data Guardの状態を見てみます。

SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PRIMARY

SQL>

ロールはPrimaryです。

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL>

READ/WRITEでオープンしています。

SQL> select protection_mode from v$database;

PROTECTION_MODE
--------------------
MAXIMUM PERFORMANCE

SQL>

同期モードは最大パフォーマンスモードです。

SQL> select dataguard_broker from v$database;

DATAGUAR
--------
ENABLED

SQL>

Brokerが有効になっています。

続いて、Standby側に接続してみます。

$ sqlplus sys/password@orclsb as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Fri Oct 21 02:23:34 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options

SQL>

接続できました。

SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL>

ロールはフィジカルスタンバイです。

SQL> SELECT open_mode FROM v$database;

OPEN_MODE
--------------------
MOUNTED

SQL>

マウント状態です。

SQL> SELECT * FROM V$ARCHIVE_GAP;

no rows selected

SQL>

アーカイブギャップはありません。

 

最後に、Enterprise Manager Expressに接続してみました。SecurityGroupで5500を解放し、パブリックIPで接続してます。

oracle-qs-006

sysユーザーでログインしました。

oracle-qs-007

Enterprise Manager もしっかり使えます。

まとめ

テンプレートによるOracle Database 12cのデプロイを紹介しました。

わずか2時間程度の所用時間で、Oracleのインストール、ASMによるストレージ構成、Multi-AZのDataGuard + Brokerの環境が手に入ります。RDSでは満たせないオプション機能利用や、ハイスペックなインスタンスタイプ、ストレージが必要なケースにおいて、ゼロから構築する以外の強力な選択肢が提供されました。