【結論】
・HerokuとはPaaSと呼ばれるアプリケーションを
実行する為のプラットフォーム
・AWSなどの様な複雑なセットアップ作業を経ずに、
簡単にアプリケーションをインターネットに公開出来るサービス
【目次】
- ウォンテッド・スコアが100を超えない・・・
- Herokuとは
- 1:Herokuのアカウント登録
- 1:Heroku CLIのインストール
- 2:Gemfileの編集
- 3:database.ymlの編集
- 4:config/environments/production.rbの編集
- 5:ターミナルからHerokuにログイン
- 6:アプリを登録
- 7:アプリのデプロイとマイグレーション
- 《今日の学習進捗(3年以内に10000時間に向けて)》
【本題】
ウォンテッド・スコアが100を超えない・・・
そろそろ本格的に就活を進めて行こうという事で、
以前に登録していたwantedlyのプロフィールを詰めていくことにしました。
一先ず、下記の記事を参考にウォンテッド・スコア100超えを目指したのですが・・・
全然上がらない(笑)
紹介文は文字数制限一杯まで埋めましたし、他の項目も全て埋めたのに
80くらいでストップしてしまいました・・・
何か他に手立てが無いか模索したところ、
ポートフォリオを一つ追加すると、+5くらい一気に上がることに気づきました!
なので、まだデプロイのやり方を知らなかった初期に作ったアプリ達も
片っ端からデプロイして、公開する策にうって出ました。
但し、一つづつAWSにデプロイするのは、非常に面倒だったので、
比較的デプロイが簡単に出来るという噂に「Heroku」を今回試すことにしました。
※ちなみに後で気づいたことですが、プロフィールの公開範囲を
「wantedly登録ユーザー」から「一般公開」に広げると、一気に+20くらい上がりました・・・
Herokuとは
PaaSと呼ばれるアプリケーションを実行する為のプラットフォームです。
AWSなどでアプリを公開しようとすると、下記のような非常に煩雑な処理が必要になります。
・インスタンス作成
・IP割り当て
・Linuxサーバーの構築
・MySQLのセットアップ
・Nenginxのセットアップ
・unicornのセットアップ
・Capistranoのセットアップなどなど・・・
まだ複雑なだけなら良いのですが、問題はエラーが発生した時です。
特に初心者の頃は、それぞれが何をどうしているのかさっぱり分からない(今も完全に理解してない)ので
エラーが起きても原因が特定出来ずに、非常に苦しめられます・・・
ryoutaku-jo.hatenablog.com
※体験談
そこで登場するのが「Heroku」です!
Herokuは、本来であれば複雑な処理を行って形成するアプリケーションを
公開する為の土台(プラットフォーム)を、WEB上で提供してくれるサービスになります。
なので、面倒な処理は一切必要なし!
・・・と思っていたのですが、多少準備は必要なので、それをここからまとめます。
※注意※
下記は、「Rails 5.2.2」で、rails newした際に
「-d mysql」のオプションを指定したアプリで実行しています。
環境によっては、同じように動作しないかもしれないので、ご注意ください
1:Heroku CLIのインストール
Herokuのコマンドを使える様にする為に、
下記サイトからHeroku CLIをインストールします。
The Heroku CLI | Heroku Dev Center
2:Gemfileの編集
Herokuを利用するにあたってgemfileを編集していきます
# gem 'mysql2', '>= 0.4.4', '< 0.6.0' 〜中略〜 group :development, :test do gem 'mysql2', '>= 0.4.4', '< 0.6.0' end
まず、データベースに関するgem(今回はmysql2、デフォルトならsqlite3)を、
コメントアウトして、「group :development, :test do」に追加します。
これは、Herokuが「PostgreSQL」というデータベースを利用しているので、
本番環境では別のgemを読み込ませる必要があるからです。
「PostgreSQL」のgemは本番環境だけ読み込めれば良いので、
下記のように追加します。
group :production do gem 'pg' end
次にbundle installですが、下記のコマンドで実行します。
bundle install --without production
これは、「group :production」で指定した先ほどの
「gem 'pg'」以外のgemだけインストールする為のコマンドです。
3:database.ymlの編集
Railsではデータベースに接続する為の情報を、
config/database.yml というファイルに保存しているのですが、
デフォルトだとsqlite(今回はmysql)に適した記述になっているので、
そちらを編集します。
production: <<: *default adapter: postgresql encoding: unicode pool: 5
adapter: postgresqlが、postgresqlのデータベースに接続する為の記述
encoding: unicodeが、文字コードをunicodeで利用する為の記述
pool: 5が、データベースに接続出来る上限を5に制限する記述です。
※5である理由は不明だが、どのサイトも5で説明されていたのでデフォルト値?
4:config/environments/production.rbの編集
Railsの初期状態だとプリコンパイルがオフになっているので、
下記の様に設定を変えます。
config.assets.compile = true
変えていないと、デプロイ時に下記の様なエラーが発生します。
5:ターミナルからHerokuにログイン
ターミナルで下記コマンドを実行して、Herokuにログインします。
heroku login
6:アプリを登録
URLにもなるアプリ名を登録します。
heroku create mini-blogsapp
※「mini-blogapp」は任意です
↑成功
↓失敗(他に登録されている名前と重複)
7:アプリのデプロイとマイグレーション
下記のコマンドでアプリをデプロイさせます。
git push heroku master
ちなみに、リポジトリ名と先ほど設定した名前が異なると、
下記の様なエラーが出ます。
そして下記のコマンドで本番環境のマイグレーションを行います。
heroku run rake db:migrate
無事デプロイできました!
《今日の学習進捗(3年以内に10000時間に向けて)》
就活とデプロイと Dockerと基本情報技術者試験対策。
学習開始からの期間 :84日
今日までの合計時間:840h
一日あたりの平均学習時間:10h
今日までに到達すべき目標時間:767h
目標との解離:73h
「10,000時間」まで、
残り・・・「9160時間!」