公開日:2021年8月16日最終更新日: 2021年10月18日
サーバーの高可用性を実現するには様々な手法があります。古くから使われているロードバランサーやDNSによるラウンドロビンなど、現在でも通用する技術ですが、もっと効率の良いサービスがクラウドには存在します。
今回はこれまでの手法の概要とAzureで扱える最新の手法の紹介を通して、クラウドサービスでの冗長構成のメリットをお伝えできればと思います。
目次 <Contents>
これまでの冗長化や負荷分散
DNSラウンドロビン
DNS(Domain Name System)への登録を工夫することで、同じドメインに対するアクセスに複数のホスト(サーバー)IPへのアクセスを提供します。構造が単純で安価で簡単に導入することができますが、配下のホストとのセッション管理ができなかったり、障害の発生したホストへも名前解決の通信を提供してしまうなど、欠点が多い方式です。
ロードバランサー
配下にある複数のホストを管理し、負荷や障害状況の有無を検知・調整しながら通信を分散してくれるのがロードバランサーです。障害のあるホストへはアクセスをさせないようにする他、アクセスしている間に負荷を軽減しようと、別ホストに通信経路が移ったとしてもセッションを保持してくれる機能があります。
代表的な例がWEBサーバーのロードバランシングですが、サーバー証明書の応答をロードバランサー自身が受け持つことで、WEBサーバー自身の処理能力低減や応答速度の向上機能もあり、負荷分散の代表的な方式と言えます。
Azureで利用できる「VMSS」とは
VMSS(Azure Virtual Machine Scale Sets)とは、その名の通りAzure上で利用できる仮想マシン(以下VM)をスケールという単位で管理する仕組みで、上記であげた古い方式で登録していたような一対多のホスト構成をとる必要がありません。VMをスケールの単位にまとめ上げることで1つのリソースとして管理し、大量のVMインスタンスをAzure側で最適化できます。
自動復旧の機能もあり、高可用性はオンプレミスの比ではありません。
このサービス構成でもロードバランサーは登場しますが、複数のホストを一つ一つ登録するようなことはなく、複数VMが所属しているリソースを登録するだけなので構築運用も簡単に行えます。
実際にVMSSのスケールをセットしてみる
実際にVMSSを構成してみましょう。検証環境のAzureで試していきます。
- リソースグループと仮想ネットワークの作成
- ロードバランサーの作成
- VMSSの作成
- ロードバランサーの設定
- 自動修復の設定
1. リソースグループと仮想ネットワークの作成
今回リソースグループは最初から作られているため、VMSS用の仮想ネットワークを作成します。
1ポータルから仮想ネットワークを選択し、仮想ネットワークの作成を行います。
2①有効なサブスクリプション、リソースグループを選択し、名前の入力と地域を選択し
②「IPアドレス」をクリックします。
3defaultのネットワークがあるのでこのままで大丈夫です。「セキュリティ」をクリックします。
4①全て無効化を選択し
②「タグ」をクリックします。
5特に指定がなければ空欄のまま「確認および作成」をクリックします。
※以降本記事内でタグは作成しません。
6名前や地域、ネットワークを確認して「作成」をクリックします。
2. ロードバランサーの作成
1ポータルの検索窓からロードバランサーを検索し選択します。
2「ロードバランサーの作成」を選択します。
3①リソースや名前地域など入力し、先ほど作成したネットワークを選択します。検証用なので種類は内部で大丈夫です。
②記入できたら「確認および作成」をクリックします。
4内容を確認して「作成」をクリックします。
3. VMSSの作成
1ポータルの検索窓からVMSSを検索し選択します。
2「仮想マシーンのスケールセットの作成」をクリックします。
3①リソースグループや地域など選んでいきます。
②スケールで管理する仮想マシンのセットを作成します。今回はUbuntuで検証用インスタンスのA2を利用します。
認証はSSH公開キーで新しいキーの組を作成しておきましょう。
4①タブ「ネットワーク」を選択
②作成したネットワークを選択し
③「ロードバランサーを使用する」にチェックを入れます。
5①作成したロードバランサーを選択
②バックエンドプールという配下になるグループを作成します。
6①正常性タブでアプリケーションの正常性監視を有効にするのチェックがありますが、いったん外したままにします。
②「確認および作成」をクリックします。
7内容を確認して、「作成」をクリックします。
8「秘密キーのダウンロードとリソースの作成」を選択しておきます。
9完了するとスケールセットに2つのインスタンスが作成されています。
4. ロードバランサーの設定
1①ロードバランサーを選択
②「正常性プローブ > 追加」を選択します。
2Webサーバーの標準ともいえるTCP80番での確認項目が記入されていますが、検証なのでこのままで「追加」をクリックします。
3①負荷分散規則を選択し
②「追加」を選択します。
4①TCP80番で負荷分散するよう設定
②先ほど設定したプローブなど選択
③「追加」をクリックします。
5. 自動修復の設定
①ポータルからVMSSを選択し、「正常性と修復」という項目を選択
②「アプリケーションの正常性監視を有効にするの項目で有効」を選ぶと、各項目設定ができるようになります。
③正常性の確認はアプリ観点とロードバランサーのプローブ観点で行えますが、今回は先ほど作成したロードバランサーでの確認を行います。
④正常性プローブを選択し、「自動修復をオン」にして保存します。
以上で設定は完了です。配下のインスタンスをWEBサーバーとして機能させれば、正常性確認と負荷分散、自動修復ができるようになります。
まとめ
VMSSの設定方法をご紹介しました。これまでの冗長化や負荷分散を知っている人も知らない人も、これからのクラウド時代に扱われていく自動修復機能付きサービスとして、このAzure VMSSを評価・検討してみてはいかがでしょうか。
補足になりますが、中級以上の方はPowerShell(VMSSの作成や管理)を使うのも便利です。
ただ、操作が難しいので、慣れるまではポータルからの操作でも十分です。慣れてカスタマイズをしたくなったら、チャレンジしてみてはいかがでしょうか。