NEWSニュース&ブログ

RDS for Oracleのバックアップ検討中の人注目! CLIを使用した手動バックアップ

この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。

投稿日:2014/10/21

今回はAmazon RDS (以下RDS)サービスのDBスナップショットを、CLIを使用して取得する手順を記載します。
手順としてはCLIツールをクライアント端末にインストールし、環境変数を設定することでコマンド実行可能となります。
使用するCLIツールは「Amazon RDS Command Line Toolkit」になります。

 

Amazon RDS Command Line Toolkitとは

RDSをAWSマネジメントコンソールからではなく、コマンドラインインターフェースで制御できるAWSから提供されているツールです。
マニュアルは以下を参照してください。

Amazon Relational Database Service Command Line Interface Reference (API Version 2013-09-09) http://docs.aws.amazon.com/AmazonRDS/latest/CommandLineReference/Welcome.html

CLIを使用してDBスナップショットを取得するメリット

RDSは自動化バックアップが1日1回実行されています。その自動化バックアップはRDSインスタンスを削除する段階で削除されてしまいます。また自動化バックアップの保持期間(最長35日)を経過しますと削除されてしまいます。
一方DBスナップショットによる手動バックアップは、RDSインスタンス削除後もスナップショットが削除されることはありません。そのため特定のタイミングのバックアップを保持したい場合に有効です。
またDBスナップショットの世代管理をスクリプト化し、タスクスケジューラなどで日次ジョブ実行することが可能です。

DBスナップショットを取得する際に「Create Snapshot」(コマンドラインではrds-create-db-snapshot)を使用すると、begin backupによる瞬断が発生してしまいます。そのため自動化バックアップからコピーをとる「Copy Snapshot」(コマンドラインではrds-copy-db-snapshot)を使用することでbegin backupによる瞬断が発生しないようにします。

 

検証で使用する環境と実施する内容

検証で使用する環境を紹介します。
AWS上にRDS(Oracle 11gR2)を一つ作成し、検証環境上の端末からコマンドプロンプトでアクセスします。

図1:検証環境の構成 ・実施する内容
 ①Amazon RDS Command Line Toolkit インストール
 ②クレデンシャルの確認
 ③環境変数設定
 ④CLIでのバックアップ取得

それでは実際に見ていきましょう。

 

①Amazon RDS Command Line Toolkit インストール

(1)Amazon RDS Command Line Toolkit ダウンロード

以下にアクセスし、「Download」ボタンを押します。
http://aws.amazon.com/developertools/2928

図2:Amazon RDS Command Line Toolkit ダウンロード

 

(2)ダウンロードしたZipファイルを解凍します。
図3:Zipファイルの解凍

 

(3)解凍したフォルダを任意のディレクトリに移動します。
今回はC:\Program Files 配下に移動します。

図4:フォルダ移動 インストールは以上で完了です。

 

②クレデンシャルの確認

クレデンシャルとはツールを使用してRDSに接続する際に、AWSアカウントに紐づいたAWS Access KeyとSecret Access Keyから要求されるAWSアカウントの証明書になります。上記情報はアカウント情報を参照することで確認できます。

(1)AWSマネジメントコンソールから確認
アカウント名からプルダウンの「Security Credentials」を選択します。

図5:AWSマネジメントコンソールから確認

 

(2)Security Credentialsの画面へ移動
図6:Security Credentialsの画面へ移動 下記画面が表示されたら「Continue to Security Credentials」を押します。

 

(3)Create New Access Key
下記画面が表示されたら「Access Keys(Access Key ID and Secret Access Key)」を展開し、
「Create New Access Key」ボタンを押します。

図8:Create New Access Key

 

(4)Keyのダウンロード
下記画面が表示されたら、「Download Key File」を押します。

図9:Keyのダウンロード 以下のように「rootkey.csv」がダウンロードされたことを確認します。

図10:Keyのダウンロード

 

(5)Access Key の確認
ダウンロードされたAccess Keyを確認すると、以下の内容が記載されていることが確認できます。
※後でテキストファイルに下記値を入力します。
 ・AWSAccessKeyId
 ・AWSSecretKey

図11:Access Key の確認

 

(6)Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定
Amazon RDS Command Line Toolkitのインストールディレクトリの 「credential-file-path.template」を編集します。
※ファイル名は変更しても構いません。 

図12:Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定 例として以下のようにAccess Keyを入力します。

図13:Amazon RDS Command Line Toolkitのクレデンシャルファイルの設定 以上で、クレデンシャルの設定が完了です。

 

③環境変数設定

Amazon RDS Command Line Toolkitを使用する際に、環境変数の設定がいくつか必要です。

1. JAVA_HOME:JDKへのパスを設定
2. AWS_RDS_HOME:Amazon RDS Command Line Toolkitのインストールディレクトリを設定
3. AWS_CREDENTIAL_FILE:クレデンシャルへのパスを設定
4. PATH:%AWS_RDS_HOME%\binを設定
5. EC2_REGION:EC2のリージョンを設定


環境変数は検証環境上のクライアント端末に、以下の手順で設定します。
コンピュータ > プロパティ > 設定の変更 > システムのプロパティ > 詳細設定 > 環境変数 > システム環境変数
> 「新規」または「編集」

 

 

(1)JAVA_HOME
Amazon RDS Command Line ToolkitにはJDKのインストールが必要です。
JDKが以下にインストール済みであることを前提に、環境変数を設定します。

C:\Program Files\Java\jdk1.8.0_11

図14:JAVA_HOME

 

