【RDS】DBサーバーを構築しよう
構築イメージ
プライベートサブネットにDBサーバーを設置します。
複数のアベイラビリティゾーンにサブネットを設置すると可用性が高まります。
RDSとは?
フルマネージドなリレーショナルデータベースのサービスです。
構築、運用の手間の軽減によりコア機能の開発に注力できて
AWSエンジニアによるデータベース設計のベストプラクティスを適用
します。
RDSで利用可能なエンジン
MySQL PostgreSQL Oracle Microsoft SQL Server Amazon Aurora MariaDB
各種設定グループ
DBパラメータグループ:DB設定値を制御 DBオプショングループ:RDSへの機能追加を制御 DBサブネットグループ:RDSを起動させるサブネットを制御
特徴
マルチAZを簡単に構築=可用性の向上
リードレプリカ(読み取り専用のレプリカ)を簡単に構築できます。
自動的なバックアップ
1日1回バックアップを自動取得(スナップショット)
スナップショットをもとにDBインスタンスを作成(リストア)
自動的なソフトウェアメンテナンス:自分で設定もできる
監視:各種メトリクスを60秒間隔で取得・確認可能
2つ目のプライベートサブネットを作成しよう!
※マルチAZを利用する場合設定しますが、使わない場合はSkipします。
VPCで検索して「VPC」をクリックします。
ダッシュボードの「サブネット」をクリックしてから「サブネットの作成」をクリックします。
サブネット名:my-portfolio-private-subnet-1c VPC:自分で作成したVPC アベイラビリティーゾーン:ap-northeast-1c IPv4 CIDR ブロック:10.0.51.0/24
上記の設定にして「サブネットの作成」をクリックします。
サブネットが作成されたのを確認したらOKです。
RDSの作成準備
EC2ダッシュボードの「セキュリティーグループ」をクリックして、「セキュリティグループを作成」をクリックします。
セキュリティグループ名:my-portfolio-db 説明:my-portfolio-db VPC:自分で作成したVPC インバウンドの設定 Type:MySQL/Aurora ソース:自分作成したセキュリティグループ(defaultではない方)
「セキュリティーグループを作成」をクリックします。
セキュリティーグループが作成されたのを確認したらOKです。
DBサブネットグループの作成をする。
※マルチAZを利用する場合設定しますが、使わない場合はSkipします。
RDSで検索して、「RDS」をクリックします。
サブネットグループをクリックして、「DBサブネットグループの作成」をクリックします。
名前:my-portfolio-subnet-group 説明:my-portfolio-subnet-group VPC:自分で作成したVPC アベイラビリティーゾーン:ap-northeast-1a、ap-northeast-1c サブネット:(10.0.50.0/24)(10.0.51.0/24)
上記の設定にして「作成」をクリックします。
「サブネットグループを表示を」クリックします。
問題ないかを確認します。
パラメータグループの設定をする
RDSダッシュボードのパラメータグループ→「パラメータグループの作成」をクリックします。
パラメータグループファミリー:MySQL80 グループ名:my-portfolio-mysql80 説明: my-portfolio-mysql80
パラメータグループでは変更可能なものとそうでないもがあり
適用タイプも静的なものか動的なものか変えられます。
RDSダッシュボードの「オプショングループ」を選択して、「グループを作成」をクリックします。→
名前:my-portfolio-mysql80 説明:my-portfolio-mysql80 エンジン:mysql メジャーエンジンのバージョン:8.0
上記の設定にして「作成」をクリックします。
デフォルトも一緒に作成されます。
RDSの作成をする
RDSで検索して、「RDS」をクリックします。
RDSダッシュボードのデータベースを選択して「データベースの作成」をクリックします。
エンジンのタイプ:MySQLを選択
バージョン:8.0.15
テンプレート:無料利用枠(マルチAZを利用する場合は開発/テスト以上を設定します)
DBインスタンス識別子:my-portfolio-web
マスターユーザー名:admin
パスワード:任意で
DBインスタンスサイズ:バースト可能クラス ストレージタイプ:汎用 ストレージ割り当て:20 ストレージの自動スケーリングを有効にする:チェックを外す マルチ AZ 配置:スタンバイインスタンスを作成しないでください(マルチAZを利用する場合設定します)
VPC:my-portfolio-vpc(自分で作成したVPC) サブネットグループ:my-portfolio-subnet-group(自分で作成したサブネットグループ) パブリックアクセス可能:なし VPC セキュリティグループ:既存の選択 既存の VPC セキュリティグループ:my-portfolio-db(自分で作成したセキュリティーグループ) アベイラビリティゾーン:ap-northeast-1a データベースポート:3306
パスワード認証を選択します。
最初のデータベース名:空で DB パラメータグループ:my-portfolio-mysql80 オプショングループ:my-portfolio-mysql80 自動バックアップの有効化 チェック バックアップ保持期間:30日 バックアップウィンドウ:選択ウィンドウ 開始時間18:00UTC (日本だと午前3時 9時間引く) 期間:0.5時間 スナップショットにタグをコピー:チェック 拡張モニタリングの有効化:チェックを外す ログのエクスポート:全て空(CloudWatchを使用するならチェック)
マイナーバージョン自動アップグレードの有効化:チェック 選択ウィンドウ:日曜日 20:00UTC 0.5時間 削除保護の有効化:本番環境ならチェック
上記の設定にして「データベースの作成」をクリック
接続とセキュリティタブで以下を確認
VPC:my-portfolio-vpc
サブネットグループ:my-portfolio-subnet-group
VPC セキュリティグループ:my-portfolio-db
スナップショットは手動で作った場合は自動で消えないので自分で消す必要があります。料金がかかるので忘れないように!!
RDSインスタンスの停止について
RDSを停止すると費用が浮くのでテスト環境では良いのですが、
本番環境ではRDSは停止しないほうが無難です。
停止に時間がかかるのと起動にも時間がかかリます。
WebサーバーにMySQLインストールする
Launchpadをクリックして、ターミナルを起動します。
ssh -i ~/Desktop/my-portfolio-sshkey.pem ec2-user@IPアドレス sudo yum -y install mysql
RDSのダッシュボードでデータベースを選択→エンドポイントをコピーします。
mysql -h my-portfolio-web.********.ap-northeast-1.rds.amazonaws.com -u admin -p ↑コピーしたエンドポイントを貼り付け