すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

無料で簡単にデプロイできるRender.comとは?

この記事で出来るようになること

Render.comへの登録方法

Render.comにアクセスすると以下の画面が表示されます。GitHubのボタンをクリックして下さい。

Render.comの登録画像

するとGitHubとの連携画面が表示されるので、「Authorize Render」のボタンをクリックして下さい。

GitHubとの連携画像

続いて「COMPLETE SIGN UP」をクリックして下さい。

登録確認画面の画像

登録が完了すれば、以下のように登録完了画面が表示されます。

登録完了画面の画像

登録したメールアドレスに招待URLが届いているので、メール内のリンクをクリックしましょう。

メールに届いている画像

以下のようなダッシュボード画面が表示されれば、「New Web Service」をクリックして下さい。

未登録時のダッシュボード画面

続いてWebサービスのデプロイ方法について選択する画面が表示されます。

Build and deploy from a Git repository を選択して「Next」をクリックして下さい。

デプロイまでの選択方法

Webサービスの作成画面が表示されるのでサイドバーにある「Configure account」をクリックして下さい。

GitHubとの連携の導線が表示されている画像

以下の画面はRenderにGitHubのレポジトリの情報をインストールする画面になります。

  • 「All repositories」はアカウントが持つ全てのレポジトリをインストールできます。
  • 「Only select repositories」は指定したレポジトリのみをインストールできます。

特定のレポジトリのみをインストールしたい等の要望がなければ「All repositories」を選びましょう。
installボタンをクリックして下さい。

render.comにGitHubのレポジトリをインストールする画面

GitHubとの連携が完了すると、「Connect a repository」と書かれている配下にGitHubのレポジトリの一覧が表示されます。

この後の作業でDBを作成する際にレポジトリ名が必要になるので、Renderにデプロイしたいレポジトリをチェックしておきましょう。

連携したGitHubのレポジトリ一覧の画像

Renderへデプロイできるように準備しよう

PostgreSQLをインストールしよう

Macの場合

ターミナル
1
brew install postgresql

Cloud9の場合

ターミナル
1
sudo yum -y install postgresql postgresql-server postgresql-devel postgresql-contrib

Gemを追加しよう

本番環境でPostgreSQLを使用できるようにしましょう。
以下のコードをGemfileの末尾に追加して下さい。

1
2
3
group :production do
  gem 'pg', '1.2.3'
end

gemの追加が終わったら、 bundle install をしましょう。

本番環境用にDBの設定を変更しよう

database.yml ファイルを開きましょう。

以下のように database.yml ファイルにあるproduction環境のグループを編集しましょう。

database.yml
1
2
3
4
5
production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  url: <%= ENV['DATABASE_URL'] %>

デプロイ用の設定ファイルを追加しよう

railsアプリケーションのルートディレクトリに移動して、以下のコマンドを実行して下さい。

ターミナル
1
touch ./bin/render-build.sh

bin 直下にある 作成した render-build.sh ファイルを開きましょう。

以下のように編集して下さい。

render-build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env bash
# exit on error
set -o errexit

echo "render-bulid.sh: start"

echo "installing bundle"
bundle install

echo "precompiling assets"
bundle exec rake assets:precompile
bundle exec rake assets:clean

echo "executing migrate"
bundle exec rails db:migrate

echo "render-build.sh: done"

※ ここまでの作業が終わった方は、GitHubにpushしてmasterブランチにマージしておきましょう

Webpackerを使う場合

ここから先はアプリケーションにWebpackerを使用している方のみ作業を行なって下さい。

デプロイ用の設定ファイルを編集しよう

webpackerをコンパイルするために以下の内容を追加しましょう。

bin/render-build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env bash
# exit on error
set -o errexit

echo "render-bulid.sh: start"

echo "installing bundle"
bundle install

echo "installing JavaScript packages"
yarn install
echo "compiling webpacker assets"
bundle exec rails webpacker:compile
echo "precompiling assets" bundle exec rake assets:precompile bundle exec rake assets:clean echo "executing migrate" bundle exec rails db:migrate echo "render-build.sh: done"

package.jsonを編集しよう

以下のファイルのように、 node のバージョンを指定しましょう。

| スニペットの説明 -->
1
2
3
4
5
6
7
8
{
  "name": "xxxxxx",
  "private": true,
"engines": {
"node": "16.x"
},
... }

webpacker.ymlを編集しよう

※ webpackerを利用していない方はスキップして下さい。

webpacker.ymlを以下のように修正しましょう。

