サイト内の現在位置を表示しています。

AzureでAzure Resource Managerを使用したHAクラスター環境の自動構築を試してみました(Windows/Linux)

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

クラウド環境における構築作業では、Webコンソール上で多数の画面や入力フォームを操作することでリソースを作成できますが、多くの場合は手作業が必要となるため、作業時間の増加や設定ミスが発生するといった問題があります。
その問題を解決するために、IaC(Infrastructure as Code)と呼ばれる、コードを用いてインフラストラクチャの管理やプロビジョニングを行う手法が活用されています。Microsoft Azure(以降、Azure)でも、Azure Resource Managerを使用することで、Azureリソースのプロビジョニング処理を自動化することができます。

今回はAzure Resource Managerを用いて、Azure上におけるHAクラスター構築を一部自動化してみました。

この記事の内容

1. Azure Resource Managerとは

Azure Resource Manager(以降、ARM)は、Azureのリソースをデプロイおよび管理するためのサービスです。ARMでは、ARM テンプレートをAzure portalやAzure CLIから実行するだけで、Azureリソースの構築ができるようになります。
テンプレートの作成やメンテナンスこそ必要ですが、手作業よりも素早くかつミスなく、様々な環境を自動で構築できるようになり、作業コストや作業ミスを抑えることができます。

ここでは、ARMを使用する際に登場する用語について、簡単に押さえていきます。

リソース

Azureを通じて管理できる要素。リソースの例として、仮想マシン、ストレージ アカウント、仮想ネットワーク等があります。

リソース グループ

リソース グループは、Azure ソリューションの関連するリソースを保持するコンテナーです。グループとして管理したいリソースをまとめることで管理対象を整理しやすくなり、操作を効率化できます。ARMで作成したAzureリソースは、リソース グループにまとめることができます。

ARM テンプレート

ARM テンプレートはJSON形式のテキストファイルです。ARMはテンプレートをAzureリソース作成時の設計図として使用します。テンプレートにAzureリソースの情報(リージョンやリソース種別など)を記述しておけば、ARMがテンプレートの記述内容に従ってAzureリソースを作成します。

2. 構築するHAクラスター構成

本記事では、東日本リージョンのAzure環境に「内部ロードバランサーを使用したHAクラスター」を構築します。HAクラスターの構成図は以下の通りです。

東日本リージョン(Japan East)

HA Cluster Configuration

今回、上記の構成図にあるAzureリソースをARMで自動構築します。
また、構成図に記載はありませんが、本記事では以下についても自動構築しています。

ネットワーク セキュリティ グループ
・操作用クライアント(client)
  • -インターネットからリモートデスクトップでアクセスするための許可設定
  • -仮想ネットワーク内とAzureロードバランサーからアクセスするための許可設定
・現用系サーバー(server1)、待機系サーバー(server2)
  • -仮想ネットワーク内とAzureロードバランサーからアクセスするための許可設定
内部ロードバランサー
・負荷分散規則等、ロード・バランシングに必要な設定の追加

なお、ネットワーク セキュリティ グループの設定については一例となりますので、適宜使用するアプリケーションや、セキュリティ要件などにしたがって修正してください。

3. ARMを使用した環境構築

ARMを使用して、上述した内部ロードバランサーを使用したHAクラスターを構築するまでの手順をご紹介します。

3.1 ARM テンプレートファイルの取得

今回は予め用意しているARM テンプレートを使用します。
以下のリンクより、ARM テンプレートをダウンロードします。zipファイルは展開しておきます。
※本テンプレートはサンプルであり、動作を保証するものではありません。

3.2 ARM テンプレートを使用したリソースのデプロイ

入手したARM テンプレートを用いてHAクラスター環境構築に使用するAzureリソースを自動で作成、設定します。今回はAzure portalから「カスタム テンプレートのデプロイ」機能を利用します。

  • 1.Azure Portalを開き、画面上部の検索ボックスから「カスタム テンプレートのデプロイ」を検索し、クリックします。

  • 2.[カスタム デプロイ] - [テンプレートの選択]に遷移します。[エディターで独自のテンプレートを作成する]をクリックします。

  • 3.[テンプレートの編集]に遷移します。[ファイルの読み込み]をクリックし、先程ダウンロードしたARM テンプレート(JSONファイル)を選択します。ARM テンプレートの読み込み完了後、[保存]をクリックします。

  • 4.[カスタム デプロイ] - [基本]に遷移します。ここでは、サブスクリプションの選択や新規に作成するリソース グループの入力、リソース グループを管理するリージョンの選択を行います。またARM テンプレートに記述されている変数に値を設定します。各変数に必要な情報を設定の上、[次へ]もしくは[確認と作成]をクリックします。

本記事で使用するARM テンプレートに定義された変数の⼀覧は以下の表のとおりです。既定値欄にすでに入力されている値はそのまま使用しても問題ありません。空白の箇所については、環境に応じた値を設定してください。

変数名 説明 既定値
parAddressPrefix Azure Virtual Networkのネットワーク部として設定する接頭辞(第2オクテットまで)

