1
0

More than 1 year has passed since last update.

AWS初心者は必ず読むべき!必見!AWSの基本⑤RDSを使ったDBサーバー構築

Last updated at Posted at 2022-10-09

この記事を読む前に

記事の中でやること

プライベートサブネットにDBサーバーを設置していきます。
そしてアベイラビリティゾーンに新しく作りプライベートサブネットを作っていきます。
DBの冗長化ができるように複数のアベイラビリティゾーンを使うためです。
障害などが起きた時の対応のためです。

RDSとは

フルマネージド(運用管理から何までやってくれる)に対応したリレーショナルデータベースのサービスです。
構築や運用の手間が軽減し、データベース設計のベストプラクティスを適用できます。

RDSの特徴

  1. 何か障害があっても簡単にサービスが停止せず、マルチAZを簡単に構築できます。
    2.リードレプリカを簡単に構築でき、パフォーマンスを向上できる
  2. 運用不可の軽減

運用不可の軽減を細かく見ていきます。

自動バックアップ      
1日に1回バックアップを自動取得(スナップショット)し、これを元にDBインスタンスを作成(リストア)

自動でソフトウェアメンテナンス
メンテナンスウィンドウで指定した曜日・時間帯にアップデートを自動実施できる

監視
各種メトリクスを60秒間隔で取得、確認可能

利用可能なエンジン

下の記事を見てみると

以下のエンジンが使えるみたいです。(2022年時点で)

⚫︎Oracle
⚫︎MySQL
⚫︎MariaDB
⚫︎SQLServer
⚫︎PostgreSQL
⚫︎Amazon Aurora

設定グループ

⚫︎DBパラメーターグループ   DB設定値を制御

⚫︎DBオプショングループ    RDSへの機能追加を制御

⚫︎DBサブネットグループ    RDSを起動させるサブネットを制御

プライベートサブネット作成

まずはVPCの画面から2つ目のプライベートサブネットを作成してます。(1つ目は作ってあること前提)
aws-infra-vpc-subnet-private1-ap-northeast-1aがプライベートサブネットでこれを使っていきます。
このサブネットを選択すると右側にスクロールをすると、
アベイラビリティゾーンのap-northeast-1aがあります。これとは別のアベイラビリティゾーンに
プライベートサブネットを作成していきます。

スクリーンショット 2022-09-08 17.16.27.png

サブネット作成をクリックして新しくサブネットを作成していきます。

スクリーンショット 2022-09-08 17.24.07.png

設定ができたらサブネットを作成します。
スクリーンショット 2022-09-08 17.26.53.png

プライベートサブネットが新しくできました。
スクリーンショット 2022-09-08 17.33.32.png

IPv4 CIDRも今回設定した10.0.21.0/24になっていれば大丈夫です。

RDS設置

RDSを作成していきます。

RDSの作成準備

使用するデータベースはここではMySQLです。
まずは必要なとこからしかアクセスできないようにしていきます。
ここではWordPressからデータベースへ接続していくようにしていきます。
WebサーバーからRDSへMySQLでのみ接続できるようにしていきます。

セキュリティグループの作成(EC2)

EC2のDB(データベース用)のセキュリティグループを作成していきます。
EC2の中からセキュリティグループに入ってセキュリティグループの作成をクリックします。

スクリーンショット 2022-09-08 17.44.58.png

セキュリティグループ作成していきます。セキュリティグループ名はRDS向けに作成します。
VPCは連結させたいVPC名です。
スクリーンショット 2022-09-08 17.52.03.png

ソースは今回設定したaws-infra-security-group-ec2にします。
画像の下にあるセキュリティグループ作成のボタンを押します。
スクリーンショット 2022-09-08 18.44.55.png

こうしてRDS用のセキュリティグループの作成ができました。
スクリーンショット 2022-09-08 18.54.03.png

スクリーンショット 2022-09-08 19.05.16.png

DBサブネットグループの作成

RDSと検索してRDSのダッシュボードにいきます。
RDSのサブネットグループを開きます。そしてDBサブネットグループを作成していきます。
スクリーンショット 2022-09-09 10.51.51.png

名前の追加やVPCを選びます。
スクリーンショット 2022-09-09 10.53.39.png

サブネット追加してプラベートサブネット1aと1cを選びます。
これで作成していきます。
スクリーンショット 2022-09-09 11.11.58.png

サブネットグループが作成されました。
スクリーンショット 2022-09-09 11.13.29.png

DBパラメータグループの作成

