SlideShare a Scribd company logo
大久保英樹(Job-Hub)
おいしい
Herokuの
使い方
自己紹介
大久保英樹
最終学歴:レインボーモータースクール
昔はガテン系。
建設現場でドリルを華麗に操ってました。
Qiita: Oakbow
Twitter:@oakbow7
こういうの。
5kgくらいあるこのドリルと10kgある鋼材や工
具かついで、建設中のマンションの屋上(13
階くらい)まで階段で駆けあがったりしてま
した。
自己紹介
当時の体脂肪率 5~7%
※ イメージ画像です
自己紹介
現在の体脂肪率 25%
※ イメージ画像…です
自己紹介
そんなプログラマが、heroku 上で Job-Hub と
いうクラウドソーシングサービスをつくっていま
す。
今日は実際にどんな構成で動いているのか、ご紹
介したいと思います。
自己紹介
まず、Job-Hubを
説明させてくだしあ。
Job-Hubの紹介
http://jobhub.jp
CROWD
SOURCING
SERVICE
Cloud(雲)じゃないよ
Crowd(群衆)だよ
Job-Hubの紹介
Job-Hubの紹介
以上。
平たく言うと、オンラインお仕事流通サイト。
実はこんなコンテストを今やってます。
Job-Hubの紹介
http://jobhub.jp/jobs/1653
仕事で使っているあなたの机、見せてください
Job-Hubの紹介
中の人も投稿しているので、見てくださいね
Job-Hubの
システム構成
Job-Hubのシステム構成
Ruby/Railsアプリなので、以降はそれ前提の話になります。
Job-Hubのシステム構成
アドオン編
New Relic
Job-Hubのシステム構成
•定番のアドオンで、herokuで一番使われている
•システム面の目と耳の役目を果たす。
•製品レベルのサービスなら、Professional必須。
•1Dyno hourあたりの課金なので、結構高い
(Dynoの総額よりこいつの方が高い)
•一応安くする方法あり(後述)
Air Brake
Job-Hubのシステム構成
•これまた定番のアドオン。
•例外がスローされるとメール通知してくれる。
•管理画面の操作性が最悪なので、正直乗り換えたい
•DNSをGoogle先生あたりにしておかないと、頻繁に「ページが見つかり
ません」になる。
•プランはいくつかあるけど、上位プランの意義が分からない…。
使い方分かってないだけかも。分かる方は後でこっそり教えてください…
PaperTrail
Job-Hubのシステム構成
•定番のログ取得アドオン(以前はLogglyだった)。
•Web上でログ閲覧できるので使いやすい。フィルタリングもできる。
•Logglyと違って日本語のログもOK!
•ログのフィルタリング条件を保存でき、合致するログが吐かれたら通知
する機能もある。⇒
タイムアウト(H12)とかH99などの監視ができる。
Herokuでリクエストタイムアウトを検知する
SSL Endpoint
Job-Hubのシステム構成
•独自ドメインでSSLを使う場合に必須のアドオン
•appname.herokuapp.comドメインのままなら、そのままSSLが使えるので
このアドオンは不要。
•そのままでは https://jobhub.jp のようなルートドメインを利用でき
ない。DNSとの連携が必要(後述)。
Herokuでルートドメインを使用する
MemCachier
Job-Hubのシステム構成
•herokuでmemcachedを使うためのアドオン
•旧版のアドオンと違い、Web上で使用状況の閲覧とキャッシュクリアが
できるようになった。
•Job-Hub では、フラグメントキャッシュとアクショ
ンキャッシュで使っています。
十分試行したとはいえませんが、オブジェクトレベルのキャッシュ
はあまり効果がないか、キャッシュを探すオーバーヘッドの方が大
きい気がしています。使えば速くなるというものでもなく、できる
だけ大きな塊になるよう設定しています。
SendGrid
Job-Hubのシステム構成
•Herokuでメール送信するためのアドオン
•期間に限りがあるけれど、Web上でログを見ることもできます。
•今のところ目立ったトラブルもなく、安定しています。
•Job-Hub では、すべてのメールをdelayed_job経由、非同期処理で送信
しています。
ちなみにherokuでメール送信する場合、delayed_jobなどで非同期実
行するのが正しい作法のようです。同期実行でも送信できますが、
すごく…待たされます(一年以上前の話)。
Heroku Scheduler
Job-Hubのシステム構成
•バッチなどを定時実行するためのアドオン。無料。
•Job-Hub では日次・週次・月次処理などで使用。
•1xか2xの指定が可能なので、重いバッチ処理だけを2xDynoなWorkerDyno
で動かすとか、メモリ潤沢ウハウハも可能(試してません)?
•一時的に止めたい時があるので、停止機能があるといいな…。
2x Dyno
Job-Hubのシステム構成
•通常の2倍の速さ CPUリソースとメモリ容量と価格のDyno
•高いので本番でのみ使用。
•「だぶるだいの」と読む(×「つーばいだいの」)
•Unicornと組み合わせると非常に効果的
例:1リクエストの処理時間が500msのアプリ
thin: 1Dyno1プロセス 20WebDyno で秒間40リクエスト
unicorn:1Dyno4~5プロセス 5WebDyno で秒間40~50リクエスト
=若干のパフォーマンスアップ+10webDyno分の節約+15WebDyno分の
New Relic課金額の節約
この例では$1000くらい安くなります(たぶん…)
2x Dyno
Job-Hubのシステム構成
•1xDynoはメモリ512MB。2xだと1GB。
•メモリ使用量が↑を超えてもいきなり止まったりはせず、エラーコード
R14を吐きつつスワップしながら処理は実行される。
•Unicornのプロセス数は、運用しつつR14をPaperTrailで監
視して、おいしい値を手探りする(2xなら4~6かな?)。
•メモリ使用量が3倍を超えるとエラーコードR15を吐いてDyno強制再起
動。やりすぎには注意しましょう。
•unicorn-woker-killerでリサイクルしましょう。
UnicornのWorkerプロセスをリサイクルする
Job-Hubのシステム構成
•稼働するDynoの数を、1週間単位、1時間の粒度でスケジューリングでき
るアドオン。
•Job-Hubでは本番は未使用。テスト環境でのみ使用。
•WebDynoの稼働数を土日や深夜に0にすること
で、チマチマと賢く節約できる。
•設定の前後で、月額でどのくらい節約できたか表示されるところが
Good。
Process Scheduler
オートスケールタイプのDyno操作アドオンにも期待中。
Job-Hubのシステム構成
•導入前提で動作確認中…
•PaperTrailのログを放り込んで、ログを対象とした集計に利用する予定
Treasure Data
Hadoop
検証中のアドオンはまだまだいっぱい。
Job-Hubのシステム構成
サービス編
Job-Hubのシステム構成
•DNSサービス
•独自ドメイン+ルートドメインに必要な、ANAMEレコードを提
供している。
http://jobhub.jp https://jobhub.jp
•Jpドメインに対応している
•最近はDozensという日本のサービスもあるっぽい
Herokuでルートドメインを使用する
Job-Hubのシステム構成
•皆さんご存じの堅牢ストレージ
•ログ保管庫
•ファイルアップロード先(CarrierWave)
•静的ファイル保存先(AssetSync)
•Herokuのシステムエラーページ
•Herokuのメンテナンスページ
AWS S3
HerokuでCarrierWaveを使う場合に注意すること
そのうちAssetSyncの記事も書きます(と思いながら幾星霜)…
Job-Hubのシステム構成
•Job-Hub ではMySQLをチョイス
•Multi-AZとReadReplicaを使用
•チューニング済みなので、使う人がやるのはプランの変更くらい(中の
人曰く)。
•実際MySQLでこれやっとけ系のパラメータ変更はもうやってあった
•でもmax_allowed_packetはデフォルトのままだったので、
変更した方がいいかも。
AWS RDS
Railsで<Mysql2::Error: closed MySQL connection> が出た場合に
必ず確認すること
Job-Hubのシステム構成
•CDNサービス
•Job-Hub では静的ファイル(JS,CSS,画像)で利用。
•AssetSync経由でS3のBucket(オリジンサーバ)に流すと、
CloudFrontが勝手に世界中のエッジサーバへ運んでくれる。
非常に簡単。
•これを使わずAssetSyncの対象BucketをTokyoリージョンに
することで簡易CDNにすることもできる。
•でもかなり安いのでオススメ。
AWS CloudFront
Job-Hubのシステム構成
Gem編
Job-Hubのシステム構成
•unicorn
•unicorn-woker-killer
•carrierwave
•kaminari
•devise
•aasm
•squeel
•enum_column3
•asset_sync
•ruby-saml
Production
代表的なものだけ。もちろんもっといろいろ使ってます。
Job-Hubのシステム構成
•foreman
•timecop
•rails_footnotes
•better_errors
•binding_of_caller
•letter_opener
•mail_view
•rails_view_annotator
development,test
赤いのは特にオススメ。開発が3倍捗ります。
記事はそのうち書きます…
Job-Hubのシステム構成
ツール編
Job-Hubのシステム構成
…は時間がないので
また次の機会に。
Job-Hubのシステム構成
まとめ
conclusion
ここにいる皆さんが Job-Hub に
登録する
まとめ
皆さん目当てにいっぱいJobが登
録される
After all of you register with “Job-Hub”,
Many clients will come and bring many jobs. And…
Job-Hub のDyno数が100に
増える
(Web*Woker*2x=400Dyno)
まとめ
事態を重く見たHerokuがTokyo
リージョンを開設する
We will increase Dynos up to 100 ( it become 400 dynos),
Then heroku will certainly open the Tokyo region !!
今すぐ Job-Hub に登録
まとめ
Heroku Tokyoリージョン開設
三段論法成立
If you register with “Job-Hub” right now,
You can see Tokyo region very soon.
syllogism
時間の都合上ご紹介できない情報も多々
ありました。逐次 Job-Hub マガジン で
発表させていただきます。ぜひチェック
してくださいね!
もし知りたい情報のリクエストがあれば、できるだけお応えしま
す。
Qiita: http://qiita.com/Oakbow/
Job-Hubマガジン: http://mag.jobhub.jp/
Twitter:@oakbow7
Mail:oakbow@jobhub.jp
ご清聴ありがとうございました。
終わり

