Heroku には、需要に応じて dyno を瞬時にスケールできる便利なツールが用意されています。アプリのデプロイ後にトラフィックが増加したり、利用パターンにばらつきが生じたり、新機能が追加されたり、ビジネスの規模が拡大したりするなどして dyno フォーメーションの調整が必要になった場合でも、Heroku ダッシュボードや Heroku CLI から簡単に対応できます。

Dyno フォーメーションのスケールの方法→

Heroku ダッシュボード

Heroku ダッシュボードは Heroku のコアとなる機能を利用するための Web ユーザーインターフェースです。Heroku ダッシュボードでは、アプリ、Heroku アドオン、デプロイのプロセス、メトリクスなどを簡単に管理できます。また、Heroku ダッシュボードのスライダーを使えば、dyno の数を簡単に変更できます。dyno の数を増やしたり、dyno タイプを変更したりすると、その結果が即座に dyno フォーメーションに反映されます。

Heroku Dashboard 関連資料→

Heroku CLI

dyno フォーメーションの管理はコマンドラインインターフェース(CLI)や Heroku プラットフォーム API からも行えます。Heroku CLI を使用すると、さまざまなオペレーティングシステムのシェルからアプリを作成して管理できます。簡単なコマンドを入力するだけで web dyno や worker dyno の数を増やすことができるほか、複数の dyno のタイプを一度に変更することもできます。たとえば、次のコマンドを使用すると、web dyno の数を 5 つにスケールすることができます。

$ heroku ps:scale web=5
Scaling dynos... done, now running web at 5:Standard-1X

Heroku CLI 関連資料→

スケールアウト:dyno の追加

特定のプロセスタイプの dyno の数を増やすと、アプリをスケールアウトできます。たとえば、web dyno の数を増やすと、着信 HTTP リクエストをルーティングできる Web サーバーインスタンスが増えるため、トラフィックが増えた場合のパフォーマンスが向上します。worker dyno の数を増やすと、アプリで並行処理できるジョブの数が増加し、より多くのジョブを処理できるようになります。ただし、バックエンドサービスでボトルネックが発生していたり、リクエストやジョブに時間がかかっていたりするような状況では、スケールアウトが効果を発揮しないこともあります。スケールアウトは Standard dyno、Performance dyno、および Private dyno のみ対応しています。

同時並行処理とスケールに関する詳細→

スケールアップ:容量の大きい dyno へのアップグレード

容量が大きいタイプの dyno へアップグレードすると、アプリで利用できるメモリと CPU リソースが増加します。dyno はタイプを問わず相互に隔離されていますが、Eco dyno、Standard dyno はマルチテナント型の dyno であるため、これらの dyno で実行されるアプリでは基本となるコンピューティングリソースが共有されます。そのため、パフォーマンスにある程度のばらつきが生じます。Performance dyno と Heroku Private Spaces で稼働する dyno は基本となるコンピューティングリソースを共有しないため、パフォーマンスのばらつきが少なくなります。

dyno types の確認→

自動スケール

Heroku では、応答時間の 95 パーセンタイルが一定のしきい値を超えたときに自動的に web dyno の数を増やすことができます。自動スケール機能はアプリの既存のスループットにもとづいて自動的に作動するため、トラフィックの急増を事前に予測する必要がなくなります。Performance dyno と Private dyno では追加料金なしで自動スケール機能を利用できます。

自動スケール関連資料→

「Heroku は急激な成長を経験している私たちのクライアントを支えるのに理想的なインラストラクチャです。需要のピークの時ですら、私たちはただ dyno を追加すれば、Heroku がシームレスに対応してくれます。」

Nick Frandsen
Dovetail 社共同創業者兼マネージング>パートナー
Dovetail 様事例→

「Heroku によって、数々のデバイス統合を個別にスケールするのはとても簡単です。あるデバイスからのトラフィックの増加に対応するには、単に dyno を追加するだけでよいのです。」

Garett Madole
Yonomi 共同創業者
Yonomi 様事例→