1
2
3
4
5
6
7
8
9
10
11
production:
  <<: *default

  # Production depends on precompilation of packs prior to booting for performance.
  compile: false

  # Extract and emit a css file
  extract_css: false

  # Cache manifest.json for performance
  cache_manifest: true

※ ここまでの作業が終わった方は、GitHubにpushしてmasterブランチにマージしておきましょう!

本番環境の作成

ここからは render.com 上で本番環境のサーバーを準備します。

DBサーバーを作成しよう

render.com にアクセスして、ヘッダーの「New」と書かれているタブをクリックしましょう。
クリックして表示される「PostgreSQL」と書かれているボタンをクリックしましょう。

Newタブを押した後のドロップダウンリスト画像

以下のようなDB作成画面が表示されます。

項目は以下の画像のように記入しましょう。

※ Instance Typeに「Free」を選択した場合、注意が必要です。DBは作成後90日でアクセスできなくなり、その2週間後にはデータも削除されるので気を付けましょう。

入力が終われば「Instance Type」を「Free」に設定し、赤枠で囲われている「ゴミ箱アイコン」を二つクリックしてから「Create Database」をクリックしましょう。

DB作成画面の画像

Webサービスを作成しよう

render.com にアクセスして、ヘッダーの「New」と書かれているタブをクリックしましょう。
クリックして表示される「Web Service」と書かれているボタンをクリックしましょう。

Newタブを押した後のドロップダウンリスト画像

以下のようなWeb Service作成画面が表示されます。

項目は以下のように記入しましょう。

項目 内容
Name レポジトリ名
Region Singapore(Southeast Asia)
Branch master
Runtime Ruby
Build Command ./bin/render-build.sh
Start Command bundle exec puma -C config/puma.rb

以下の画像を参考にして下さい。

Web Service作成画面の画像

入力が終われば「Create Web Service」をクリックしましょう。

Web Service作成決定ボタンの画像

ダッシュボードの画面に戻って、以下の画像のように TYPE列が「Web Service」と「PostgreSQL」の二つが作成されていることを確認しましょう。

環境変数を設定しよう

「Web Service」と「本番環境のDB」を紐付けるために、環境変数を設定する必要があります。
「Web Service」の行をクリックして、「Web Service」の設定画面に移動しましょう。

ダッシュボード画面の画像

サイドバーにある「Environment」をクリックして、環境変数の入力画面が表示されれば完了です。

環境変数を入力する画面

以下の3つの環境変数を追加しましょう。

  • DATABASE_URL
  • RAILS_MASTER_KEY
  • NODE_OPTIONS

DATABASE_URLを追加しよう

DATABASE_URLは先ほど作成したPostgreSQLサーバーの設定から取得できます。

別タブでダッシュボード画面にアクセスし「PostgreSQL」の行をクリックして、「PostgreSQL」の設定画面に移動しましょう。

ダッシュボードの画像

「PostgreSQL」の設定画面に移動したら下にスクロールして、以下の画像を参考に「Internal Database URL」の「コピーアイコン」をクリックしましょう。

render.comのコピーアイコンの画像

コピーアイコンをクリックしたら環境変数を追加する画面に移動して以下のように入力しましょう。

Key Value
DATABASE_URL 先ほどコピーした「Internal Database URL」を貼り付け

RAILS_MASTER_KEYを追加しよう

RAILS_MASTER_KEYはアプリケーションのファイルから取得できます。
config/master.key ファイルを開くとランダムな文字列が保存されています。

そのランダムな文字列をコピーしましょう。

コピーすれば環境変数を追加する画面に移動して、「Add Environment Variable」をクリックして以下のように入力しましょう。

Key Value
RAILS_MASTER_KEY 先ほどコピーした「ランダムな文字列」を貼り付け

NODE_OPTIONSを追加しよう

Key Value
NODE_OPTIONS --openssl-legacy-provider

入力が完了すれば「Save Changes」のボタンをクリックしましょう。

環境変数の保存画面

保存が完了すれば、ダッシュボード画面に移動しましょう。
設定を変更したので、「Deploy Progress」と表示されています。Deploy Progressとは、デプロイしている実行中という意味になります。デプロイが完了するまで5分ほどかかるので待ちましょう。

ダッシュボード画面の画像

完了すれば以下の画像のように「Deploy succeeded」と表示されれば完了です。Webサービスの行をクリックし設定画面に移動して下さい。

Deploy succeededの表示画像

