【SQL Server on EC2】インスタンス間でAlwaysOnを構成する [2.WSFC設定編]

AWS運用自動化サービス「Cloud Automator」

こんにちは。技術4課の伊藤Kです。
AWSエンジニア必携(?)のこのアイテムで美味しくコーヒーをいただいております。

今回は「2台のEC2インスタンス間でSQL Server AlwaysOnを構成する」の第2回、「WSFC設定編」です。
必要なOS設定を完了したインスタンスで、AlwaysOnの基盤となるWSFC(Windows Server Failover Cluster)を設定していきます。

<全3回リンク>
1. OS準備編
2. WSFC設定編 (この記事)
3. AlwaysOn設定編(作成予定)

作業前の状態、前提

・「1. OS準備編」の手順を完了した状態を前提とします。

・作業は「AWS Delegated Administrators」グループに所属させたユーザーアカウントで実施します。

・バージョンエディション、IPアドレス等の情報を再掲します。

OS Windows Server 2012 R2 Standard Edition
SQL Server SQL Server 2014 Enterprise Edition SP2 (12.0.5000.0)
内容 コンピューター名 /
リソース名 /
リスナー名
IPアドレス
AlwaysOn インスタンス #1
(文中「1号機」と記します)
sql01 172.20.10.4
AlwaysOn インスタンス #2
(文中「2号機」と記します)
sql02 172.20.11.4
クラスターコアリソース t-cluster 172.20.10.5 / 172.20.11.5
AlwaysOn リスナー t-aonlis01 172.20.10.6 / 172.20.11.6

機能の追加

1号機にリモートデスクトップでログオンします。サーバーマネージャーの [管理] メニューから [役割と機能の追加] を選択します。

機能と役割の追加ウィザードを進め、 [機能] の項目で [フェールオーバークラスタリング] にチェックを入れて[次へ]をクリックして進めます。そのまま機能の追加を行います。
(自動的に追加される管理ツールについても追加します)

2号機にログオンし、同じ手順で [フェールオーバークラスタリング] の機能を追加します。

フェールオーバークラスターの構成

1号機でサーバーマネージャーの [ツール] メニューから [フェールオーバークラスターマネージャー] を開きます。(2号機で作業してもOKです)

[フェールオーバークラスターマネージャー] で [構成の検証] をクリックします。

ウィザードが開始されます。[次へ]をクリックします。

[名前の入力] に1号機のコンピューター名(FQDN)を入力し、[追加]をクリックすると [選択済みサーバー] へ移動されます。

2号機のコンピューター名も同じ手順で [選択済みサーバー] へ登録します。[次へ]をクリックします。

[すべてのテストを実行する] を選択して、[次へ]をクリックします。

内容を確認して[次へ]をクリックします。

検証が完了します。致命的なエラーが発生しなければ、 [検証されたノードを使用してクラスターを今すぐ作成する] にチェックを入れて、[完了]をクリックすることで、自動的に [クラスターの作成ウィザード] に移動します。

ウィザードが開始されます。[次へ]をクリックします。

[クラスター名] にクラスターコアリソースのリソース名を入力します。下の欄にはクラスターのIPアドレスを入力します。マルチサブネット構成のため、各サブネットから1つずつIPアドレスが必要となります。ここでは上記表に沿って入力します。[次へ]をクリックします。

[使用可能な記憶域をすべてクラスターに追加する] のチェックを外し、[次へ]をクリックします。

「新しいクラスターを作成しています」の画面が表示された後、[概要]画面が表示されます。[完了]をクリックします。

コアリソースのノード間移動確認

「フェールオーバークラスターマネージャー」で作成されたクラスター名をクリックします。

[クラスターコアリソース] のペインで、2つあるIPアドレスのうち、どちらかがオンライン、もう一方がオフラインであることを確認します。

右ペインの[他のアクション] を選択し、メニューから [コアクラスターリソースの移動] → [ノードの選択] を選択します。

[クラスターノード] に表示されるコンピューターを選択して、[OK]をクリックします。

[クラスターコアリソース] のオンラインとオフラインのIPアドレスが入れ替わっていれば成功です。

同じ手順を再度実施し、元あったノードへコアリソースを移動します。(戻りの移動を確認)

OUへの権限設定

クラスターリソースのコンピューターオブジェクトが作成されたOUに対し、コンピューターオブジェクト追加の権限を付与します。

AD管理ツールの「Active Directory ユーザーとコンピューター」を開きます。

表示メニューの拡張機能を選択します。左ペインに表示される項目が増加します。

ドメイン名の最終レベル名のOUが作成されており、展開すると「Computers」OUがあるので右クリックし、 [プロパティ] を選択します。「AWS Managed Microsoft AD」ではデフォルトではこのOUにコンピューターオブジェクトが作成されていきます。

プロパティ画面で[詳細設定]をクリックします。

セキュリティの詳細画面で[追加]をクリックします。

アクセス許可エントリ画面で[プリンシパルの選択]をクリックします。

デフォルトではコンピューターオブジェクトが選択できないので、[オブジェクトの種類]をクリックして、[コンピューター]にチェックを入れてからクラスターコアリソースのコンピューター名を入力して[OK]をクリックします。

[コンピューター オブジェクトの作成]にチェックを入れて[OK]をクリックします。

「特殊」と「コンピューターオブジェクトの作成」が追加されたことを確認し、[OK]をクリックして詳細設定画面、プロパティ画面を閉じます。

ここまで確認できたら、WSFCの設定は完了です。「3.AlwaysOn設定編」へ続きます。

ワンポイント

OS準備の際に「IPアドレスをOS上で設定」した理由について説明します。
OSから設定しない場合、EC2の設定では固定のIPアドレスを割り振っていても、「フェールオーバークラスターの構成ウィザード」の中で、クラスターのIPアドレスが強制的にDHCPからの割り振りとなります。OSからDHCPサーバーが認識できないため割り当てが不可となり、設定に失敗します。
それを避け、あらかじめ用意したIPアドレスを手動で設定させるために、「IPアドレスをOS上で設定」しています。

おわりに

別の記事に記載した通り、セキュリティグループに不備があると、主に「構成の検証」ウィザード内、サーバーの追加画面で[追加]をクリックした際にタイムアウトを起こす現象で先へ進めなくなります。原因がなかなか分からずに時間がかかりました・・・。

AWS運用自動化サービス「Cloud Automator」