34
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HerokuAdvent Calendar 2015

Day 5

オンライン英会話サービスの本番環境で使うAddOnを公開

Last updated at Posted at 2015-12-05

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

34
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?