手を動かしながら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インスタンスの識別子を入力
アベイラビリティーゾーン:指定なし
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インスタンスの停止ができるようになる