More Related Content

PPTX
Cacooではじめるスタートアップ
Hideki Ohkubo
 
PDF
作品は誰かに見てもらった方が良い!
Makiko M
 
PDF
非ウェブデザイナーも知っておきたいデベロッパーツールの使い方(基本編 使い方と便利な機能) 先生:池田 祐太郎
schoowebcampus
 
PDF
Sublime Textの便利機能を使ったWordPressコーディング
Akinori Tateyama
 
PDF
「Webサービスのつくり方」 のつくり方
Yusuke Wada
 
PDF
a-sap10「モジュールIDを理解する」
Seiko Kuchida
 
PDF
面白法人カヤックと一緒にやる、ポンポンアイデアが出るブレストワークショップ
schoowebcampus
 
PDF
WordPressを仕事で使用する際に便利なおすすめプラグインの紹介
Chieko Aihara
 
Cacooではじめるスタートアップ
Hideki Ohkubo
 
作品は誰かに見てもらった方が良い!
Makiko M
 
非ウェブデザイナーも知っておきたいデベロッパーツールの使い方(基本編 使い方と便利な機能) 先生:池田 祐太郎
schoowebcampus
 
Sublime Textの便利機能を使ったWordPressコーディング
Akinori Tateyama
 
「Webサービスのつくり方」 のつくり方
Yusuke Wada
 
