miyamon_good’s blog

エンジニア×パチンコ・パチスロ

AWS⑥DBサーバーの構築

本日は、DBサーバーを構築していきます!

 

まずは、今までしてきたことを軽くおさらい、復習します。

・パブリックサブネットにWebサーバーを設置し、

Route 53を使いドメイン名でWebサーバーにアクセスが可能に。

・プライベートサブネットにDBサーバーを設置する理由はセキュリティを高める目的で、インターネットから直接アクセスできないようにするため。

 

では、実装に向けての予備知識を。

RDS

AWSのフルマネージドなリレーショナルデータベースのサービス」

構築運用の手間を軽減し、コア機能の開発に注力できるというメリットがある。

利用可能な代表的エンジンは、MySQL,PostgreSQL,Oracleなど複数。

可用性向上の為、MasterとSlaveによる複数のアベイラビリティゾーンでの運用(サービスを停止させないための仕組み)や、リードレプリカを簡単に構築する(DBの読込と読書を区別することでDBの負荷を下げる)ことでパフォーマンスを向上させることが出来る。また、自動的にバックアップやソフトウェアメンテナンスを行い、監視等もしてくれる非常に便利なサービス。

 

では、実装していきます!

まず、プライベートサブネットを作成していきます。

理由は、DBサーバーを設置するにあたり、プライベートサブネットをもう1個作りアベイラビリティゾーンを作成する必要があるからです。

RDSは設置する時、DBの冗長化ができるように複数のアベイラビリティゾーンを必要とします。1台のDBに問題が生じても他のDBがあることによりシステムがダウンしないようにするため、RDSは複数のアベイラビリティゾーンにDBを設置することが推奨されていて、RDSでは複数のDBを別のアベイラビリティゾーンに作れるように複数のアベイラビリティゾーンにサブネットを用意しておくという約束がある為、今回作成するDBは1つですがサブネットを追加で用意しておくという訳です。

 

では、プライベートサブネットを作成。

CIDRブロックは10.0.21.0/24として、アベイラビリティゾーンを1cで作成完了。

 

次にRDSの作成準備をしていきます。

準備工程は4つ。

1,セキュリティグループの作成

RDSへのファイアウォール設定。

必要なところからのみアクセスできるようにする。

今回はWebサーバーからMySQLでのみ接続できるようにしたいので、

タイプはMySQL/Auroraを選択。

ソースにWebサーバーのセキュリティグループを選択。

これによりWebサーバーのインスタンスから接続できるようになる。

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

VPC内にあるサブネットを複数指定して、RDSインスタンスの起動するサブネットを指定する設定。複数のサブネットを使用する為、RDSを作成するときにはこれを作成しないといけない。

今回は作成した2つのプライベートサブネットを選択。

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

RDSではDBの設定ファイルを直接設定できないのでDBの設定値を指定する。

今回はMySQL8.0を選択。

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

DBの機能を設定する。

エンジンにはmysqlを指定し、メジャーエンジンは8.0を選択。

これで下準備は完了です。

 

では、DBエンジンを作成していきます。

エンジンはMySQLを選択し、作成したVPC、サブネットグループ、セキュリティグループを選択し作成。これでRDSインスタンスの作成完了!

 

次に、WebサーバーにMySQLをインストールし、RDSへmysqlコマンドで接続できるようにしていきます。 

ターミナルでsshによるログイン後、以下コマンドでmyqlをインストール。

「sudo yum -y install mysql」 

そしてmysqlコマンドで接続します。以下のコマンドを入力。

mysql -h エンドポイント -u ユーザー名 -p」

-hはエンドポイントを指定。

エンドポイントは作成したDBのエンドポイントをコピーして貼り付け。

-uは接続するユーザー名(作成したDBのMasterユーザー名)を指定。

以下の画面になれば接続完了です!

f:id:miyamon_good:20201222145611p:plain

 

 

これでWebサーバーとDBサーバーが完成しました。

では、いよいよポートフォリオAWSにデプロイしていこうと思います!