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