デジタル化が進む現在、企業は自社システムのクラウド移行を進めています。クラウドは必要なときに必要な分だけリソースを利用でき、かつ信頼性の観点から安定したシステム基盤として主流となっています。しかし想定以上のメモリやデータなどの利用があり、一時的にリソース不足が発生した場合、素早くリソースの調整・追加を行わなければ、システムが利用できなくなり、ユーザーからの信頼を失うリスクがあります。本記事では、クラウド環境においてリソース不足が発生する原因について解説し、負荷が増大した場合にリソースを増強させる方法、リソース監視やリソースの最適化を実現するAzureのサービスについて解説します。
クラウド環境のリソース不足が発生する主な要因
開発段階で必要なリソース構成またはリソース量を正確に見積もることは困難
システムを構築する際、システムに求められる要件からリソース構成やリソース量を見積もり用意しておく必要があります。検討される事項としては、サーバーのスペックや台数・ストレージの容量・ネットワークの帯域などが、挙げられます。
既存システムがあれば、過去の運用実績から各数値を高い精度で見積ることが可能です。しかし新規システムの場合、トラフィック量や保存するデータ容量などの数値を正確に見積もることは難しいでしょう。
リソース量の見積もりを間違えれば、運用時の負荷に耐えられず、パフォーマンスの劣化や最悪の場合システムダウンを引き起こすリスクがあります。リソース不足が発生し復旧ができずにいると、顧客からの信頼を失い、多大な機会損失も発生させてしまう場合もあります。
運用後に利用者の増加やデータ量の増加が発生
クラウドは状況に応じて即座にリソースの追加やスペックの変更が可能な特徴があります。ただ、運用後にアクセス数の増加やデータ量の増加が発生した場合は、速やかなリソースのサイジングが必要となります。そのため、継続的にリソース状況の監視が必要となり、障害発生時への備えが求められます。
また、サービスの成長にともないピーク時の負荷に耐えられるリソースを用意しつつ、過剰投資とならない適切なリソース確保を行うことが重要となりますが、見積もりは非常に難しいです。
クラウド環境のリソース増強を実現する方法
リソース増強には「スケールアップ」と「スケールアウト」
クラウドでは、事業者から提供される管理画面から、CPU・メモリ・ハードディスクの増設などのリソース増強が簡単に可能です。ユーザーの利用状況に応じて、スケーラビリティを高めるための仕組みとして、「スケールアップ」と「スケールアウト」を紹介します。
「スケールアップ」とは
- メモリやハードディスクの増設、コア数の多いCPUに交換すること
- 1つのサーバーの処理能力を向上させるため、複数サーバーに分散させたくないシステムに有効
「スケールアウト」とは
- サーバーの台数を増やして処理を分散させること
- 1台のサーバーが障害を起こしても、他のサーバーでカバーできるため可用性が高い
スケールアップは、1つのサーバーのスペックを高めて、リソースの増強を行うのに対して、スケールアウトはサーバー台数を増加することで、リソースの増強を行います。
どちらを選択すればいいかは、サーバーの処理内容により異なりますが、一般的にはリアルタイムに複数のユーザーに影響を与えるデータの管理を行う場合は「スケールアップ」、サーバー間のデータの整合性や実行順序を気にしない場合は「スケールアウト」を選択するといいでしょう。
サーバー増強の自動化には「オートスケール」
サーバー負荷に応じて自動でサーバーを増強させる仕組みとして「オートスケール」があります。
クラウド上でオートスケールを構築すれば、突発的に大量アクセスが集中した際、自動でサーバーの増減をしてくれるので、担当者の手を煩わせることなく、運用業務の効率化を実現できます。
アクセス数が減少すれば、自動的にサーバー台数を減らせるため、常に必要最小限のサーバー台数でシステムを安定的に稼働でき、コスト削減ができます。
リソース最適化の施策
システム全体のリソースの把握や分析を行うためには、監視ツールやアドバイザーツールの利用が有効です。
突発的に発生するリソース増加の原因の特定や、リソース運用課題の解決にツールを活用することで、担当者の運用・管理の手間を削減できます。
また、リアルタイムな利用状況の監視をはじめ、継続的にリソースに関するデータを把握・分析することで、自社のITシステム利用の意思決定にも役立てられます。
Azure MonitorとAzure Advisorとは?
リアルタイムでリソースの管理や監視を行い、突発的に負荷が発生した場合には管理者へ通知し、最適な対応をアドバイスする機能などを提供している、Azure MonitorとAzure Advisorについて解説します。
Azure Monitorとは
Azure Monitorは、オンプレミスやプライベートクラウド・パブリッククラウドなど、Azure上のリソースを監視する「統合監視ソリューション」です。Azure Monitor は「メトリック」と「ログ」で構成されており、リソース監視のために異なる種類のデータを収集・分析します。
- 「メトリック」とは、仮想マシンの利用率・ネットワークのトラフィック量など、リソース状況を表す数字のことです。「メトリックアラート」では、監視対象のリソースからのメトリック値がしきい値を越えた場合、担当者にショートメッセージやメールなどで通知を行います。
- 「ログ」は、マシン起動時やリソース変更時の情報など、内部で発生したイベントの記録のことです。
ログアラートでは、リソースを中心にログ監視を一定の間隔で監視し、結果のエラーに応じてアラートを発生します。
Azure Monitorを利用すると、インフラや提供するアプリケーションなどを開発から運用まで継続的に監視できるため、可用性や信頼性の高いシステム構築を実現できます。
障害発生時には、リソース (仮想マシン、コンテナ、ストレージ、ネットワークなど)を含むデータをもとに根本的な原因を検出するための分析、分析をもとに適切な意思決定をする判断材料としても役立てられます。
Azure Advisorとは
Azure Adviserは、ユーザーの使用状況とリソースの構成を自動で分析して、リソースの費用対効果やパフォーマンス、信頼性に優れたベストプラクティスの推奨事項を案内してくれる「コンサルタントサービス」です。
Azure Advisorから提供されている機能は、主に4つあります。
- ベストプラクティスを提示する「推奨事項機能」
- 素早く推奨事項の実装ができる「Azure Quick Fix機能」
- リソースの構成や使用状況を継続的に評価し、一元的にスコアリングする「Advisor スコア機能」
- 新たな推奨事項を通知してくれる「アラート機能」
Azure Adviserでは、不要なリソース(使用率の低い仮想マシンや利用されていないアカウントなど)を削減することで、提供するアプリケーションの実行スピード・応答性能などのパフォーマンス向上に、リソースを活用できる仕組みを提供しています。
影響のレベルや推奨事項の種類によって、迅速に対応が必要かどうかの可否が判断できるため、自社のリソース状況の情報共有やリソース増減の調整に役立てられます。
まとめ
突発的なリソース不足に迅速に対応するため、必要なときに必要な分だけリソースを増強する仕組み作りが求められます。
Azure MonitorとAzure Adviserを利用することで、リソースの使用状況のリアルタイムな監視や継続的な評価を行い、リソースの最適化やコスト削減・安定的なシステム基盤の構築が実現できます。ぜひクラウド環境におけるリソース課題に対処するツールとして、検討してみてください。