web-dev-qa-db-ja.com

単一のHeroku Web Dynoとは正確には何ですか?

AWSが存在するときにHerokuを使用するのはなぜですか?HerokuとAWSの違いは何ですか? によると、複数のHeroku Web Dynosが単一のAmazon EC2 CPUで実行されているようです。

1つのCPUでいくつのDynosが実行されますか?仕様は何ですか?

1つのCPUで実行されている多数のDynosが他のDynosに影響しますか?

33
B Seven

Herokuアプリケーションをデプロイするときは、1つ以上のslugを使用して、buildpacksという仮想マシンイメージを構築します。このslugから仮想マシンインスタンスを起動すると、dynoと呼ばれます。

dynoは、アプリケーション仮想マシン内で単一のプロセスを実行します。 Herokuはdynoのプロビジョニング方法を公式に説明していませんが、事例分析では、多くのdynoが単一のAmazon XL EC2インスタンスで実行され、すべてのdynoでディスク、CPU、メモリを共有していることが示されています。リソースを共有するときは、明らかに「騒々しい隣人」がいますが、直接のデータや統計は提供されません。私は、これが実際に起こっているという逸話的な体験を共有することしかできません。

各dynoはEC2ホスティングマシン内で分離されていますが、基盤となるリソースを共有しています。これは、dockerおよびその他のアプリケーションコンテナの動作に似ています。

Dynosは、着信WebトラフィックをアプリケーションdynoにマップするインテリジェントロードバランサーであるHeroku Routing Meshに登録されています。各dynoには、ルーティングメッシュに登録されているTCPポートが割り当てられています。

Herokuは、Amazon EC2の上位のサービスです。それらは、生のEC2ホスティングに対して高額なコストで導入、プロビジョニング、監視、可用性、自動スケーリングを実装します。独自のEC2インスタンスを実行できますが、それらのサービスを自分で実装する必要があります。

免責事項:私はHerokuの従業員ではなく、大規模でトラフィックの多いユーザー以外のHerokuについての特別な知識はありませんRailsアプリ。

UPDATE:Herokuは今朝、専用EC2でホストされているPXサイズのdynoをリリースしましたc1.xlargeインスタンス。これは、上記で触れた、騒々しい隣人とリソース競合の問題をすべて解決します。かなりの値札で。詳細はこちら: https://blog.heroku.com/archives/2014/2/3/heroku-xl

54
Winfield

Herokuルーティングメッシュはそれほどインテリジェントではなく、リクエストをDYNO全体にランダムに分散することは言うまでもありません。多数のdynoがある場合、アルゴリズムはオプションで、選択を行うルーターと同じAWSアベイラビリティーゾーンに常駐するdynoに選択をバイアスできます。

0