14

[最初の] スタートアップに取り組んでから 1 か月が経ちました。おそらくアルファ リリースまであと 1 か月ほどかかると思いますが、正しい方法でデプロイする方法を知りたいと思っています。このサイトは、新規ユーザーの初期負荷 (ネットワーク + CPU) が高くなるため、既存ユーザーのサイトの速度が低下しないように、この初期プロセス用に別のサーバー/キューを用意することを考えています。

これまでの調査に基づいて、現在、nginx + haproxy + unicorn/thin + memcached + mysql に傾倒しており、Linode にデプロイしています。ただし、上記の経験はありません。したがって、私はコミュニティの経験を活用したいと考えています。

  • 上記のアーキテクチャは合理的に見えますか? お勧めの提案/記事/本はありますか?
  • Linode は良い選択ですか? Heroku/EY は私には高すぎるように思えますが (少なくとも十分な収益が得られるまでは)、他のより良いオプションがないのでしょうか? メディアテンプル?
  • 負荷分散アーキテクチャに関する良い提案はありますか? 私はまだこれを読んでいます。
  • 2 つの別々の Linode に 2 つの別々の Rails サーバー インスタンスを配置するか、2 倍の容量 (RAM/ストレージ/帯域幅の観点から) の Linode で 1 つのインスタンスを実行する方がよいでしょうか? 何個の Linode から始めるべきですか?
  • どの Linux ディストリビューションを選択すればよいですか? (Linode は 8 つの異なるものを提供しています - http://www.linode.com/faq.cfm ) Rails サイトに関して、それらの間に相対的な利点/欠点はありますか?

私の質問がばかげていたり、矛盾していたり​​したら、申し訳ありません。私の経験不足のせいにしてください。

4

1 に答える 1

18

建築

あなたは正しい軌道に乗っています。個人的には、便宜上、シン/ユニコーンよりもパッセンジャーを好みますが(nginxをシンバックエンドに長い間実行していました)、提案されたセットアップはかなり標準的です。ただし、Ruby 1.8.7 を使用している場合は、フレームワークのメモリ節約のために REE + Passenger を検討することをお勧めします。

ホスティングと負荷分散

Linode は素晴らしいです。私は Linode をあらゆる用途に使用していますが、RAM の制限に注意する必要があります。各 Rails プロセスは大量の RAM を使用するため、マシンがスワップ状態になることは避けたいと思うでしょう。メモリ割り当てが Linode 上のメモリの約 90% になるように、マシンごとに十分な数の Rails インスタンスを実行するように計画してください。同じマシン上で両方を開始することもできますが、データベース専用の別の Linode が必要になる可能性があります。成長に合わせて MySQL を分割する準備をしてください。プライベート IP で同じデータ センター内の Linode 間の通信を設定できます。これは、帯域幅クォータにはカウントされません。

スケーリング戦略は可能な限り水平に行う必要があるため、より多くの馬力が必要な場合は、2 台目の Linode を取得して haproxy プールに追加することをお勧めします。同じ 20 ドルで、別の Linode (CPU、RAM、HDD、および帯域幅クォータ付き)。簡単そうです!)。Rails の場合、インスタンスはインスタンスであり、同じ VM 上にあるかどうかは関係ありません。データベース マシンに接続する時間などはほぼ同じです。それぞれが 10 個の Rails プロセスを実行する 10 個の Linode を実行しても、大きな問題はありません。Linode は IP フェイルオーバーも提供するため、プライマリ Linode (haproxy を使用) がダウンした場合、自動的にセカンダリ Linode にフェイルオーバーし、haproxy を実行することができます。

分布

正直なところ、これはあなた次第です!多くの人が Ubuntu または Redhat (CentOS/Fedora) ディストリビューションを使用しています (私自身は CentOS が好きです)。お気に入りのディストリビューションがない場合は、Ubuntu/CentOS を試すことをお勧めします。これらのディストリビューションは、初心者にとって非常に友好的で、非常に堅牢なコミュニティ サポートを備えている傾向があるためです。

64 ビット ディストリビューションを選択するやむを得ない理由がない限り、おそらく 32 ビット ディストリビューションを選択することをお勧めします。64 ビットの実行可能ファイルは、32 ビットの実行可能ファイルよりも多くの RAM を必要とします。RAM は最も貴重なリソースである可能性が高いため、可能な場所に保存することは理にかなっています。

于 2010-10-01T18:59:01.257 に答える