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をインストール。
そしてmysqlコマンドで接続します。以下のコマンドを入力。
「mysql -h エンドポイント -u ユーザー名 -p」
-hはエンドポイントを指定。
エンドポイントは作成したDBのエンドポイントをコピーして貼り付け。
-uは接続するユーザー名(作成したDBのMasterユーザー名)を指定。
以下の画面になれば接続完了です!
これでWebサーバーとDBサーバーが完成しました。
では、いよいよポートフォリオをAWSにデプロイしていこうと思います!