2

明日、私のウェブサイトへのトラフィック (プレスなど) が大幅に増加することを期待しています。ダウンすることなくトラフィックを管理できるようにしたい。dyno を追加する必要があることはわかっていますが、キューをダウン状態に保つのは一時的なものにすぎないため、コストはそれほど高くありません。

監視に New Relic アドオンを使用しています

この投稿は本当に役に立ちます: https://serverfault.com/questions/394602/how-to-prepare-for-a-huge-spike-in-traffic-for-launching-a-website-hosted-on-her

ただし、その投稿を読んでherokuのドキュメントを調べた後、実際にこれを行う方法を理解できませんでした...

追加された Web トラフィックを処理するために、どのコマンドを実行できますか、またはどのインターフェイスから新しい dyno をスピンアップできますか? 次に、トラフィックが通常のレベルに戻ったときに、どのコマンドを実行するか、またはどのインターフェイスから余分な dyno を排除しますか?

Heroku は、さまざまな種類の dyno などについて話していますが、どれを使用する必要があるのか​​ 、実際に新しいものをスピンアップする方法がわかりません。

4

1 に答える 1

1

Heroku には、この場合に役立つplatform-api gemがあります。最初にgemをあなたに追加してGemfileインストールします。

gem platform-api

インストールしたら、できれば初期化子でherokuクライアントをセットアップします

$heroku = PlatformAPI.connect(ENV['HEROKU_API_KEY', default_headers: {'Accept' => 'application/vnd.heroku+json; version=3'})

ここでHeroku API KEY を取得する方法を見つけることができます

さて、スケーリングの部分です。いつスケーリングするかを決定するための内部メトリックがいくつかあると思います(プロセス数、リクエスト数などによる)。以下のコマンドは、必要な dyno の数をスケールアップします。

$heroku.formation.update(APP_NAME, PROCESS_NAME, {quantity: DYNO_COUNT})

これにより、アプリの指定されたプロセスが、必要に応じて X 個の dyno にスケーリングされます。

同じコマンドを使用して、dyno の数を減らすことができます。また、以下のコマンドは、特定のプロセスに対して現在プロビジョニングされている dyno の数を取得するのに役立ちます

info = $heroku.formation.info(APP_NAME, PROCESS_NAME)
info['quantity']

アプリにプロビジョニングされたすべての dyno の数を取得するには、次を使用します。

$heroku.app.info(APP_NAME)

編集

手動で行いたい場合は、heroku のダッシュボード自体で行うことができます。または、コマンド ラインを使用する場合は、heroku ツールベルトをインストールます。以下は、アプリをスケーリングするためのコマンドです。

heroku ps:scale process_name=dyno_count -a app_name

プロビジョニングされた dyno のリストを取得するには

heroku ps -a app_name
于 2016-01-20T03:51:08.707 に答える