一方で、スケールアウトにも特有の課題が存在します。複数台のサーバー間で処理を分担するためには、リクエストを適切に振り分ける負荷分散の仕組みが必須となります。さらに、データベースなどのように「データの一貫性(整合性)」を厳密に保つ必要があるシステムでは、複数のサーバー間で常にデータを同期させる仕組みが必要となり、ソフトウェアの設計や運用が非常に複雑になります。そのため、ユーザーのセッション情報などをサーバー側に保持しない「ステートレス」な設計を採用することが、スケールアウトを成功させるための重要な鍵となります。近年ではクラウドサービスの普及により、アクセス状況の変動に応じて自動的にサーバーの台数を増減させる「オートスケール」機能が標準的に利用されるようになり、このアーキテクチャの重要性は飛躍的に高まっています。
情報処理の試験において、スケールアウトとスケールアップ(垂直方向の拡張)の使い分けは非常に頻出のテーマです。以下の対比を正確に理解しておくことが得点源となります。
スケールアップ、ロードバランサ、ステートレス