6

注: Azure の価格モデルに精通している場合は、「質問」セクションに進んでください。

Microsoft は、2010 年 2 月 1 日から Azure プラットフォームの使用に対して課金を開始します。毎月の請求額は、帯域幅、ストレージなどの関数になります。請求額の計算に使用される要因の1 つに計算時間があります。ただし、この後者の要素には誤解を招く名前が付いています。代わりに、インスタンス ホスティング時間と名付けるべきです。Windows azure の価格ページを引用します。

アプリケーションを開発およびテストするとき、開発者は、使用されていないコンピューティング インスタンスを削除して、コンピューティング時間の請求を最小限に抑える必要があります。

したがって、計算時間ではなく、稼働時間であると思わせてしまいます。MSDN フォーラムでこの質問に対する公式の回答を読んだ後、疑いは完全に薄れます。

(任意のロールの) 各インスタンスがカウントされ、インスタンスがアクティブになっているすべての時間がカウントされることを確認できます (それらの「アクティビティ」の量に関係なく)。2 つの Web ロール インスタンスと 2 つのワーカー ロール インスタンスを持つアプリケーションの場合、4 つのインスタンスに対して課金されます。

インスタンスあたり $0.12/時間で、N 個のインスタンスを使用するアプリには、平均 24*30*0.12*N/月 = ~ $86/月/インスタンスが請求されます。99.9% のアップタイムのサービス レベル アグリーメントを適用する場合、インスタンスを 2 つ未満にすることはできないという事実を考慮すると、小規模な Web サイトでは問題が悪化します。

したがって、小規模でコンピューティング能力が安価な Web サイトは、おそらく Azure のターゲット市場ではありません。しかし、バッチ プロセスの場合、負担はおそらくなくなるでしょう。

質問

コンピューティング能力と"コンピューティング時間"の請求に関してのみ言えば、数をスケールアップ(およびダウン)できる場合に限り、Azure は月に数時間しか実行されないバッチ プロセスの優れたホスティング オプションになります。インスタンスを簡単に。そう:

  • Azure のインスタンス数をプログラムで増減することはできますか? 構成ファイルを手動で変更する以外に他のオプションはありますか?
  • インスタンス数の縮小に関して、明らかでない問題はありますか?
  • Azure がアプリケーションのスケール ダウンを "確認" するのにどれくらいの時間がかかりますか?

後者の質問について: 非常に多数のインスタンス (たとえば 1000) が 45 分間実行されているという極端なケースを考えてみましょう。プロセスが終了してから 15 分以内に Azure がスケールダウンを通知できない場合は、さらに 1000 コンピューティング時間の料金が請求されます。

4

4 に答える 4

4

正解です。計算時間ではなく、稼働時間の料金を支払っています。

注意しなければならないことの1つは、按分なしで部分的な時間の支払いをすることです。したがって、急速にスケールアップおよびスケールダウンすると、丸1時間食べていることになります。

他の人が述べているように、アプリケーション内からプログラムでスケールアップおよびスケールダウンできます。ただし、一般に、特定の役割は、(メトリックをストレージに保存しない限り)独自のメトリックとグローバルリソースメトリック(キューの長さなど)にのみアクセスできるため、CPU使用率などに基づいてスケーリングを行うのは難しい場合があります。

スケールアップは、マシンがスピンアップするのに数分かかることからほぼ瞬時に始まります。現在、スピンアップが提供されているSLAはありません。Microsoftは、インスタンスは異なる時間に起動すると述べているため、非常に大規模なスケールアップ操作を行う場合、すべてのインスタンスが使用可能になるまでにかなりの時間がかかる可能性があります。ただし、一部のインスタンスはほぼすぐに利用可能になります。インスタンスが完全にスピンアップされるまで、インスタンスの料金は請求されません。

スケールダウンはほぼ即座に発生しますが、スケールダウンに使用するインスタンスを制御することはできません。そのため、インスタンスの50%がアイドル状態で、50%のスケールダウンを実行すると、アクティブなインスタンスがすべて強制終了される可能性があります。その作業は、以前はアイドル状態だったインスタンスで再開する必要があります。デザインが作業の適切な再開をサポートしていることを確認する必要があります(キュータイムアウトを使用する場合、これはほとんど自動的に発生する可能性があります)

スケーリングを支援することを目的としたサードパーティのソリューションがいくつか登場し始めています。私が見た中で有望に見えるのは、http://paraleap.com/のAzureWatchです これは、使用率、キューの長さ、スケジュールなどに基づいて、Webおよびワーカーの役割の自動アップ/ダウンスケーリングなどを提供します。

于 2010-10-07T20:05:59.073 に答える
3

少し警告しますが、以下の私のコメントは、Windows Azure での運用アプリの実行に基づいていません。これまでのところ、私はそれをいじってドキュメントを読んでいます。

Azure のインスタンス数をプログラムでスケールアップまたはスケールダウンすることはできますか?

はい。ただし、知る限り、Azure はそれ自体でスケールアップおよびスケールダウンしません。Web サービス呼び出しを介して行う必要があります (UI を使用して手動で行うのとほぼ同じです)。このMSDN docの「ホステッド サービス」セクションを参照し、そこから読み進めてください。

Hudson CI サーバーのようなものは、基本的な作業キューの監視を実行するためにかなり簡単に拡張できます。おそらく、もっと機能豊富なものが必要です。「エンタープライズ サービス バス」の世界には、このようなシステムが非常に多くあります。

インスタンス数の縮小に関して、明らかでない問題はありますか?

うーん。ロックについて考える必要があります。つまり、各ワーカーが一貫した状態でキューを離れ、シャットダウンする前にタスクを完了するようにする方法は?

さらに、Azure の価格表から: 「部分的なコンピューティング時間は、完全な時間として請求されます。」.

Azure がアプリケーションのスケール ダウンを "確認" するのにどれくらいの時間がかかりますか?

正直なところ、わかりませんが、アプリケーションが正常に作業を終了したと仮定すると、せいぜい数分だと思います。彼らは新しいサーバーを十分に高速にインスタンス化します。新しいサーバーを起動するには、シャットダウンするよりも時間がかかると思います。

テストしてみてください。安価なアカウントを作成し、いくつかのサーバーを起動したり、シャットダウンしたりします。アプリの小さなプロトタイプを作成 (または Azure サンプル アプリのいずれかを使用) して、その感触をつかんでください。

もう 1 つの側面は次のとおりです。いつでもスケールアップできる保証はありますか? 現在、クラウド コンピューティング ベンダーの知る限り、そのような保証はありません。しかし、Amazon はこれに関してかなりの実績があります。Azure は新しいサービスであり、Microsoft のキャパシティの見積もりがどれほど優れているかはわかりません。つまり、今後数か月間で Azure がこれに対してどれだけうまく機能するかはわかりません。これは問題ないと思います。Microsoft はこれをうまく処理するだろう -- しかし、私はまだこれについての証拠を持っていない.

于 2010-01-26T14:57:24.387 に答える
3

2013 年 6 月 26 日の時点で、Windows Azure にはプラットフォームに組み込まれた自動スケーリング機能が含まれています。現時点ではプレビュー段階であり、2 つのメトリック (CPU 使用率とキューの長さ) のみがサポートされているため、非常に直感的で簡単に有効にすることができます。それをチェックしてください

于 2013-07-04T15:08:26.560 に答える
2

はい、新しくリリースされたAutoscaling Application Blockにより、Azureのインスタンス数のプログラムによるスケールアップとスケールダウンがこれまでになく簡単になりました。

このスレッドに関する私の詳細な回答を参照してください。

于 2011-12-03T18:43:16.290 に答える