Code Serendipity

Keyword: Ruby, Python, javascript, RoR, heroku, AWS...

Code Serendipity

Keyword: Ruby, Python, wordpress, javascript, AWS...

Heroku×Railsまとめ

基本はAWSRailsアプリを運用することが多かったのですが、 インフラ面に割く時間を減らしてアプリケーション開発自体に集中したいな、herokuでも東京リージョン使えるようになったらしいしな... ということで、いろいろ調べてみたまとめです。

herokuは「遅い」イメージがありました。 freeプランでしか使ったことがなかったし、 周囲のエンジニアさんも東京リージョンないから使いません、って言っている人が多かったし...。

herokuのメリット

  • DBのバックアップが簡単
  • 環境構築が容易
  • デプロイが簡単
  • アドオンが便利、外部ツールの導入がラク 初期コストが安い スケールアップが簡単

shelfy.co.jp

www.sakagami3.com

herokuでのBower運用方法

jangajan.com

qiita.com

herokuにbuildpackを追加

heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git

config/initializers/bower_rails.rbにて

BowerRails.configure do |bower_rails|
  bower_rails.install_before_precompile = true
end

とすることで assets:precompileの前にbower:installが実行されるようになります。

Herokuデプロイ時に、RubyだけでなくNodeのビルドも実行されるよう

.buildpack というファイルをルートディレクトリに作成して

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby

Node.jsを入れるようにします。 package.jsonも作成し、バージョン情報を指定します。

あとはpushするだけ。application.rbに

config.assets.paths << Rails.root.join('vendor', 'assets', 'components')

load pathを加えることを忘れずに!

べんりな機能

Automatic deploys 機能

指定したブランチに変更が Push されると、自動的にデプロイさる。 ステージング環境に自動的にデプロイされるのはべんり。

Review apps 機能

Pull Request ごとにアプリケーションが展開されます。Pull Request を作成すると新しい環境が立ち上がり、Pull Request を閉じると自動的に消えます

という機能らしいです。便利ですね。

なぜ AWS を捨てて Heroku を選んだのか - シェルフィー株式会社シェルフィー株式会社

heroku を導入している日本企業

  • wantedly

あんま出てこなかったけど、

増えてるらしいですね。

東京リージョンとは何なのか、誰でも使えるの?

セールスフォースが提供するエンタープライズプランでのみ使用可能だそうです。Eduプラン作ってくれないかな。

blog.flect.co.jp

そもそもdynoとかって何なの?heroku用語

構築・運用の必須知識! Herokuアプリケーションの実行プラットフォーム「Dyno」を徹底的に理解する (1/3):CodeZine(コードジン)

Dynoとは、Herokuアプリケーションが実際に実行されるプラットフォームのことで、その実体は、Amazon EC2の巨大インスタンス上で動作する軽量Linuxコンテナです。

ブラウザからアップロードしたファイルをDynoのディスク上に保存しても、そのファイルはDynoがシャットダウンした際に失わることに注意です。Dynoは常にHerokuのDynoManagerによって監視されており、毎日1度は再起動されます。データを保存する際には必ずHeroku Postgresなどの外部ストレージを利用します。また、DynoはHerokuの課金のための単位でもあり、DynoのサイジングをどのようにするかはHerokuを運用する上で大きなポイントです。

Dynoには1X、2X、M、Lといったサイズが有り、Dynoが1時間起動している状態である、Dyno Hourという概念に基づいて設定されています。

くわしくは

www.heroku.com

知っておきたい!Herokuを使う上では当たり前?の16の常識 | mah365

をご覧ください。