AWS Rails 6 + MySQL + Nginx な環境の作成方法 データベース構築編

AWS

AWS を使用して Rails 6 + MySQL + Nginx という基本的なよくあるサーバーの構築方法をご紹介します。

1つの記事に書くには、長くなるので3部作でお送りいたします。

  1. ネットーワーク環境編
  2. データベース編 ← 今回はここ
  3. サーバー編

データベースサーバーは、Railsからのアクセスだけに制限してプライベートなものにするため
プライベートなサブネットにMySQLのデータベースサーバーを作成します。

データベースサーバーは、AWSのRDSを使用します。

プライベートなサブネットにデータベースを作成することで、同じVPC内からのみ通信できるようになり、セキュアなものにできます。

Step.1 プライベートなサブネットの作成

ネットワーク環境編で作成したサブネットと別で、もう2サブネットの作成をします。

※2つ作成するのは、次の工程RDSのマルチ-AZによる仕様のためです。

各項目適当なもの入力

別のアベイラビリティーゾーンでもう1つ作成します。

作成したサブネットがプライベートになっているか確認してみます。

それと、ルートにインターネットゲートウェイがアタッチされていないことを確認しておきます。

アタッチされているとインターネットからの接続ができてしまうので、プライベートでは無くなってしまいます。逆に、アタッチしていないとインターネットからの接続ができないようになります。

されていないので、プライベートなサブネットであると確認がとれました。

※アタッチされているとこのようにインターネットゲートウェイがアタッチされていると表示されます。

Step2. データベース作成

データベースはAWSのRDSのMySQLを使用します。

※RDSはデータベースのCPU使用率・空きストレージなど可視化できる便利なサービスです。

RDSのダッシュボードからデータベースの作成していきます。

データベースの作成方法標準作成エンジンタイプMySQLを選択します。

無料利用枠内で使用したいのでテンプレート無料利用枠を選択しておきます。

データベースへの認証情報を設定します。

※認証情報は忘れないようにしてくださいね。

DBインスタンスサイズ・ストレージはデフォルトの設定のままでいきます。

データベースの接続設定をしていきます。

追加設定ログのエクスポートでログをCloudWatchで見れるよなりますので、チェックを入れおきましょう。

これで、データベースの作成をしましょう。

Step3. データベースのセキュリティ設定

今回作成したEC2インスタンスからの通信のみ通すような設定をしていきます。

先ほど、作成したセキュリティーグループのインバウンドルールを編集します。

EC2インスタンスのセキュリティーグループを選択することで、EC2インスタンスが許可した通信はデータベースサーバーへの通信もできるようにすることができます。

Step4. EC2からデータベースサーバーに接続

EC2インスタンスから、mysqlコマンドで接続できるか確認します。

まずは、mysqlをインストールしておきます。

$ sudo yum install -y mysql

以下のコマンドでデータベースに接続できます。

$ mysql -u root -p -h ’データベースのエンドポイント’

ユーザーとパスワードは、データベース作成したさいの認証情報になります。

エンドポイントは、RDSの概要から確認できます。

$ mysql -u root -p -h sample-rds.csrgnfmegbh3.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.20 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

実行できればデータベース作成完了です。

お疲れ様でした。

コメント

タイトルとURLをコピーしました