【RailsをAWSにデプロイ②】RDS・PostgreSQLの作成・設定

【RailsをAWSにデプロイ②】RDS・PostgreSQLの作成・設定

こんにちは、Mako(@makokamiya)です。

Startup Lab LagoonTOMONIとのコラボ、「実践!開発コース」での学習記録です。

この記事はRailsアプリケーションをAWSのEC2にデプロイした流れをまとめてみた、忘備録です。

RDSとは

Amazon Relational Database Service
(Amazon RDS)とは

Amazon Relational Database Service
(Amazon RDS)は、リレーショナルデータベースである6種類の製品を、クラウド上で最適な動作条件で利用できるサービスです。

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

今回は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 をインストールする

次回に続きまーす。