クラウドの弾力性は、クラウド コンピューティングの重要なメリットです。これにより、企業のクラウド インフラストラクチャは需要に応じてリソースを自動的に増減できます。クラウドの弾力性の核となる意味は、人手を介さずにワークロードの予測不可能な変化に適応することです。
たとえば、e コマース ウェブサイトでは、ブラック フライデーのような祝日にトラフィックが大幅に急増する可能性があります。弾力性のあるコンピューティングでは、自動的にサーバーを増やしてウェブサイトのトラフィックの急増に対処するため、お客様はスムーズにショッピングを楽しむことができます。祝日が終わると、システムはリソースを減らして通常レベルに戻します。
システムが弾力性を利用するには、主として水平方向と垂直方向の 2 つの方法があります。
これは「スケールアウト」または「スケールイン」とも呼ばれます。これには、システムにマシンやインスタンスを追加または削除することが含まれます。より多くの容量が必要な場合は、サーバーを追加します。不要になったら削除します。これは、複数のサーバーに分割して同時に実行できるアプリケーションによく使用されます。
これは「スケールアップ」または「スケールダウン」とも呼ばれます。これには、単一マシンのリソースの増減も含まれます。たとえば、特定のサーバーの処理能力を向上させる必要がある場合は、CPU、メモリ、ストレージを増やします。完了したら、これらのリソースを減らすことができます。
弾力性とスケーラビリティという用語は同じ意味で使用されることがよくありますが、実際には意味が異なります。
例えて言えば、スケーラビリティは、数か月にわたるトレーニングで大規模なマラソン大会に備えるようなものです。弾力性は、レース中に他のランナーに合わせてペースを瞬時に上げたり下げたりできるランナーのようなものです。
弾力性のあるコンピューティングは、企業やデベロッパーに多くのメリットをもたらします。
費用対効果
弾力性のあるコンピューティングでは、使用したリソースに対してのみ料金を支払うため、費用を節約できます。需要が低いときには、余分なサーバーを稼働させておく必要がないため、無駄な支出を削減できます。また、年に数回しか必要としないピーク トラフィックを処理するために高価なハードウェアを購入する必要もなくなります。
高可用性と信頼性
弾力性のあるコンピューティングでは、リソースを自動的に調整することで、予期しないトラフィックの急増時でもアプリケーションの可用性と応答性を維持できます。これにより、ユーザーの不満やビジネスの評判の低下につながる可能性のある、速度低下や障害を防ぐことができます。
パフォーマンスの向上
システムは必要に応じてリソースを自動的に追加するため、高速な応答時間とスムーズなユーザー エクスペリエンスを維持できます。これは、オンライン ゲーム、ストリーミング サービス、e コマースなど、ワークロードを予測できないアプリケーションには特に重要です。
シンプルな管理
スケーリング プロセスが自動化されているため、デベロッパーや IT チームはリソースを手動でモニタリングして調整する必要がありません。これにより、新機能の開発やユーザー エクスペリエンスの向上など、他の重要なタスクに集中するための時間と労力を確保できます。
エンタープライズ環境のデベロッパーにとって、弾力性のあるコンピューティングは単なる機能ではありません。復元力、費用対効果、パフォーマンスに優れたアプリケーションを構築するのに役立つ重要な戦略です。つまり、予測不可能なワークロードにインテリジェントに適応できるシステムを設計し、オーバー プロビジョニングとアンダー プロビジョニングの両方を回避することです。これは、e コマース プラットフォーム、金融サービス、データ処理パイプラインなど、24 時間 365 日利用可能でなければならないミッション クリティカルなアプリケーションには特に重要です。
クラウドの弾力性は、Compute Engine のマネージド インスタンス グループ(MIG)の機能を支える基本原則です。VM を手動でプロビジョニングしてトラフィックを処理する代わりに、需要の変化に自動的に適応するシステムを設計できます。MIG は、単一のエンティティとして管理できる同一 VM のグループであり、Compute Engine で弾力性のあるシステムを構築するための主要なツールです。MIG はオートスケーラーを使用して、事前定義された指標に基づいてグループから VM を自動的に追加または削除します。このようにして、MIG は弾力性を実現します。
以下に、企業開発者がこれらのコンセプトを実際に適用して、スケーリング可能なシステムを構築する方法を示します。
VM ブループリント: インスタンス テンプレートを作成する | 弾力性のあるシステムを作成するには、インスタンス テンプレートが必要です。このテンプレートは、マシンタイプ、ブートディスク、必要な起動スクリプトなど、アプリケーションの VM 構成の信頼できる唯一の情報源として機能します。これにより、新しい VM はすべて最新 VM の正確なレプリカとなるため、一貫性が高まり、ロールアウトが簡素化されます。 |
マネージド インスタンス グループを構成する | Google Cloud コンソールの [インスタンス グループ] ページに移動し、新しいマネージド インスタンス グループを作成します。作成したインスタンス テンプレートを選択し、インスタンスの最小数と最大数を設定して、グループのゾーンを選択し、冗長性と高可用性を確保します。 |
自動スケーリング ルールを実装する | これがクラウドの弾力性の核心です。企業のデベロッパーは、単純な CPU ベースのスケーリングではなく、Cloud Monitoring の指標(バックエンド ワーカー サービスのキューの長さなど)に基づく高度な自動スケーリング ルールを実装できます。また、履歴データを使用して、トラフィックの急増が予想される前に新しい VM を起動する予測自動スケーリングを使用することもできます。 |
ロードバランサを追加する | 公開アプリケーションでは、受信したユーザー トラフィックをマネージド インスタンス グループ内のすべての VM に分散するロードバランサが不可欠です。これにより、単一の VM が過負荷になることがなく、アプリケーションの高可用性が維持されます。 |
VM ブループリント: インスタンス テンプレートを作成する
弾力性のあるシステムを作成するには、インスタンス テンプレートが必要です。このテンプレートは、マシンタイプ、ブートディスク、必要な起動スクリプトなど、アプリケーションの VM 構成の信頼できる唯一の情報源として機能します。これにより、新しい VM はすべて最新 VM の正確なレプリカとなるため、一貫性が高まり、ロールアウトが簡素化されます。
マネージド インスタンス グループを構成する
Google Cloud コンソールの [インスタンス グループ] ページに移動し、新しいマネージド インスタンス グループを作成します。作成したインスタンス テンプレートを選択し、インスタンスの最小数と最大数を設定して、グループのゾーンを選択し、冗長性と高可用性を確保します。
自動スケーリング ルールを実装する
これがクラウドの弾力性の核心です。企業のデベロッパーは、単純な CPU ベースのスケーリングではなく、Cloud Monitoring の指標(バックエンド ワーカー サービスのキューの長さなど)に基づく高度な自動スケーリング ルールを実装できます。また、履歴データを使用して、トラフィックの急増が予想される前に新しい VM を起動する予測自動スケーリングを使用することもできます。
ロードバランサを追加する
公開アプリケーションでは、受信したユーザー トラフィックをマネージド インスタンス グループ内のすべての VM に分散するロードバランサが不可欠です。これにより、単一の VM が過負荷になることがなく、アプリケーションの高可用性が維持されます。