Heroku Advent Calendar 20155日めとして、4年以上Herokuで運用しているを会社のウェブサービスで、実際に利用しているアドオンを紹介したい
サービス紹介
ライティングレッスンとSkypeレッスンを組み合わせて、「読む、書く、聞く、話す」の語学習得に必要な4技能を学習することが出来るサービス
Rails4.2で運用されています。
はじめに
弊社サービスで利用しているアドオンは以下のとおりであり、そのアドオン一つ一つの紹介をしていきます。
ざっくり言うとこれを真似ると商用サービスの運用可能なアドオンのセットリストとなるのです。
- Adept Scale
- Airbrake Bug Tracker
- Deploy Hooks
- Fastly
- Heroku Postgures
- Librato
- MemCachier
- New Relic
- PaperTrail
- Redis Cloud
- Heroku Scheduler
- SearchBox Elasticsearch
- SendGrid
Adept Scale
Dyno(仮想サーバ)をオートスケースすることが出来るアドオン
レスポンス速度がx秒以上になったらDynoを増やす、レスポンス速度が早くなっていくと自動でDyno数を下げる事ができる。
一日の最大アクセスに合わせてDyno数を設定する必要がなく費用を抑えることが出来る
Airbrake Bug Tracker
Airbrake Bug Tracker
バグトラッカー、具体的には500エラーが発生した際にバックトレースを通知してくれる。
また同じ内容のバグまとめてくれるし
Slackへの通知やgithubと連携してバグをIssueとして書き込んでくれる
Deploy Hooks
デプロイ完了した場合にSlack(等)へ通知してくれるサービス
Fastly
CDNサービス、静的ファイルのアクセスをDynoからではなくCDNを通すことでサーバ負荷を下げることが出来る。
設定も簡単
HerokuのDynoはいくつかプランがあるが、商用サービスではStandard-2を使うことが多いだろう
Standard-2自体はかなりサーバのスペックが高いわけではないが、このように正しくアドオンを選択してやることで
商用環境でも十分に耐えうることが出来る。
Heroku Postgres
PostgreSQLのHeroku向けに最適化されている(らしい)
Heroku自体はPostgresのコミッターを雇っていたりしてPosgres推し
基本的にデイリーのバックアップをしてくれ、バックアップもレストアもコマンド一発で実施することが出来る
また、DBを2台設定することでホットスタンバイの設定することが出来、Premiumプランだと自動でフェイルオーバーしてくれる
Librato
Herokuシステムのメトリクスを表示してくれるアドオン
自前でいろいろメトリクスツール入れるより断然楽
MemCachier
memcachedのアドオン、キャッシュ機能として使っています
New Relic
パフォーマンス監視サービスの定番New Relicも当然Herokuのアドオンとして使える
PaperTrail
N台のDynoのログを一箇所に表示してくれる
定期的にログをS3に固めておいてくれるし、プランにより期間は変わるがリアルタイムにログの検索ができる
弊社で使用している7ドルのプランでも、1週間分のログをWebコンソール画面から正規表現を使ったり賢く検索することが出来る
特定のログが出たら、メール送信、Slack通知など設定することが出来る。
サービスダウン時や、クリティカルなバグが発生した場合にいち早く開発メンバーに通知することが出来る
Redis Cloud
Redisサービスのアドオン、セッションストアとして利用している
現在のところHeroku独自のRedisアドオンより安い
Heroku Scheduler
CronデーモンのAddon、バッチ処理の呼び出しに使う。
ちょっと癖があって設定時間を細かく設定することが出来ない、10分毎、1時間(10分単位)、1日(30分単位)
そのため曜日の設定とか、5分毎に実行などは出来ないのでバッチのアプリケーションで工夫する必要がある。
SearchBox Elasticsearch
検索エンジンElasticsearchのアドオン
Elasticsearchのアドオンはいくつかあるが、最小のプランで無料で使える、Elasticsearchのアドオンにkuromojiが使えるのが選定理由
SendGrid
定番メール送信サービス
バウンスメールの管理や、メールの送信ロジックを追うことが出来る
他のメール送信サービスのアドオンより若干高い。
まとめ
いかがだっただろうか、Herokuは無料で使ったことはあるけど本格的にサービスで使ったことがある人はそんなに居ないのではないだろうか?
実際に商用サービスで利用できるHerokuの構成をみたら、新規サービスではHerokuを使ってみたいと思ってもらえたら幸いである。
AWSは大変良いサービスだけど監視やバックアップを含んでサービスをちゃんと使いこなすにかなりのコストがかかるが、Herokuは若干金額が張るものの人的コスト考えたらかなりお得なサービスだと思う。
AWSに乗せただけの構成のセキュリティやバックアップ、監視設定をしていないサービスがけっこう多い。これはいかんと思いませんか?
さぁHerokuやベストティーチャーに興味が出てきたあなた
弊社ではRailsエンジニアを募集しています。気になったから下記WantedlyのURLへアクセス!
https://www.wantedly.com/projects/27659