コンピューティングの負荷パターン

完了

VM (または VM のセット) や Web アプリなどのクラウド リソースへのトラフィックが一定であり、変化しない場合は、スケーリングする必要はありません。 クラウド管理者は、負荷を処理して終わらせるために必要な数のインスタンスをプロビジョニングするだけで済みます。 しかし、トラフィック パターンは、時間の経過と共に変化 "するものです"。それは、予測できることもあれば、予測できないこともあります。 現実には、管理者は、管理しているリソースの負荷を診断し、スケーリングを使用して、システムが需要に対応できるようにする必要があります。

スケーリングの方法について説明する前に、VM や他のクラウド リソースで発生する一般的な負荷パターンを分析することによってスケーリングを行う "理由" について説明します。

一貫した増加

スケーリングが必要になる最も一般的な要因の 1 つは、需要の一貫した増加です。 図 1 は、ある会社の Web サイトへのトラフィックを 24 か月にわたって示したものです。 その会社は急速に成長しており、Web サイトへのトラフィックにそれが反映されています。 1 台の Web サーバーで 1 単位時間に 5,000 件の要求を処理できるとすると、最初は 3 ないし 4 台の Web サーバーで済んでいたものが、2 年後には、需要の増加に対応し、顧客に引き続きよいサービスを提供するためには、約 20 台が必要になります。

図 1: 一貫した増加。

図 1: 一貫した増加。

一貫した増加は、変化が安定しており、緩やかであるため、最も簡単に対応できる負荷パターンです。 いつ次のサーバー (またはサーバーのセット) が必要になるかを予測でき、準備に月単位ではなくても週単位の余裕があるので、おそらくは物理サーバーでもスケーリングできますが、クラウド コンピューティングなら、数分で新しい仮想サーバーをオンラインにすることができます。 また、24 か月の傾向は安定し、予測可能な増加を示していますが、負荷は短時間で大幅に変動する可能性があります。 クラウド コンピューティングは、物理サーバーによるスケーリングより、短時間の傾向に対する適応性がはるかに優れています。

常に変動している負荷

クラウド コンピューティングによって提供される迅速な弾力性は、負荷が比較的短い間隔で予測不可能な変動を示す場合に不可欠です。 図 2 は、ある Web サイトの 24 時間の負荷を示したものです。 やはり、1 台のサーバーで 1 単位時間に 5,000 件の要求を処理できるとすると、必要なサーバーの数は 1 日のうち 2 台から 16 台まで変化します。 常に 16 台の仮想 Web サーバーをオンラインにしておくことでこのトラフィックに対応できますが、クラウド サービス プロバイダーではアイドル状態の VM に対しても課金されることに注意してください。 過剰な容量は、エネルギーが無駄になるだけでなく、約 2 倍のコストがかかります。

図 2: 常に変動している負荷。

図 2: 常に変動している負荷。

周期的な負荷

図 3 は、定期的に、ある程度予測可能なパターンで増減する負荷を示したものです。たとえば、勤務時間中は需要が増え、夕方から深夜の時間帯は減るような場合です。 この負荷のピーク時には、需要を処理するために約 20 台のサーバーが必要です (1 台のサーバーで 1 単位時間に 5,000 件の要求を処理する場合)。 物理サーバーを 1 日 24 時間のローテーションで動かしたり停めたりするのは現実的ではありませんが、仮想サーバーであれば、スケジュールに従って簡単にプロビジョニングおよびプロビジョニング解除し、サーバーの容量を需要とほぼ等しくすることができます。 1 日のうち 12 時間、物理サーバーをアイドル状態またはあまり使われていない状態にしておくと、不要な CapEx やエネルギー消費が発生します。 仮想サーバーにもコストはかかりますが、必要がないときはプロビジョニング解除し、需要が発生して必要になったらすばやく作成し直すことができます。

図 3: 24 時間ごとに繰り返される周期的な負荷。

図 3: 24 時間ごとに繰り返される周期的な負荷。

予測不可能なバースト

コストとメンテナンスの観点から対応するのが最も困難なパターンの 1 つは、予測できないバーストの発生です (図 4)。 たとえば、週末と休日に負荷が高くなるピザ配達サービスを提供する Web サイトのように、ピークが予測可能な場合は、追加容量を計画することができます。 しかし、予測できない場合は、いつでも対応できるように準備する必要があります。

図 4: 予測不可能なバースト。

図 4: 予測不可能なバースト。

曲線の上端から最も高いポイントを通るように描いた水平な線までの間の領域を、過剰コスト (ピーク時の負荷を処理するためにプロビジョニングされ、トラフィックが少ない時間は比較的アイドル状態になっているサーバーのコスト) と考えることができます。 この場合、図 4 の負荷に対して単位時間あたり 10 万件の要求に対応する容量を提供するコストは、図 3 で同等の容量を提供するコストより大幅に高くなります。

ピーク時の需要の大きさ (必ずしも時間とは限りません) を予測し、コストを気にすることができない場合は、最大の負荷を処理するのに十分なサーバーをプロビジョニングすることで、常に十分な容量を提供できます。 クラウド コンピューティングを使用すると、必要になったらリソースをオンラインにし、不要になったらオフラインにする (そして、料金の発生を防ぐ) ことができます。 弾力性は、クラウド リソースを "スケーリングする" ことによって実現されます。 スケーリングの概念をさらに詳しく調べ、クラウド コンピューティングの経済性において重要な要素である理由を確認しましょう。

自分の知識をチェックする

1.

1 台のサーバーで単位時間あたり 5,000 件の要求を処理でき、ある Web サイトの負荷は最低 5,000 から最高 25,000 まで、比較的一様に変動するものとします。 そのサイトは、仮想マシンを使用してクラウドでホストされており、各 VM には 1 日あたり 4 ドルのコストがかかります。 需要に応じてサイズが設定される柔軟な容量を提供する場合と、ピーク時の負荷を処理できる固定サイズの容量を提供する場合では、年間のコストの差はどれくらいになりますか?