本手順において、VPC1、サブネット2を作成済のものとする。
1.サブネットグループ##
DBインスタンスをどのサブネットで起動しますか?と言うのを指定するグループです。
以下の通り入力し「作成」
| 項目 | 説明 |
|---|---|
| 名前・説明 | demo-subnet-group |
| VPC | 作成済のVPC |
| アベイラビリティーゾーン | 作成済のサブネットのAZ |
ちなみに2つ以上のAZを指定しない場合、以下のようにエラーになります。

2.パラメータグループ##
パラメータグループを使って、GUIからMYSQLなどの設定値をいじっていくことになります。(SSHはできない。)
以下の通り入力し「作成」。
| 項目 | 説明 |
|---|---|
| パラメータグループファミリー | mysql5.7 |
| グループ名・説明 | demo-parameter-group |
3.データベースの作成##
ステップ 2 ユースケースを選択します
「開発/テスト - MySQL」

ステップ 3 DB 詳細の指定
今回は以下の通り設定しました。
| 項目 | 説明 |
|---|---|
| ラインセンスモデル | General Pubric Licence |
| DB エンジンのバージョン | MYSQL5.7.23 |
| DB インスタンスのクラス | db.t2.micro 1vCPU,1GiB RAM |
| マルチ AZ 配置 | 別のゾーンにレプリカを作成します |
| ストレージタイプ | 汎用(SSD) |
| ストレージ割り当て | 20GiB |
| DB インスタンス識別子 | demo-db |
| マスターユーザの名前 | root |
| マスターユーザのパスワード | 任意 |
ステップ 4 [詳細設定] の設定
今回は以下の通り設定しました。
| 項目 | 説明 |
|---|---|
| ネットワーク & セキュリティ | 作成済のVPC |
| サブネットグループ | 【1.サブネットグループ で作成したもの】 |
| パブリックアクセシビリティ | いいえ パブリック IP アドレスを持たせて外から繋ぎに行くようにするかの設定です。 |
| アベイラビリティーゾーン | 指定なし マルチAZ構成の作成のため |
| VPC セキュリティグループ | 新規で VPC セキュリティグループ を作成 |
| データベースの名前 | 空白 MYSQLコマンドで後で作成するものとします。 |
| ポート | 3306 |
| DB パラメータグループ | 【2.パラメータグループ で作成したもの】 |
| オプショングループ | default.mysql-5.7 |
| IAM DB 認証 | 無効化 |
| バックアップの保存期間 | 2日間 |
| バックアップウィンドウ | ウィンドウの選択で適当な日時を指定 |
| 拡張モニタリング | 拡張モニタリングを無効にする |
| ログのエクスポート | チェックなし |
| メンテナンス | 指定なし |
4.EC2からMYSQLのエンドポイントをRDSのものにする##
構築済みのwebサーバーから、sshでRDSに接続してみます。
# EC2インスタンスへssh接続
$ ssh -i test.pem ec2-user@グローバルIP
# RDSのmysqlへ接続
$ mysql -h rds_endpoint -u root -p
# データベース作成
create database simple_blog;
use simple_blog;
# テーブル作成&データ挿入
create table posts (id int not null primary key, title varchar(100), detail varchar(1000), image varchar(1000));
insert into posts values (1, "XXXX-RDS", "XXXXXXXXXX", "./img/img1.jpeg");
insert into posts values (2, "YYYY-RDS", "YYYYYYYYYY", "./img/img2.jpeg");
# EC2インスタンスのindex.phpのエンドポイントをRDSのものにする。
$ sudo vim /var/www/html/index.php
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
これでマスター側がフェールオーバーしたとき、自動的にフェールオーバー先のIPアドレスにDNSが解釈されますので、アプリケーションのコードを変えずとも、フェールオーバー先のDBをみることができます。