a-sap10「モジュールIDを理解する」
Seiko Kuchida
 
面白法人カヤックと一緒にやる、ポンポンアイデアが出るブレストワークショップ
schoowebcampus
 
WordPressを仕事で使用する際に便利なおすすめプラグインの紹介
Chieko Aihara
 

Viewers also liked (20)

PDF
特盛!Heroku
Shunji Konishi
 
PDF
Herokuトレーニング
Yosuke Murata
 
PDF
かんたんHeroku入門 - Heroku へのデプロイと運用 -
sakagami3
 
PDF
Heroku Postgres
Salesforce Developers Japan
 
PDF
ソニックガーデン流 無駄のないシステム開発
Salesforce Developers Japan
 
PDF
初めてのHeroku Webinar
Salesforce Developers Japan
 
PDF
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
Masahiro Nishimi
 
PDF
実践Heroku アプリ開発編 Webinar
Salesforce Developers Japan
 
PDF
やれる Heroku - Java アプリケーション開発編
Salesforce Developers Japan
 
PDF
Heroku Connect Webinar
Salesforce Developers Japan
 
PDF
プロフェッショナルのための 実践 Heroku 入門
Salesforce Developers Japan
 
PDF
実践Herokuデータベース編 Webセミナー
Salesforce Developers Japan
 
PDF
Heroku Javaで12-Factor App
Mitch Okamoto
 
PDF
Herokuの新料金について
gecko655
 
PDF
PaaSに適したアプリケーション設計 がもたらすメリット
Ayumu Aizawa
 
PDF
Lightning Connect で 外部データにリアルタイムにアクセス
Salesforce Developers Japan
 
PDF
Scala 初めての人が Heroku で Web アプリを公開するまで
Hideaki Miyake
 