RDSのパラメーターグループの作成を行なっていきます。

スクリーンショット 2022-09-09 11.20.23.png

編集も可能になっています。
スクリーンショット 2022-09-09 11.22.18.png

編集する時はパラメーターの一覧が出てきます。
特に注目した方がいいのは変更可能適用タイプです。
適用タイプはstaticdynamicで別れていきます。

staticRDSインスタンスの起動後に反映され、
dynamicRDSインスタンスに動的に反映されるのかを表しています。

DBオプショングループの作成

RDSのオプショングループに入ってグループを作成していきます。
名前はパラメーターグループで決めたものです。
スクリーンショット 2022-09-09 11.39.24.png

RDSのオプショングループが作成されました。
スクリーンショット 2022-09-09 11.41.11.png

RDS作成

環境ができたのでRDSを作成していきます。

DBエンジン

RDSのデータベースを選択してデータベースの作成をクリックします。

スクリーンショット 2022-09-09 11.53.28.png

MySQLは最新バージョンにします。テンプレートはお金がかからずに本番に近い状態にするとなると
開発/テストがいいみたいです。

スクリーンショット 2022-09-09 11.55.44.png

スタンバイインスタンスを作成すると料金がかかるので作成は不要です。
スクリーンショット 2022-09-09 12.18.49.png

設定をしていきます。画像を参考にしてみてください。
スクリーンショット 2022-09-09 12.09.32.png

本番だと標準クラスですが、学習なら安めのバースト可能が良さそうです。
スクリーンショット 2022-09-09 12.15.02.png

ストレージですが、タイプは汎用で、割り当て20、
スケーリングは学習だけなら不要なので有効にはしないです。
スクリーンショット 2022-09-09 12.16.31.png

接続は下の画像を参考にしてください。
スクリーンショット 2022-09-09 12.25.43.png

スクリーンショット 2022-09-09 12.41.50.png

画像にはないですがデータベースのポートは3306です。

データベース名は後で作成します。
パラメーターグループやオプショングループは先ほど設定したものです。
スクリーンショット 2022-09-09 12.47.04.png

画像にはないですがバックアップの保存期間は30日くらいあると良さそうです。

スクリーンショット 2022-09-09 12.53.02.png

学習なら有効にはしなくてもいいかと思います。
スクリーンショット 2022-09-09 12.53.44.png

スクリーンショット 2022-09-09 12.54.37.png

削除保護は学習だけなら有効にしなくてもいいかと思います。
スクリーンショット 2022-09-09 12.56.15.png

上の設定なら料金はここまでかからないと思います。データベースの作成をしていきます。
スクリーンショット 2022-09-09 12.57.09.png

これで作成することができました。作成したものをクリックをして
VPC、サブネット、セキュリティグループなどは合っているか確認してみてください。
スクリーンショット 2022-09-09 12.58.57.png

RDSは使わない時は停止をアクションから停止をしておきましょう。
本番環境なら停止はしない方がいいみたいです。

WebサーバーからRDSに接続

WebサーバーにMySQLをインストール

EC2のダッシュボードにいきます。
接続に使うインスタンスを選択してSSH接続をします。

スクリーンショット 2022-09-09 13.14.49.png

Downloads % chmod 400 AWS-infra-ec2.pem
Downloads % ssh -i "AWS-infra-ec2.pem" ec2-user@ec2-54-250-137-54.ap-northeast-1.compute.amazonaws.com
Last login: Thu Sep  8 06:55:04 2022 from softbank060068066230.bbtec.net

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

mysqlをインストールします。

[ec2-user@ip-10-0-7-161 ~]$ sudo yum -y install mysql 
#省略
インストール:
  mariadb.x86_64 1:5.5.68-1.amzn2 

完了しました!

WebサーバーからRDSへmysqlコマンドで接続

RDSの画面にいきデータベースを選択します。
今回接続したいデータベースを選択してエンドポイントをコピーします。

スクリーンショット 2022-09-09 13.21.56.png

[ec2-user@ip-10-0-7-161 ~]$ mysql -h aws-infra-web.cssrje6zwv8w.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 14
Server version: 8.0.28 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)]> 

-hでエンドポイントを指定
-uでログインするユーザー名を指定
マスターユーザーで接続するので先ほど決めたrootを選択
-pでパスワード入力です。

⚫︎補足
エラーになった場合はこのパターンが多いみたいです。

  1. データベースが利用可能になっていないパターン
  2. セキュリティグループが間違っている
  3. ユーザー名かパスワードが間違っている

資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0