まとめ
弾力性に関してこのモジュールで説明した重要な点を以下に示します。
- VM や他のクラウド リソースの負荷が変化しないことはほとんどありません。 負荷は変化するものであり、時間が経過すると 1 桁以上負荷が変化する場合もあります。
- ピーク時の負荷に合わせてコンピューティング容量のサイズを設定すると、サービスの品質 (QoS) は保証されますが、コストとエネルギーの使用量が増加します。
- 弾力性とは、負荷が高くなったらリソースを追加し、負荷が低くなったらリソースを削除できる機能のことです。
- クラウドでの弾力性は、VM やデータベースなどのリソースをスケーリングすることで実現できます。
- スケールインとスケールアウト (水平スケーリング) とは、タスクに割り当てるリソースの数を増減することです。たとえば、Web サイト ユーザーにサービスを提供する VM の数を 10 から 15 に増やす場合。
- スケールアップとスケールダウン (垂直スケーリング) とは、既存のリソースをより能力の高いもの、または低いものに置き換えることです。たとえば、2 つのコアと 4 GB の RAM を備えた Web サーバー VM を、4 つのコアと 8 GB の RAM を備えたものに置き換える場合。
- 需要に合わせてリソースをスケーリングすると、リソースの使用率が比較的一定に保たれ、コストが削減され、エネルギー使用率が向上します。
- 自動スケーリングを使用すると、クラウド管理者によって設定されたルールまたはポリシーに基づいてスケーリングを行うことができます。 ルールまたはポリシーには、時間ベース、メトリック ベース、またはその両方を指定できます。 メトリック ベースの自動スケーリングの例は、平均 CPU 使用率が事前に定義したしきい値 (70% など) に達したら追加のインスタンスをオンラインにするような場合です。
- 時間ベースの自動スケーリングは、スケジュール自動スケーリングとも呼ばれ、負荷が周期的で予測可能な場合に最も適しています。
- メトリック ベースの自動スケーリングでは、予測可能な負荷と予測できない負荷の両方を処理できます。
- 効果的な負荷分散は、スケーラブルなクラウド サービスを実装するうえで非常に重要です。
- ロード バランサーでは、ラウンドロビン アルゴリズムやハッシュ ベース アルゴリズムなど、さまざまな種類のアルゴリズムを使用して負荷が分散されます。
- 一部のロード バランサーでは、各ノードでの要求実行時間や CPU 使用率などのメトリックを使用して、よりインテリジェントに要求のディスパッチが試みられます。
- ロード バランサーを使用すると、バックエンド リソースの正常性が監視され、それらのリソースが使用できない状況が認識されることで、可用性も向上します。
- ロード バランサーが 1 つだけだと単一障害点になるため、多くの場合、ロード バランサーはペアでデプロイされます。
- サーバーレス コンピューティングでは、従量課金制の価格設定、自動的なスケーラビリティ、管理コストの削減などの利点が提供されます
- サーバーレス コンピューティングの一例であるサーバーレス関数を使用すると、コードをクラウドにアップロードし、実行するタイミングを定義することができます。
- もう 1 つの例であるサーバーレス ワークフローを使用すると、ビジネス ワークフローを定義し (通常は、グラフィカル デザイナーを使用し、コードを記述せずに)、いつ実行するかを指定できます。
- サーバーレス コンピューティングはデータベースにも拡張され、需要に合わせてスケーリングされます。