本番環境でデータベースを作成する
ここまでサーバーを立ち上げて必要な設定をし、Rubyをインストールするところまで完了しました。
次は、Railsからアクセスされるデータベース関連の事柄について学習し、実際にデータベースを作成します。
Ruby on RailsのようなWebアプリケーションフレームワークにとって、データベースは必ずセットで必要になります。Webアプリケーションに関連するすべてのデータを保存しておく場所となるためです。たとえばTwitterの例で考えてみましょう。データベースがなければ、ユーザーの情報も、ユーザーが呟いた内容も、保存しておくことができません。
MariaDB
「MariaDB」とは、MySQLの派生として開発されているオープンソースソフトウェアです。MySQLとの互換性があります。今回、Amazon Linux 2ではMariaDBを使用します。
基本的にMariaDBとMySQLは同様のものと考えていいです。
データベースの設定と起動を行い、デプロイするアプリケーションのデータベースが適切に使えるようにします。
1つのEC2インスタンスに、Railsをはじめ必要なソフトをすべてインストールしています。MariaDBもそのうちの一つです。上の図で「データベースサーバー」と書かれているものが、MariaDBに当たります。MariaDBのようなソフトはデータベースの管理を行うため、そのように呼ばれることもあります。
MariaDBをインストール
Amazon Linux 2を利用している場合、MariaDBは 「yumコマンド」からインストールできます。
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56 mariadb-server mysql-devel
データベースを起動するために「systemctlコマンド」を利用します。
systemctlコマンド
は、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。
[ec2-user@ip-172-31-25-189 ~]$ sudo systemctl start mariadb
起動できたか確認するために、以下のコマンドを打ってみましょう。
[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) 」と緑色の表示がされれば、データベースの起動は成功です。
yumでインストールしたMariaDBには、デフォルトで「root」というユーザーでアクセスできるようになっていますが、パスワードは設定されていません。なので、パスワードを設定する必要があります。
パスワードは自身で決めることができます。ご自身が覚えやすいパスワードを設定しましょう。
[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キーを押す
データベースへの接続を確認しましょう
さきほど設定したパスワードが使えるか確認してみましょう。以下のコマンドを入力してください。
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p
「Enter password:」とパスワードを入力するように表示されるので、さきほど設定したパスワードを入力して、Enterキーを押してください。以下のように表示されれば、データベースの設定は終了です。
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」と入力すれば抜け出すことができます。
次回は手動デプロイについて投稿します。