データベースサーバーとは?
データを一つの場所に集約して、保管・管理するだけでなくSQLといった言語を使って、データの抽出・参照などもできる「箱」のようなシステムです。
データサーバーを利用することで大量のデータを様々な形式で保管することが可能です。データの管理と参照を行うのに、DBMSと呼ばれるソフトウェアを利用されます。DBMSはデータの保存場所、データの形式を考えることなく目的のデータを抽出、加工、利用が可能となっています。
リレーショナルデータベース(RDS)とは?
属性を列、組を行とする表(テーブル)の形でデータを格納するデータベースです。
AWSには、Amazon RDSと呼ばれるマネージドサービスが用意されています。AWS利用者はDBインストールやOSそのものの管理、及び障害発生時の対応処理を全てAWS側がサポートするため、簡単にデータベース構築が可能です。
RDS(MySQL)の作成
AWSには様々なRDSが用意されていますが、今回はMySQLを使用します。データベースの設定としては主に4つで、パラメータグループ、オプショングループ、サブネットグループ、データベースの作成をしていきます。
①パラメーターグループの作成
パラメーターグループは、MySQLを用意するデータベースの設定を行うための領域です。ここでは、データベースの性能や機能の追加を行うことができます。
パラメータグループファミリー | タイプ | グループ名 | 説明 |
---|---|---|---|
mysql8.0 | DB Parameter Group | sample-db-pg | 任意の説明 |
②オプショングループの作成
RDS固有の設定および、データベースの監視に関する設定を行います。
グループ名 | 説明 | エンジン | メージャーバージョン |
---|---|---|---|
sample-db-og | 任意の説明 | mysql | 8.0 |
③サブネットグループの作成
データベースサーバーを複数のAZ間に分散管理するのに使われる設定です。データベースインスタンスがVPC内のサブネットを定義することで、IPアドレスの範囲を指定することができます。
グループ名 | 説明 | VPC | AZ | サブネット |
---|---|---|---|---|
sample-db-subnet | 任意の説明 | sample-vpc | 1a, 1c | sample-subnet-private(01, 02) |
④ データベースの作成
テンプレートは学習用のため、無料枠を選択します。AWSで可用性と耐久性を上げるために、マルチAZ構成を行うのが一般的です。つまり、常に稼働しておくDBと何かの原因で故障した場合に、すぐに予備のに切り替えることのできるDBの二つを作成します。今回は無料枠を選択したため、「単一DBインタンス」がすでに選択されますが、マルチAZ構成を行いたい場合は、他の選択肢を選択します。
DBインスタンス識別子は"sample-db"とし、マスターユーザー名は"admin"としました。マスターパスワードは、DBインスタンスに接続するのに使うパスワードのため、忘れずにする必要があります。
無料枠を選択したため、デフォルトでdb.t3.microが選択されていますが、このまま使用します。
VPCは作成した"sample-vpc"を選択して、セキュリティグループ"default"を選択します。
データベース認証では、パスワード認証を選択します。データベース認証を行うときにマスターユーザーで接続できます。
追加の設定では、以前作成した、DBパラメーターグループとオプショングループを選択します。
動作確認
まずは、SSH通信で"web01"に接続を行います。
$ ssh web01
Amazon Linnux2には、MySQLが含まれていないためまずはインストールし、データベースに接続できるかを確認していきます。
$ sudo yum -y install mysql (MySQLインストール)
データベースをインストールしたら、AWSコンソール画面に戻って、RDSのダッシュボードからデータベースの中にある"sample-db"をクリックします。そにあるインスタンス詳細画面から、「接続とセキュリティ」タブにあるエンドポイントをコピーして、以下のコマンドを実行するとデータベースサーバーに接続できます。
$ mysqladmin ping -u admin -p -h XXXXXXXXXXXXXX
「mysql is alive」が表示されていれば、データベースに接続できています。
参考
AWSではじめるインフラ構築入門 翔泳社出版