API を通じてラックスペースクラウドサーバーをプログラム的にスケールアップおよびスケールダウンする

StackOverflow https://stackoverflow.com/questions/3418699

質問

今日、負荷に応じてサーバーをスケールアップ/スケールダウンする簡単なソリューションを探して Rackspace テクニカル サポートと話をしていましたが、API を使用してプログラムで実行できると彼は言いました。

これまでに実際にこれを行った人はいますか、またはこれに最適なアプローチ方法についてアドバイスを持っていますか?いきなりゼロから書き直す前に、誰かがアウトライン コードやメモを持っているかどうか知りたいです。

ありがとう!ウォーカー

役に立ちましたか?

解決

ウォーカーさん、まずはサーバーを事前に準備し、監視ソリューションによって起動されるスクリプトを使用してサーバーを起動および停止することをお勧めします。高品質の承認済みサーバーを自動化された方法で一貫して展開できるようになったとしても、サーバーの作成には約 15 ~ 20 分かかります。したがって、どちらの場合でも、必要なときにリソースを準備できるようにする必要があります。

サーバーの備蓄が完了したら、監視ソリューションを準備します。Nagios はこのタスクには問題なく機能します。トリガーなどを使用してイベントに応答できるあらゆる監視ソリューションが機能します。

使用率を管理する方法を理解して、スケールするにはいくつかの方法があります。

利用

これはプロジェクトに固有のものであり、システム負荷 / 1 秒あたりのリクエスト数 + IO の合計値です。少なくとも負荷平均を考慮してください。私たちのシナリオでは、システムが混雑している原因を理解し、独自の使用率対策を講じたいと考えていました。これをカスタム監視ソリューションに接続しました。スケールアップまたはスケールアウトする必要がある場合の使用率を測定します。

スケールアップする

リクエストを処理するために大規模なサーバーへのスケーリングが含まれます。これは文字通り、リクエストを処理するには大規模なサーバーに移行する必要があることを意味します。あるいは、別の考え方としては、リクエストが大規模なサーバーで提供される場合、リクエストのコストが削減されるということです。

私の経験では、スケールアップの必要性は短期的には減少します。負荷を処理するために一貫して最小仕様サーバーが必要な場合は、平均利用レベルが成長する必要があります。利用レベルが約60%になると、一貫してスケールアップを開始します。

スケールアップにはコストがかかる可能性があるため、負荷がピークに達している場合は、プールに別のサーバーを追加する方がよいでしょう。その方法は次のとおりです。 スケールアウト 動作します。

スケールアウト

ほとんどのプロジェクトでは、短期的にスケールアウトすることが一般的であり、そのプロセスには環境へのホストの追加と、ロード バランサーを使用したリクエストの分散が含まれます。使用率レベルが 60% 以上に達すると、監視ソリューションのトリガーがホストを起動するリクエストを発行します。負荷が元に戻ると、 中央値 監視ソリューションはサーバーの電源をオフにします。これは自動的に行われ、サーバーをオフにすると使用率レベルが増加するはずです。私たちは環境の中央値として 40% の使用率を維持するよう努めています。

複雑なのは、新しいホストを確認するためにロード バランサーの構成を自動化することです。サーバーの電源がオフになった後でも、正常性測定を使用するようにバランサーを事前構成するだけの人を私は知っています。ロード バランサーは、停止したホストにトラフィックを処理しません。サーバーが起動すると、ロード バランサーはそれを再度認識し、サーバーへのリクエストの自動的な処理を開始します。

最終的解決

実行可能な最小限の環境を展開し、独自の使用率レベルを監視するための監視をセットアップします。選択した環境でサーバーを起動するトリガーを作成します。トリガーは、Rackspace への呼び出しを起動してサーバーを起動するリクエストを実行する必要があります。これは良いスタートです。

これがあなたのお役に立ち、成功する環境を構築できることを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top