Google Cloud Well-Architected Framework の信頼性の柱におけるこの原則では、水平スケーラビリティを活用するうえで役に立つ推奨事項が示されています。水平スケーラビリティを使用すると、Google Cloud のワークロードを効率的にスケーリングし、パフォーマンスを維持できます。
この原則は、信頼性のスコープ設定の重点分野に関連しています。
原則の概要
システムを水平アーキテクチャに再構築します。トラフィックやデータの増加に対応するために、リソースを追加できます。使用されていないリソースを削除することもできます。
水平スケーリングの価値を理解するには、垂直スケーリングの制限事項を考慮してください。
垂直スケーリングの一般的なシナリオは、重要なデータを含むプライマリ データベースとして MySQL データベースを使用することです。データベースの使用量が増加すると、より多くの RAM と CPU が必要になります。最終的に、データベースはホストマシンのメモリ上限に達し、アップグレードが必要になります。このプロセスを数回繰り返す必要がある場合があります。問題は、データベースの拡張にハードリミットがあることです。VM サイズは無制限ではありません。データベースは、リソースを追加できなくなるポイントに達することがあります。
リソースが無制限であっても、大規模な VM は単一障害点になる可能性があります。プライマリ データベース VM で問題が発生すると、エラー レスポンスが発生したり、すべてのユーザーに影響するシステム全体の停止が発生したりする可能性があります。リソースの冗長性による高可用性システムを構築するで説明されているように、単一障害点を回避します。
これらのスケーリングの上限に加えて、垂直方向のスケーリングはコストが高くなる傾向があります。コンピューティング能力とメモリ容量が大きいマシンを取得すると、費用が指数関数的に増加する可能性があります。
一方、水平スケーリングは費用を抑えることができます。スケーリング用に設計されたシステムでは、水平スケーリングの可能性は事実上無限です。
推奨事項
単一 VM アーキテクチャから水平方向のマルチマシン アーキテクチャに移行するには、慎重に計画し、適切なツールを使用する必要があります。水平スケーリングを実現するには、次のサブセクションの推奨事項を検討してください。
マネージド サービスを使用する
マネージド サービスを使用すると、水平方向のスケーリングを手動で管理する必要がなくなります。たとえば、Compute Engine マネージド インスタンス グループ(MIG)を使用すると、VM を追加または削除してアプリケーションを水平方向にスケーリングできます。コンテナ化されたアプリケーションの場合、Cloud Run は、受信トラフィックに基づいてステートレス コンテナを自動的にスケーリングできるサーバーレス プラットフォームです。
モジュラー設計を推進する
モジュラー コンポーネントと明確なインターフェースにより、アプリケーション全体をスケーリングするのではなく、必要に応じて個々のコンポーネントをスケーリングできます。詳細については、パフォーマンス最適化の柱のモジュール設計を推進するをご覧ください。
ステートレス設計を実装する
アプリケーションをステートレスに設計します。つまり、ローカルに保存されたデータはありません。これにより、データの整合性を気にすることなくインスタンスを追加または削除できます。