[AWS] RDS スナップショットからDBをリストア(コピー)

2019-10-20環境AWS

RDS にすでに作ってある DB をリストアする方法。
テストやステージング環境を新たに作る場合や、バージョンアップテストを行いたいときにも簡単に同じ DB をつくることができる。

手順

スナップショットから DB をリストアする工程は、

  1. スナップショットを作成する。
  2. DB インスタンスの復元

1. スナップショットを作成する

(スナップショットがすでにある場合は次へ。)

RDS コンソール画面 -> データベース を選択
対象の DB をチェックし、 アクション -> スナップショットの取得 を選択
スナップショット名を入力し、「スナップショットの取得」をクリック

2. DB インスタンスの復元

RDS コンソール画面 -> スナップショット
対象のスナップショットをチェックし、 アクション -> スナップショットの復元 を選択

Amazon RDS Snapshots
Amazon RDS Snapshots

必要事項を入力

  • インスタンスの仕様

    「DB インスタンスのクラス」は元の DB インスタンスが引き継がれていなかったので、必要なのを選択する ( t2.micro でいいのに、m4.xlarge が選択状態だった。うっかりサイズでかいので作成しないよう気をつけよう。)

    RDS Instance Specification
    RDS Instance Specification
  • 設定

    「DB インスタンス識別子」に新しく作る DB インスタンスの名前を入力

  • ネットワーク & セキュリティ

    完全コピーなら、各項目でコピー元と同じものを選択。
    何かを変更したい場合は、別のを選択する。( VPC と VPC セキュリティグループは新規作成を選択することもできる。)

    AWS Restore DB Instance Network & Security
    AWS Restore DB Instance Network & Security

    ※ スナップショットの復元によって、 VPC 、サブネットグループ、パブリックアクセシビリティ、アベイラビリティーゾーン、VPC セキュリティグループは、変更することが可能。
    ( 1 度 DB を作成するとアベイラビリティーゾーンとかは変えられないので、復元とかで変更する。)

    ※ ここで選択するセキュリティグループは、セキュリティグループのインバウドに EC2 のセキュリティグループを登録し、 3306 ポートを解放しておく。( VPC 内の DB インスタンスに同じ VPC 内の EC2 インスタンスがアクセスする。 VPC 内の DB インスタンスに同じ VPC 内の EC2 インスタンスがアクセスする

  • データベースの設定

    「DB パラメータグループ」は、コピー元の情報が引き継がれていないので、必要に応じてコピー元と同じパラメータグループを選択。

    パラメータグループとは、DB の設定をまとめたもの。 ( my.cnf 的なものらしい。)
    パラメータグループは各 DB のバージョンごとに作成する。

入力が完了したら「DB インスタンスの復元」をクリック

作った DB インスタンスの詳細ページで、「概要」セクションの「情報」が「利用可能」になったら完成。
(完コピの場合は、下の情報がコピー元と同じになっていることを確認する。)

AWS DB Instance Page
AWS DB Instance Page

補足

EC2 インスタンスもコピーを使っている場合、 DB 設定と、使っていれば phpMyAdmin の接続先情報を修正

phpMyAdmin のホスト情報変更方法
$ vi 〜/phpmyadmin/config.inc.php
$cfg['Servers'][$i]['host'] = '作成した DB インスタンスのエンドポイント';

Posted by Agopeanuts