最近担当したAzureプロジェクトで、クライアントのWebアプリケーションアーキテクチャを見直し、可用性の向上・ダウンタイムの削減・リソース効率の改善を実現しました。今回はその取り組みをご紹介します。
課題
お客様のWebサイトは、Azure Front Doorを使ったリージョンベースの構成で運用されていました。
- 🇯🇵 日本語ユーザー → 日本リージョンのVMへルーティング
- 🇺🇸 英語ユーザー → 米国リージョンのVMへルーティング
一見きれいな設計に見えますが、実運用では深刻な問題が発生していました。
- 米国VMにトラフィックが集中し、頻繁にダウン
- 日本VMはほぼ常にリソースが余っている状態
- リージョン間でのトラフィック分散が実質機能していない
- 結果として、頻発するダウンタイムと不安定なユーザー体験
提案した解決策
トラフィックパターンとシステム挙動を分析した結果、耐障害性と拡張性を兼ね備えた新しい構成を提案しました。
- 英語・日本語の両バージョンを統合アプリケーションに一本化
- 同一構成のAzure Virtual Machineを2台展開
- Azure Front Door オリジングループによる負荷分散ルーティングを設定
- リアルタイムの死活監視を行うヘルスプローブを導入
- サービス継続を保証する自動フェールオーバーを有効化
これにより、アーキテクチャは実質的なアクティブ-アクティブ構成へと進化しました。
成果
改善効果は即座かつ明確なものでした。
- ダウンタイムをほぼゼロに削減
- 2台のVM間でトラフィックを均等に分散
- パフォーマンスとユーザー体験が向上
- 余剰リソースを解消しコスト効率が改善
- 本番環境に耐えうる、より堅牢なアーキテクチャを実現
まとめ
今回の根本原因は「サーバーのスペック不足」ではなく、「トラフィックの分散設計」にありました。
Azure Front Doorの機能を正しく活用し、アクティブ-アクティブ構成へ移行することで、インフラコストを増やすことなく信頼性と効率性を大幅に改善できます。構成を見直すだけで、これだけの効果が出るというのは、クラウド設計の面白さでもあります。
使用したAzureサービス
- Azure Front Door
- Azure Virtual Machines
- ヘルスプローブ & ロードバランシング