【RailsをAWSにデプロイ②】RDS・PostgreSQLの作成・設定
- 2020.03.21
- AWSのEC2にRails6アプリケーションをデプロイしてみた
- EC2, PostgreSQL, Ruby, Ruby on Rails, プログラミング学習, 実践!開発コース/TOMONI×Lagoon

こんにちは、Mako(@makokamiya)です。
Startup Lab LagoonとTOMONIとのコラボ、「実践!開発コース」での学習記録です。
この記事はRailsアプリケーションをAWSのEC2にデプロイした流れをまとめてみた、忘備録です。
RDSとは
Amazon Relational Database Service
(Amazon RDS)とは
Amazon Relational Database Service
図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書
(Amazon RDS)は、リレーショナルデータベースである6種類の製品を、クラウド上で最適な動作条件で利用できるサービスです。
今回はPostgreSQLを使いました。
セキュリティーグループの作成
DBの作成の前に、DB用のセキュリティーグループを用意しておきます。
IAMユーザーでAWSマネジメントコンソールへログインし、検索窓で「EC2」を検索して選択します。

左のメニューバーから「セキュリティーグループ」を選択して「セキュリティーグループの作成」を選択します。

「セキュリティーグループ名」を任意の名前で入力します。
「インバウンドルール」の「タイプ」から「PostgreSQL」を選択し、「ソース」から「任意の場所」を選択します。

「Add rule」をクリックして、RDS用のセキュリティーグループの設定は終わりです。
これで、EC2インスタンスからPostgreSQLへ接続できるようになります。
IAMユーザーでログインしてRDSを選択
AWSマネジメントコンソールの検索窓から「RDS」を検索して選択します。

DBの作成・設定
左のメニューバーから「データベース」を選択して「データベースの作成」を選択します。

「データベースの作成方法」から「標準作成」を選択し、「エンジンタイプ」から「PostgreSQL」を選択します。

「テンプレート」から「無料利用枠」を選択します。

「DBインスタンス識別子」に任意の名前を入力します。
(例:mydbinstance)
「マスターユーザー名」に任意のログインIDを入力します。
「パスワードの自動設定」を選択するか、「マスターパスワード」に任意のパスワードを入力します。(忘れないようにしてください。)

「接続」のタブの「追加の接続設定」をクリックします。

「VPCセキュリティグループ」から「既存の選択」を選択し、タブから先ほど設定したDB用のセキュリティーグループ名を選択します。

「追加設定」のタブをクリックし、「データベース名」を 入力します。

最後に「データベースの作成」をクリックして、設定完了です。
PostgreSQLのインストール
まずはEC2インスタンスへSSH接続します。

こちらのサイトを参考にして、PostgreSQLのパッケージ等をインストールしました。
$ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
$ sudo sed -i "s/\$releasever/7/g" "/etc/yum.repos.d/pgdg-redhat-all.repo"
$ sudo yum install -y postgresql11
データベースへ接続
最後に、EC2インスタンスから直接PostgreSQLへログインして接続を確認します。
$ psql --host=<エンドポイント> --port=5432 \
$ --username=<マスターユーザー名> --dbname=<DB名>
下の画像のように、データベースの詳細画面で、「エンドポイント」「マスターユーザー名」「DB名」を確認できます。


パスワードを入力し、下記のように変わればPostgreSQLへの接続は完了です。
<DB名>=>
参考
・個人開発のための Webサービス公開マニュアル
・図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書
・Amazon Linux 2 にPostgreSQL 11 をインストールする
次回に続きまーす。