PDF
PHP開発者のためのHeroku入門
Salesforce Developers Japan
 
特盛!Heroku
Shunji Konishi
 
Herokuトレーニング
Yosuke Murata
 
かんたんHeroku入門 - Heroku へのデプロイと運用 -
sakagami3
 
ソニックガーデン流 無駄のないシステム開発
Salesforce Developers Japan
 
初めてのHeroku Webinar
Salesforce Developers Japan
 
実践DevOps!SonicGarden流Herokuガチ運用術!SonicGarden Study #09
Masahiro Nishimi
 
実践Heroku アプリ開発編 Webinar
Salesforce Developers Japan
 
やれる Heroku - Java アプリケーション開発編
Salesforce Developers Japan
 
Heroku Connect Webinar
Salesforce Developers Japan
 
プロフェッショナルのための 実践 Heroku 入門
Salesforce Developers Japan
 
実践Herokuデータベース編 Webセミナー
Salesforce Developers Japan
 
Heroku Javaで12-Factor App
Mitch Okamoto
 
Herokuの新料金について
gecko655
 
PaaSに適したアプリケーション設計 がもたらすメリット
Ayumu Aizawa
 
Lightning Connect で 外部データにリアルタイムにアクセス
Salesforce Developers Japan
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Hideaki Miyake
 
PHP開発者のためのHeroku入門
Salesforce Developers Japan
 
Ad

Similar to おいしいherokuの使い方 (15)

PPTX
SendGrid on Job-Hub
Hideki Ohkubo
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
Herokuをつかってみた。
Ueki Kouji
 
PDF
Heroku Inside
Ayumu Aizawa
 
PDF
Web技術勉強会 20120609
龍一 田中
 
PDF
Herokuのご紹介
Ayumu Aizawa
 
PDF
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
PPTX
start Heroku
Hazuki Wakabayashi
 
PDF
Heroku でカンタンすぐに実現する CI/CD
Takashi Abe
 
PDF
Herokumeetup8 growライトニングトーク
淳 竹野
 
PDF
Node.js開発者のためのHeroku入門
Salesforce Developers Japan
 
PDF
すぐ始めれるクラウド
Soudai Sone
 
KEY
HerokuでRails3.2 we love herokuの事例
Naoto Koshikawa
 
PDF
Cloudy会 @cloudymeeting ハイブリッドクラウドとheroku/EC2決算法
Tokyo University of Science
 
PDF
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
 
SendGrid on Job-Hub
Hideki Ohkubo
 
Herokuのご紹介
Ayumu Aizawa
 
Herokuをつかってみた。
Ueki Kouji
 
Heroku Inside
Ayumu Aizawa
 
Web技術勉強会 20120609
龍一 田中
 
Herokuのご紹介
Ayumu Aizawa
 
(Ruby + Agile) x Cloud = Like!
Ayumu Aizawa
 
start Heroku
Hazuki Wakabayashi
 
Heroku でカンタンすぐに実現する CI/CD
Takashi Abe
 
Herokumeetup8 growライトニングトーク
淳 竹野
 
Node.js開発者のためのHeroku入門
Salesforce Developers Japan
 
すぐ始めれるクラウド
Soudai Sone
 
HerokuでRails3.2 we love herokuの事例
Naoto Koshikawa
 
Cloudy会 @cloudymeeting ハイブリッドクラウドとheroku/EC2決算法
Tokyo University of Science
 
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
 
Ad

More from Hideki Ohkubo (6)

PPTX
Heroku connect 苦肉の四苦八苦
Hideki Ohkubo
 
PPTX
Rubyist のフィリピン留学
Hideki Ohkubo
 
PPTX
10年後になくなる仕事 / Jobs which will disappear 10 years later
Hideki Ohkubo
 
PPTX
Job-Hub 自由をつかめ(大人の事情ver)
Hideki Ohkubo
 
PPTX
Heroku meetup#11(フル)
Hideki Ohkubo
 
PPTX
Heroku meetup#11(lt)
Hideki Ohkubo
 
Heroku connect 苦肉の四苦八苦
Hideki Ohkubo
 
Rubyist のフィリピン留学
Hideki Ohkubo
 
10年後になくなる仕事 / Jobs which will disappear 10 years later
Hideki Ohkubo
 
Job-Hub 自由をつかめ(大人の事情ver)
Hideki Ohkubo
 
Heroku meetup#11(フル)
Hideki Ohkubo
 
Heroku meetup#11(lt)
Hideki Ohkubo
 

Recently uploaded (8)

PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 

おいしいherokuの使い方