既定値を指定した場合の設定例)
アドレス空間:10.5.0.0/24
サブネットアドレス範囲:10.5.0.0/24
clientのIPアドレス:10.5.0.100
server1のIPアドレス:10.5.0.120
server2のIPアドレス:10.5.0.121
内部LBのIPアドレス:10.5.0.200
10.5
parLocation リソースを作成するリージョン名 japaneast
parClientVMSize clientに設定する仮想マシンのサイズ Standard_B2s
parServerVMSize server1、server2に設定する仮想マシンのサイズ Standard_B2ms
parClientOSVersion clientに設定する仮想マシンのイメージ SKU 2022-datacenter-g2
parServerOSVersion server1、server2に設定する仮想マシンのイメージ SKU Windowsの場合、2022-datacenter-g2
Linuxの場合、810-gen2
parAdminUserName client、server1、server2へログインする際のユーザー名 Windowsの場合、Admin001
Linuxの場合、clpuser
parAdminUserPassword client、server1、server2へログインする際のパスワード PassWord_123
parAllowRDPAddress clientにRDP接続するマシンのIPアドレス

例)10.0.0.10
 

リージョン名や仮想マシンのイメージ SKU名については以下を参照ください。
  • Linux OSのkernelバージョンにCLUSTERPROが対応していない等の理由で最新版のVMイメージを利用しない場合は、ARM テンプレート(JSONファイル)の"version"部分を直接編集ください。

  • 5.[カスタム デプロイ] - [確認と作成]に遷移します。設定した情報を確認の上、[作成]をクリックします。

  • 6.リソース グループの作成が開始されます。作成状況は以下のようにAzure portal上から確認できます。

  • 7.ステータスが以下のように「デプロイが完了しました」になれば完了です。

3.3 HAクラスターの構築

clientにログインし、HAクラスターの構築と動作確認を行います。以降の手順につきましては、以下のガイドを参照してください。

【参考】
  • Windows > クラウド > Microsoft Azure > CLUSTERPRO X 5.2 向け HAクラスタ構築ガイド
    → 第 6 章 構築手順 (内部ロードバランサーを使用したHA クラスタの場合)
  • Linux > クラウド > Microsoft Azure > CLUSTERPRO X 5.2 向け HAクラスタ構築ガイド
    → 第 6 章 構築手順 (内部ロードバランサーを使用したHA クラスタの場合)

Azure上で、Windows Serverの仮想マシン(VM)を利用する場合、言語が英語になっています。英語版のWindows ServerにCLUSTERPROをインストールする場合の注意ポイントや、英語版のWindows Serverを日本語化する場合の手順については「popupクラウド環境で英語版のWindows ServerにCLUSTERPROをインストールするときの注意ポイント」の記事を参照ください。

また、CLUSTERPROではIaCによるインフラ構築を実現するためのコマンドラインツールとして、クラスタ構成情報ファイル生成コマンドを用意しています。クラスタ構成情報ファイル生成コマンドを利用してCLUSTERPROの構成情報をコマンドで生成し、HAクラスターを構築する方法は「popupクラスタ構成情報ファイル生成コマンドでHAクラスターを構築してみました(Windows/Linux)」の記事で紹介しています。

こちらの記事はオンプレミス環境での利用例になりますので、クラスタ構成情報ファイルをAzure環境で利用できるように変更する必要があります。
CLUSTERPROではCLUSTERPRO開発部門のエンジニアがお客様の代わりにクラスタ構成情報ファイルの作成を行う「popupコンフィグコード化支援(有償)」をご提供しております。詳細は本記事末尾のお問い合わせ先までお問い合わせください。

4. リソース グループ作成後の操作について

ARMを使用して本記事で作成したリソース グループに対して何らかのリソースの操作(追加・更新・削除)を行いたい場合、Azure portal等から直接リソースを操作することもできますが、ARM テンプレートを修正して再デプロイを行うことを推奨します。

また、「3.2 ARM テンプレートを使用したリソースのデプロイ」で指定したリソース グループを削除することで、まとめて削除することができます。ARMを使用して作成した構成から何か変更が発生している場合でも、ARMはリソースを削除する順序に従ってリソース グループを削除しますが、削除要求に失敗する場合、必要なアクセス権がないか、リソースまたはリソース グループがロックされていることが原因の可能性がありますので、削除失敗時に表示されるエラーメッセージを確認してください。

まとめ

今回は、ARMでHAクラスター環境の構築を一部自動化してみました。今回自動化したのは、Azureリソースの作成部分のみでしたが、従来の手作業による作成と比べて、短時間で自動構築できました。ARM テンプレートの作成やメンテナンスこそ必要ですが、手作業で生じる手間やミスを軽減できる点は魅力的だと思います。ぜひご活用ください。

本記事の構成をご検討の際は、CLUSTERPROのpopup試用版を用いて検証した後、ご提案・構築ください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。
  • 本記事で紹介しているテンプレートの内容についてのお問い合わせ、および、お客様環境に合わせたカスタマイズにつきましてはCLUSTERPRO導入支援サービスにて承っておりますので、上記窓口の"ご購入前のお問い合わせ"フォームまでお問い合わせください。