1

1 つの大きな専用サーバーで Rails アプリを実行しています。スケーリングのために、クラウド サービス ホスティング サービスに切り替えて、アプリ、DB、Redis の 3 つのインスタンスでアプリを提供したいと考えています。

私は Heroku のパフォーマンスに関して非常に悪い経験をしており、したがってコスト効率が悪いです。したがって、私にとっては、Engineyard と Enterprise-Rails の 2 つの選択肢が残っています。

私が重要だと思うのは、Engineyard がピークを処理するための自動スケーリング オプションを提供していないことです。一方、Enterprise-Rails にはあまり多くのドキュメントがありません。そのほとんどは、すべてをセットアップしているサポート クルーによって処理されます。

他にどのような違いがありますか? また、自分の Web サイトには何を使用すればよいですか? 管理作業はあまり必要なく、経験もありません。基本的に、個人的な作業をあまり行わずに、サイトを最適に安全で安定した費用対効果の高い方法で実行したいだけです.

4

2 に答える 2

3

現在、AWS から大規模な Rails アプリを実行しており、非常に満足しています。以前は、常に問題を引き起こしていた多くの専用ボックスがありました.遅かれ早かれそのうちの1つが何らかの理由でクラッシュし、Raidの失敗、データベースの問題など.

AWS では、データベースに RDS、キャッシングにエラスティック キャッシュを使用しています。ステージング サーバーとして機能するファット インスタンスにすべてのコードを保持し、可変数の予約済みインスタンスを取得して、NFS 経由でコードをロードします。

自動スケーリングも使用しています。多数の予約済みインスタンスを前払いしており、自動スケーリングは、CPU 使用率が 60% を超えたときにノードを起動し、25% を下回ったときにノードを削除するのに役立ちます。自動スケーリング ルールは、インスタンスの特定のグループ、memcache サーバーなどを監視するように設定できる cloudwatch アラートに基づいています。たとえば、100 を超えるインスタンスの場合など、特定のスケーリング アクティビティが発生したときに、SNS 経由で電子メールや SMS 通知を受け取ることさえできます。 1 時間以内にスパムされます (大量のトラフィック スパイク)。ちなみに、インスタンスはロードバランサーにも追加されます。非常に便利なスティッキーセッション機能を使用できるため、セッションストアをいじる必要はありません。

最近、スポット インスタンスを含む 2 番目の起動グループも使用し始めました。これは、クラウドウォッチ ルールの点で少し複雑ですが、スポット価格がはるかに低いため、毎月多くの費用を節約できます。入札したスポット価格 (最低額) が十分でない場合、私が持っているセットアップはリザーブド インスタンスに戻ります。

さらに最近では、アプリのページアセットを非常に高速にロードする CloudFront の使用も開始しました (約 2 メガバイトの CSS、JS、いくつかのアイコンスプライト)。以前は、ロード バランサーを介してインスタンスから直接サービスを提供していました。

パフォーマンスと可用性を最大化するための展開、テスト、調整に約 20 時間かかりました。

私が AWS で抱えている問題の 1 つは、料金を支払う準備ができていない限り、サポートがないことです。彼らは、一部のサポートはサブスクリプションなしで提供されると主張していますが、サポート領域の唯一のオプションは請求です. ハ。幸いなことに、すべてが十分に安定しており、私がそれを支払わなければならない状況に陥ることはありません.

全体として、Rails は AWS と非常にうまく調和しています。以前は 30 時間以上費やしていたメンテナンスに費やす時間は、月に 2 時間未満です。私にとって最も重要なことは、何も問題を引き起こさないことを知って X か月間休暇中に GTFO を実行できることを知っていることです。監視アラートは 1 年以上発生していません。

後の編集: アプリはホワイト ラベル機能を備えたスポーツ サイトであり、多くのユーザー、バックエンドでコンテンツに取り組んでいる多くの管理者、数秒ごとに更新される市場価格データを表示するためのデータベース集約型です。データベース、memcache、ストレージ、負荷分散、Web アプリなど、ほぼ同じことを行っていた専用サーバーで、ページあたりの平均読み込み時間は約 3 秒でした。今、私の平均は1秒未満です。毎月の請求額は現在、約 8 分の 1 です。

于 2013-10-02T20:34:09.770 に答える
-1

Engine Yard は自動スケーリングを提供しませんが (パイプラインにあります)、必要なときに複数のインスタンスを一度にスピンアップできる非常に使いやすいスケーリング機能があります。

Enterprise-Rails のようなものに対する利点は、完全なドキュメント、CLI またはダッシュボードからデプロイする選択肢、そして素晴らしいサポート チームです。また、AWS などのサービスを直接使用するよりも、Engine Yard を使用して個人のマシンまたは別のクラウド セットアップから移動する方が簡単です。

于 2013-10-03T13:26:19.473 に答える