(2)AWS_RDS_HOME
Amazon RDS Command Line Toolkitのインストールディレクトリを設定します。

C:\Program Files\RDSCli-1.15.001

図15:AWS_RDS_HOME

 

(3)AWS_CREDENTIAL_FILE
クレデンシャルへのパスを設定します。

C:\Program Files\RDSCli-1.15.001\credential-file-path.template

図16:AWS_CREDENTIAL_FILE

 

(4)PATH
AWS_RDS_HOMEのbinディレクトリへのパスを設定します。

C:\Program Files\RDSCli-1.15.001\bin

図17:PATH

 

(5)EC2_REGION
EC2のリージョンを設定します。

ap-northeast-1

図18:EC2_REGION

 

(6)検証環境のクライアント端末の再起動
システム環境変数を反映させるため、OS再起動します。

 

(7)環境変数の確認
set コマンドでシステム環境変数が反映されていることを確認します。

図19:環境変数の確認 (8)rdsコマンドへのパスが通っていることを確認する
以下のコマンドでrdsコマンドへパスが通っていることを確認します。
 rds version
 rds –help


図20:rds version 図21:rds –help

 

④CLIでのバックアップ取得

準備ができましたので、CLIでDBスナップショットが取得できることを確認します。

(1)自動化バックアップ名の確認
以下のコマンドを実行し、自動化バックアップ名を確認します。
set DBNAME=orcl

rds-describe-db-snapshots --db-instance-identifier %DBNAME% --snapshot-type automated
以下のように表示され、最新の自動化バックアップ名が確認できます。
DBSNAPSHOT  rds:orcl-2014-08-02-18-24  2014-08-02T18:24:14.958Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracl
e-se1-11-2  11.2.0.4.v1  bring-your-own-license  automated  vpc-XXXXXXX
DBSNAPSHOT  rds:orcl-2014-08-03-18-24  2014-08-03T18:24:23.071Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracl
e-se1-11-2  11.2.0.4.v1  bring-your-own-license  automated  vpc-XXXXXXXX
DBSNAPSHOT  rds:orcl-2014-08-04-18-24  2014-08-04T18:24:10.562Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracl
e-se1-11-2  11.2.0.4.v1  bring-your-own-license  automated  vpc-XXXXXXXX

 

(2)DBスナップショットコピーコマンド実行
以下のコマンドを実行し、DBスナップショットを取得します。
(ソースは先程確認した自動化バックアップ名を指定します。)
# rds-copy-db-snapshot -s <ソース名> -t <ターゲット名>
rds-copy-db-snapshot -s rds:orcl-2014-08-04-18-24 -t orcl-2014-08-05-13-28-01
以下のように表示され、DBスナップショットが取得されたことが確認できます。
c:\ >rds-copy-db-snapshot -s rds:orcl-2014-08-04-18-24 -t orcl-2014-08-05-13-28-01

DBSNAPSHOT  orcl-2014-08-05-13-28-01  2014-08-04T18:24:10.562Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracle
-se1-11-2  11.2.0.4.v1  bring-your-own-license  manual  vpc-XXXXXXXX

 

(3)古いDBスナップショット削除
以下のコマンドを実行し、古いDBスナップショットを削除します。

Are you sure you want to delete this snapshot [Ny] と聞かれたら 「y」を入力しエンターします。
rds-delete-db-snapshot --db-snapshot-identifier orcl-2014-07-30-12-43-03
以下のように表示されます。
c:\>rds-delete-db-snapshot --db-snapshot-identifier orcl-2014-07-30-12-43-03
    Once you begin deleting this snapshot, it will no longer be available for db
    instance restoration.
    Are you sure you want to delete this snapshot [Ny]y
DBSNAPSHOT  orcl-2014-07-30-12-43-03  2014-07-29T18:24:21.557Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  deleted  100  oracle  default:oracle-s
e1-11-2  11.2.0.4.v1  bring-your-own-license  manual  vpc-XXXXXXXX

 

(4)古いDBスナップショット削除確認
以下のコマンドを実行し、古いDBスナップショットが削除されたことを確認します。
rds-describe-db-snapshots --db-instance-identifier %DBNAME% --snapshot-type manual
以下のように表示され、古いDBスナップショットが削除されたことが確認できます。
DBSNAPSHOT  orcl-2014-08-01-12-05-14  2014-07-31T18:24:38.452Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracle
-se1-11-2  11.2.0.4.v1  bring-your-own-license  manual  vpc-XXXXXXXX
DBSNAPSHOT  orcl-2014-08-02-09-49-01  2014-08-01T18:24:30.129Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracle
-se1-11-2  11.2.0.4.v1  bring-your-own-license  manual  vpc- XXXXXXXX
DBSNAPSHOT  orcl-2014-08-05-13-28-01  2014-08-04T18:24:10.562Z  orcl  2014-07-17T14:28:25.682Z  oracle-se1  10  available  100  oracle  default:oracle
-se1-11-2  11.2.0.4.v1  bring-your-own-license  manual  vpc- XXXXXXXX

 

(5)AWSマネージメントコンソールで確認
AWSマネージメントコンソールでも結果を確認してみます。

図22:AWSマネージメントコンソールで確認(Automated Snapshots)

 

「Snapshot Creation Time」を見ますと、Automated Snapshots(自動化バックアップ)のコピー元と同一時刻でDBスナップショットが作成されていることが確認できます。

図23:AWSマネージメントコンソールで確認(Manual Snapshots)

 

以上で、Amazon RDS Command Line Toolkit のCLIを使用したRDSのバックアップ取得と確認が完了となります。