移動するとページ上部にリンクが表示されています。以下の画像を参考にリンクをクリックし、デプロイした画面が表示されれば完了です。

本番環境のURLが載っている画像

また新規機能を新しく追加して本番環境にデプロイしたい場合は、GitHubにある対象レポジトリのmasterブランチにマージされたタイミングで自動デプロイされます。

データベース管理アプリケーションで本番DBを操作しよう

この章では、PostgreSQL専用のGUI DB管理ツールであるpgAdmin4を使って本番DBを操作できるようにします。

pgAdmin4を使用すると、ユーザーはデータベース構造の閲覧、データの追加、削除、編集、インデックスの管理、パフォーマンスの最適化、SQLクエリの実行など、一連のデータベース管理タスクを行うことができます。

pgAdmin4をダウンロード

それでは早速pgAdmin4をダウンロードしていきましょう。

pgAdmin4のダウンロードページにアクセスして下さい。

ダウンロード画面が表示されると以下の画像を参考に、ご自身のパソコンが「Mac」の方は「macOSのアイコン」をクリックしてください。

ご自身のパソコンが「Windows」の方は「Windowsのアイコン」をクリックしてください。

pgAdmin4のダウンロード画面

ツールのバージョン選択画面に移動するので、最新のバージョンを選んでクリックしましょう。

バージョンを指定したダウンロード画面

以下の画像を参考に、ツールをダウンロードしましょう。

ダウンロードには5分ほどかかります。

ダウンロード画面

ダウンロードが完了すれば、ツールを起動させましょう。

「Agree」をクリックすると、デスクトップアプリとして利用可能になります。

Agree選択画面

少し時間が経つと、以下の画面のようにソフトウェアをApplicationフォルダに移動するように指示の画面が表示されます。

アプリケーションフォルダに移動させましょう。

Applicationディレクトリ移動画面

アプリケーションに移したpgAdmin4を起動させましょう。

pgAdmin4に本番DBサーバーを登録しよう

起動後、「Add New Server」をクリックして下さい。

pgAdmin4のダッシュボード画面

「Name」の部分にアプリケーションのレポジトリ名を書きましょう。

PgAdmin4にアプリケーション名を入力する画像

アプリケーション名を記入後、以下のように「Connection」タブをクリックしましょう。

Connectionタブの画像

Connectionタブをクリックすると、以下の項目が表示されます。この画面で編集するのは「Host name/address」、「Username」、「Password」の3つの情報です。この情報はどこにあるかというと、先ほど登録したRenderのDBサーバーの設定画面に記載されています。

それでは、Renderの設定画面を確認していきます。
※以下のpgAdmin4の画面はそのままにしておきましょう。

Connectionタブの表示画像

Render.comを開いて、DBの設定画面に移動しましょう。
DBの連携情報が載っている部分までスクロールして下さい。

以下のようにPSQL Commandのコピーアイコンをクリックして、コピーして下さい。

psqlコマンドの解説画像

コピーしたPSQLコマンドの内容は以下の構成となっております。

DBの接続情報の画像

❶「Password」❷「Host name/address」❸「Username」の3つの情報を、以下の画像を参考にConnectionタブのぞれぞれの情報に入力しましょう。

入力後、Saveをクリックして本番DBサーバー情報を保存しましょう。

Connectionへの入力画像

保存に成功すれば、サイドバーの「Servers」に保存されたレポジトリ名が追加されることを確認しましょう。

サイドバーの画像

pgAdmin4の使い方

この章では、テーブルの一覧の見方とレコードの読み取り、書き込みについて学びましょう。

まずテーブル一覧を表示するためには、以下の画像の構成でテーブル一覧まで展開する必要があります。
(Servers -> レポジトリ名 -> Databases -> DB名 -> Schemas -> public -> Tables)

テーブル一覧の画像

テーブルのレコード一覧を取得するには、表示したいテーブル名を右クリックした後に「View/Edit Data -> All Rows」の順で展開し「All Rows」をクリックするとレコードの一覧が表示されます。

レコード一覧の表示までの流れの画像

以下の画像のように何も表示されなかった場合は、右上のアイコンをクリックして下さい。

レコード結果が何も表示されていない場合の画像

画面右下の部分にレコードの一覧が表示されます。

レコード一覧の画像

左上の +アイコンをクリックすると、レコードの追加が行えます。

+アイコンの画像

新しく追加した行に各項目に情報を入力していきましょう。全ての入力が終えると、保存ボタンを押すとレコードが保存されます。

レコードの保存画像