手を動かしながら2週間で学ぶ AWS 基本から応用まで Day5

Day5 リレーショナルDBのマネージドサービスRDSを使う

RDSについて

Master - Slave構成が容易

リードレプリカ
Master - Reprica
更新はMaster 参照系はレプリカ
Masterのみの構成だとDBがボトルネックになってスループットが落ちる

Amazon RDSの作成

RDS→サブネットグループ→DBサブネットグループの作成
DBインスタンスをどのサブネットで起動するか設定する

名前・説明を入力・VPCグループを選択

サブネットの追加
「このVPCに関連するすべてのサブネットを追加する」を選択すると、VPCのサブネットがすべて追加される

privateのサブネットを追加する
アベイラビリティーゾーン
ap-northeast-1a
サブネット
10.0.21.0

アベイラビリティーゾーン
ap-northeast-1c
サブネット
10.0.22.0

パラメータグループの作成
デフォルトのものが定義されて使えるが、変更することができない
変更する場合はパラメータグループで設定する

パラメータグループファミリー:mysql5.7

グループ名:mysql57-parameter-group

RDS→データベースの作成→MySQL

RDS 無料利用枠の対象オプションのみを有効化
Master - Slave構成にするのでチェックを外す
ユースケース:開発/テスト用

DB 詳細の指定
DBエンジンのバージョン:5.7系

インスタンスのクラスを選択
マルチAZ配置
[x] 別のゾーンにレプリカを作成します
ストレージタイプ:汎用
ストレージ割当:20

DBインスタンスの識別子を入力

  • 詳細設定 ネットワーク&セキュリティ
    VPCを選択
    サブネットグループ
    前に作ったprivateサブネット
    パブリックアクセシビリティ:いいえ

アベイラビリティーゾーン:指定なし
Master - Slave構成で作成したいので

VPCセキュリティグループ:DB-sg
前回作成したweb-sgからの接続のみ許可するDB-sgを設定する
Defaultを消す

データベースの設定
データベースの名前:空白
ポート:3306

IAM DB認証:無効化

バックアップ
バックアップウィンドウ
どの時間帯にバックアップするのかを選択できる

拡張モニタリング:無効にする

ログのエクスポート:チェックなし

データベースの作成

RDSにつなぐ

EC2インスタンスWeb-1a DB-1aを起動
Web-1aのインスタンスにログイン

ssh -i key-pair.pem ec2-user@Web-1aのIPv4  
mysql -h RDSのエンドポイント -u root -p  

データベースの作成

create database simple_blog;  
use simple_blog;  

テーブル作成・データInsert  
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");  

# 設定変更
sudo vim /var/www/html/index.php  

$dbh = new PDO('mysql:host=RDSのエンドポイントにする;dbname=simple_blog', "root", "password");  

スナップショットの取得とリストア

RDS→インスタンスの操作→スナップショットの取得
スナップショットのアクション→スナップショットのアクション→スナップショットの復元
RDSインスタンスが新しく作られる、セキュリティグループがデフォルトになっているので変更する。

シングル構成にする

Master - Slave構成だとインスタンスの停止ができない
RDS→DBインスタンスの変更→マルチAZ配置:いいえ
シングル構成になるのでRDSインスタンスの停止ができるようになる