
クラウドでは、サーバーの「スケーリング」機能が提供されています。この機能を利用することで、アクセスが集中する時間帯でサーバーを増強したり、利用の少ない休日に縮小しコストを抑えたりすることができます。
本記事では、サーバースケーリングの基本的な概念と、Azureでの操作方法を解説します。
スケーリングの種類
スケーリングには、「水平スケーリング」と「垂直スケーリング」があります。
まずはこれらの用語と使い分けについて説明します。
「水平スケーリング」とは?
インスタンス数 (サーバーの台数) を増減させるのが、水平スケーリングです。
- スケールアウト (Scale Out) :インスタンス数を増やす
- スケールイン (Scale In) :インスタンス数を減らす

「垂直スケーリング」とは?
CPUやメモリなどサーバーの性能を変更するのが、垂直スケーリングです。
- スケールアップ (Scale Up) :サーバーの性能を上げる
- スケールダウン (Scale Down) :サーバーの性能を下げる

この2種類のスケーリングは正しく使い分ける必要があります。正しく使い分けないと、十分な効果が得られない可能性があります。
水平スケーリングを採用するケース
WebアプリケーションやAPIのように、複数台で処理を分担しやすい場合に向いています。
- アクセス数が多い時間帯はインスタンス数を増やし、応答速度を改善する
- インスタンス数を複数用意しておくことで、可用性 (常に利用できる状態を維持すること) を高める
垂直スケーリングを採用するケース
バッチ処理やサーバー内でセッション管理しているような、処理を分担できない場合に向いています。
- 負荷の高い処理に備えて、サーバーの性能を上げる
- アクセス数が少ない時間帯は、サーバーの性能を下げてコストを抑える
Azureにおけるスケーリングの操作方法
ここからは、AzureのApp Serviceを例にスケーリング方法を解説します。
水平・垂直どちらも、Azure Portalでの簡単な画面操作のみで行うことができます。
水平スケーリングの操作方法
App Serviceプランのサイドメニューで、「スケール アウト (App Service のプラン) 」を選択し、インスタンス数を変更して保存します。操作はこれだけです。

垂直スケーリングの操作方法
App Serviceプランのサイドメニューで、「スケール アップ (App Service のプラン) 」を選択し、プラン (サーバーの性能) を変更して保存します。こちらも、操作はこれだけです。

Azureにおける自動スケーリングの設定方法
Azure Portalで簡単にスケーリングすることができますが、頻繁に行う場合は手間となってしまいます。
Azureでは、指定した時間帯や利用状況に応じて自動でスケーリングするように設定することができます。
例)
- 毎週木・金曜の9:00~12:00はインスタンス数を2に増やす
- CPU使用率が70%を超えた場合はインスタンス数を1増やし、30%を下回った場合は1減らす
今回は、「毎週木・金曜の9:00~12:00はインスタンス数を2に増やす」を例に解説します。
水平方向の自動スケーリングの設定方法
スケールアウト方法を選択する
スケールアウト方法として、「ルールベース」を選択します。

スケーリングの条件を新規追加する
「カスタム自動スケーリング」を選択して、スケーリングの条件を新規追加します。


スケーリングの条件を入力して保存する
スケールアウトしたい時間帯と、インスタンス数を指定します。
CPU使用率などのメトリックに応じてスケーリングしたい場合は、「メトリックに基づいてスケーリングする」を指定します。
スケーリングの条件は複数指定可能です。条件を入力したら、保存して完了です。

垂直方向の自動スケーリングの設定方法
Azureでは、垂直方向の自動スケーリング機能は標準で提供されていません。ただし、「Azure Automation」を使用することで実現できます。
このAzure Automationは、指定した時間 (例えば、毎週木・金曜の10:00) に特定のプログラムを自動で実行させることができます。
これを利用して、特定の時間にApp Serviceのプラン変更を設定することで、垂直方向の自動スケーリングを実現できます。
注意事項
スケーリング後の費用
スケールアウトやスケールアップを実施した場合、サーバーが増強されるため費用は高くなります。
- スケールアウト:インスタンス数に応じて費用が増加します。
- スケールアップ:選択するプランに応じて費用が増加します。
| サービスプラン | vCPU(s) | RAM | 費用(1時間あたり) |
|---|---|---|---|
| B1 | 1 | 1.75 GB | $0.089 |
| B2 | 2 | 3.50 GB | $0.177 |
| B3 | 4 | 7 GB | $0.354 |
| P0v4 | 1 | 4 GB | $0.152 |
| P1v4 | 2 | 8 GB | $0.304 |
| P2v4 | 4 | 16 GB | $0.608 |
| P3v4 | 8 | 32 GB | $1.216 |
過剰な構成にならないように、まずは性能が低いプランから利用を開始し、利用状況に合わせてインスタンス数やプランを調整していくとよいでしょう。
また、自動スケーリングを利用している場合でも、想定外の負荷がかかって意図しないコストが発生する可能性があるため、CPU使用率や応答時間、インスタンス数などを監視することが重要です。
垂直方向のスケーリングではサーバーが再起動される
垂直スケーリングでは、スケーリングの変更時にサーバーが再起動されます。
再起動されると実行中の処理は中断されるため、重要な処理中に再起動が発生するとシステム障害につながるおそれがあります。
垂直スケーリングを行う際は、バッチ処理の実行時間やメンテナンス時間と重ならないように、実施タイミングに注意してください。
まとめ
「水平スケーリング」と「垂直スケーリング」の概要と、Azureにおける具体的なスケーリング方法を解説しました。
クラウドを利用することで、簡単にスケーリングを行うことができます。システムの利用状況に合わせて柔軟にスケーリングすることで、システム利用がより快適になりクラウド利用コストの抑制にもつながります。
弊社は、Azureを利用したシステムの開発実績が豊富にあります。今回紹介したスケーリングについては、利用状況に合わせたスケーリング設計も支援しております。クラウドに関する悩み事やご相談がありましたら、お気軽に弊社にご連絡ください。
