皆さんは、こんな経験はありませんでしょうか?
・人気ブランドの新作アイテムのネット購入しようと思ったらアクセスが殺到し、購入ページにたどりつけなかった。
・サービス開始直後のゲームにログインしようとしたら、予想以上のユーザーがアクセスし、サーバーがダウンしてしまって遊べなかった。
前者も後者もその後は運営が謝罪し、メーカーなら再販計画など検討したり、ゲーム運営会社ならゲーム内で使えるアイテムを配布したりすることはよくある話ですね。サービスが止まってしまうことは本来その時間に売上を出すことが出来たはずなのに、できないという機会損失になってしまいます。そのためにはあらかじめ対策として、突然のアクセスに耐えうる環境を構築する必要があります。
オンプレミス環境なら、サーバーを増やして物理的に分散するといったことが取れます。しかしながらデメリットが多くあるように感じます。
・緊急時に増設できない
・逆にアクセスが少ない時にリソースが余る
・サーバーが増えるとサーバー管理のリソースが増加し、人件費が増える
しかし、クラウド環境が整っているのであればロードバランサーを導入し、対策することが可能です。Azureにはその機能が備わっています。それが、【Azure Load Balancer】です。
Azure Load Balancerには2種類存在します。
・パブリックロードバランサー
アウトバウンド通信を仮想ネットワーク内にあるVirtual Machinesに負荷分散する。
・内部ロードバランサー
フロントエンドでプライベートIPアドレスが必要な場合に使用する。仮想ネットワーク内のトラフィックを分散することができる。
この2つを一緒に使う事も可能なため、組み合わせることでさらに可用性を向上させることが可能になります。
オンプレミス環境の負荷分散対策より、Azureのサブスクリプションに登録しているのであれば即日使用可能かつ、スケールに合わせてカスタマイズできる上に、管理コストを減らせるのは大きな強みではないでしょうか。
Azureには他にも上記以外にGateway Load Balancerというロードバランサーを連携させるサービスもあります。
用途に応じて負荷分散できるサービスを選択しましょう。
Azure以外のクラウドサービスにもロードバランサーのサービスがありますので、興味があればぜひ調べてみてください。
参考サイト
従来の物理型ロードバランサーが抱える4つの課題とは? | VMware Cloud Frontier by Networld
Azure Load Balancer の概要 - Azure Load Balancer | Microsoft Learn