AWS (本番環境でのデータベース作成)
データベースの種類の一覧
- 階層型データベース
- ネットワーク型データベース
- リレーショナルデータベース
この中でもっとも利用されているのが「リレーショナルデータベース」です。
エクセルの表のような形で情報を整理し、管理できます。そして、このリレーショナルデータベースを管理するソフトウェアは「リレーショナル・データ・ベース・マネジメント・システム(RDBMS)」と呼ばれます。
そんなRDBMSの中でも代表的なものの1つが「MySQL」です。
MySQL
「MySQL」とは、Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用できます。
そして、MySQLから派生した「MariaDB」というデータベースがあります。
MariaDB
「MariaDB」とは、MySQLの派生として開発されているオープンソースソフトウェアです。MySQLとの互換性があります。今回デプロイカリキュラムで使用しているAmazon Linux 2ではMariaDBを使用することになっています。
基本的にMariaDBとMySQLは同様のものと考えていただいて差し支えありません。
MariaDBを起動しよう
本項ではデータベースの設定と起動を行い、デプロイするアプリケーションのデータベースが適切に使えるようにします。
今回のシステム構成は、以下のような形になっています。
1つのEC2インスタンスに、Railsをはじめ必要なソフトをすべてインストールしています。MariaDBもそのうちの一つです。上の図で「データベースサーバー」と書かれているものが、MariaDBに当たります。MariaDBのようなソフトはデータベースの管理を行うため、そのように呼ばれることもあります。
それでは、順に進めてましょう。
MariaDBをインストールしましょう
Amazon Linux 2を利用している場合、MariaDBは 「yumコマンド」からインストールできます。
以下のコマンドを実行してください。
1 |
データベースを起動しましょう
データベースを起動するために「systemctlコマンド」を利用します。
systemctlコマンド
systemctlコマンドは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。
1 |
[ec2-user@ip-172-31-25-189 ~]$ sudo systemctl start mariadb |
起動できたか確認するために、以下のコマンドを打ってみましょう。
1 2 3 4 5 6 7 |
[ec2-user@ip-172-31-25-189 ~]$ sudo systemctl status mariadb ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled) Active: active (running) since 土 2020-02-29 07:00:11 UTC; 7s ago Process: 5993 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 5957 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) |
「active (running) 」と緑色の表示がされれば、データベースの起動は成功です。
データベースのrootパスワードの設定しましょう
yumでインストールしたMariaDBには、デフォルトで「root」というユーザーでアクセスできるようになっていますが、パスワードは設定されていません。なので、パスワードを設定する必要があります。
パスワードは自身で決めることができます。ご自身が覚えやすいパスワードを設定しましょう。
0から始まるpasswordは読み込んでくれないケースが多いので避けましょう。(例:「0001password」などはNG)
設定したパスワードはこの先にある作業でも扱うので、メモアプリなどに控えておきましょう。
それでは、以下のコマンドを実行しましょう。
1 |
[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/bin/mysql_secure_installation |
その後、以下のステップで実行します。
手順 | やること |
---|---|
① | Enter current password for root (enter for none): 」と表示されたらEnterキーを押す |
② | 「Set root password? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す |
③ | 「New password:」と表示されたら自身で決めたパスワードを入力(※とくに画面には何も表示されませんが入力できています) |
④ | 「Re-enter new password:」と表示されたら、同じパスワードを入力(とくに画面には何も表示されませんが入力できています) |
ここで「... Success!」と表示されればパスワードの設定は完了です。しかしながら、続けて細かい設定について答える必要があります。
手順 | やること |
---|---|
① | 「Remove anonymous users? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す |
② | 「Disallow root login remotely? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す |
③ | 「Remove test database and access to it? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す |
④ | 「Reload privilege tables now? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す |
プロンプトが表示されたら設定は完了です。
データベースへの接続を確認しましょう
さきほど設定したパスワードが使えるか確認してみましょう。以下のコマンドを入力してください。
1 |
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p |
「Enter password:」とパスワードを入力するように表示されるので、さきほど設定したパスワードを入力して、Enterキーを押してください。以下のように表示されれば、データベースの設定は終了です。
1 2 3 4 5 6 7 8 9 |
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 142 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> |
「exit」と入力すれば抜け出すことができます。