2020年2月1日現在の内容です。
用語説明
RDS(Relational Database Service)
AWSクラウド上のフルマネージドリレーショナルデータベースのサービス
- 構築・運用の手間を軽減できる
- AWSエンジニアがデータベース設計のベストプラクティスを適用している
↓
コア機能の開発に注力できる
オンプレミス | On EC2 | RDS |
---|---|---|
アプリ最適化 | アプリ最適化 | アプリ最適化 |
スケーリング | スケーリング | |
バックアップ | バックアップ | |
アップデート | アップデート | |
OSインストール | ||
物理サーバー設置 |
- 利用可能エンジン
- MySQL
- PostgreSQL
- Oracle
- Microsoft SQL Server
- Amazon Aurora
- MariaDB
- 各種設定グループ
- DBパラメータグループ:DB設定値を制御
- DBオプショングループ:RDSへの機能追加を制御
- DBサブネットグループ:RDSを起動させるサブネットを制御
特徴
- 高い可用性
- マルチAZ(複数のアベイラビリティゾーンに配置)を簡単に構築
- あるアベイラビリティゾーンで障害が発生しても、別のアベイラビリティゾーンのDBを利用できる
- マルチAZ(複数のアベイラビリティゾーンに配置)を簡単に構築
- パフォーマンスの向上
- リードレプリカ(マスターDBを複製した読み込み専用DB)を簡単に構築
- DBを参照する時はリードレプリカ、DBを更新する時はマスターに分けることで負荷を分散できる
- リードレプリカ(マスターDBを複製した読み込み専用DB)を簡単に構築
- 運用負荷の軽減
- 自動的なバックアップ
- 1日1回バックアップを自動取得(スナップショット)
- スナップショットを元にDBインスタンスを作成(リストア)
- 自動的なソフトウェアメンテナンス
- メンテナンスウインドウで指定した曜日・時間帯にアップデートを自動実施
- 監視
- 各種メトリクス(監視対象のデータ)を60秒間隔で取得・確認可能
- 自動的なバックアップ
プライベートサブネットの作成
現在プライベートサブネットはアベイラビリティゾーン「1a」のみ存在することを確認
RDSの作成準備
セキュリティグループの作成(EC2)
「ルールの追加」 → 以下の画像の通り入力し、「作成」をクリック
タイプはMySQLの構築のため「MYSQL/Aurora」、ソースはEC2インスタンスのグループIDを指定
作成したセキュリティグループのインバウンドから設定内容を確認
DBサブネットグループの作成
作成した2つのプライベートサブネットを追加し、「作成」をクリック
DBパラメータグループの作成
以下の通り設定し、「作成」をクリック
パラメータグループファミリー:対象のDBを指定
グループ名・説明:任意の名前
パラメータを編集する際は、対象のパラメータグループをチェックし、パラメータグループアクション → 編集をクリック
編集したい項目の値を変更し、「変更の保存」をクリックすることで変更できる
「変更可能」のtrue/falseで変更可能な項目を判別できる
「適用タイプ」がdynamicはRDSインスタンスが起動中でも反映され、staticはRDSインスタンスが起動されるまで反映されない
DBオプショングループの作成
以下の通り設定し、「作成」をクリック
名前・説明:任意の名前
エンジン:対象のDB
メジャーエンジンのバージョン:DBのバージョン
デフォルトと自分が作成したグループの2つが作成されていることを確認
基本的にオプショングループを編集する際は自分の作成したグループを指定する
RDSの作成
以下の通り設定し、「作成」をクリック
VPC,サブネットグループ,セキュリティグループ,DBパラメータグループ,オプショングループは作成したものを選択
DBインスタンスを停止させる場合は、アクション → 停止をクリック
本番環境のDBインスタンスは停止させないこと → 停止に時間がかかる・AWSのRDSインスタンスのリソースが余っていなかった場合、しばらく起動できないため
WebサーバーからRDSへ接続
ターミナルからEC2へSSHログイン
ssh -i test-ssh-key.pem ec2-user@18.179.167.73
MySQLのインストール
sudo yum -y install mysql
DBへログインできることを確認
[ec2-user@ip-10-0-10-10 ~]$ mysql -h test-web.czelx3q0xopr.ap-northeast-1.rds.amazonaws.com -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.16 Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>