AWS クラウドで SQL Server Always On 可用性グループのクラスターを作成するには、どうすればよいですか。
最終更新日: 2022 年 3 月 2 日
AWS クラウドに SQL Server Always On 可用性グループのクラスターを作成したいと思っています。これを行うにはどうすればよいですか?
簡単な説明
AWS クラウドに SQL Server Always On 可用性グループクラスターを作成するには、まず、各クラスターノードの Elastic Network Interface に 2 つのセカンダリ IP を設定します。次に、Remote Desktop Protocol (RDP) を使用して、ドメイン管理者アカウントとしてクラスターノードインスタンスに接続します。最後に、2 ノードの Windows クラスターと SQL Server Always On 可用性グループを作成します。
AWS Launch Wizard を使用して SQL Server Always On 可用性グループのデプロイを作成することもできます。Launch Wizard は AWES リソースを識別し、ユースケースに基づいて SQL Server データベースを自動的にプロビジョニングします。詳細については、「SQL Server 用 AWS Launch Wizard とは」を参照してください。
解決方法
前提条件
- Virtual Private Cloud (VPC) 内のアベイラビリティーゾーン全体で 2 つの Amazon Elastic Compute Cloud (Amazon EC2) Windows Server インスタンス (Windows Server 2012 R2 以降) を起動します。
- SQL Server 2014 64-bit Enterprise Edition 以降を使用します。テストには SQL Server 2014 64-bit Evaluation Edition 以降を使用します。
- SQL Server のマスターデータファイル、ログデータファイル、および SQL バックアップファイルをホストするように、セカンダリ Amazon Elastic Block Store (Amazon EBS) ボリュームを設定します。大規模な SQL Server データベースワークロードには、プロビジョンド IOPS SSD (io1) EBS ボリュームを選択することをお勧めします。
- クラスターノードをプライベートサブネットにデプロイします。その後、RDP を使用して、ジャンプサーバーからクラスターノードインスタンスに接続できます。
- セキュリティグループのインバウンドルールと Windows ファイアウォールの例外を設定して、ノードが制限された環境で通信できるようにします。
- Active Directory (AD) ドメインコントローラーでは、SQL ノードに必要なすべてのポートを開いて、ドメインに接続し、アクティブディレクトリに対して認証を受ける必要があります。
- Windows フェイルオーバークラスターを作成する前に、ノードをドメインに接続します。クラスターを作成および設定する前に、ドメイン認証情報を使用してログインしていることを確認してください。
- アクティブ Directory Service アカウントで SQL DB インスタンスを実行します。
- Windows ドメイン認証を使用して、sysadmin アクセス許可のある SQL ログインを作成します。詳細については、データベース管理者にお問い合わせください。詳細については、Microsoft ウェブサイトの「Create a login using SSMS」を参照してください。
- SQL ブラウザが正しく設定されていることを確認します。これは SQL Server の名前が付いたインスタンスにのみ必要です。
各クラスターノードの Elastic Network Interface にセカンダリ IP を設定する
各クラスターノードの eth0 Elastic Network Interface には、2 つのセカンダリ IP が必要です。
注: SQL グループリスナーをデプロイする予定がない場合は、各クラスターノードの Elastic Network Interface にセカンダリ IP を 1 つだけ追加してください。
1. Amazon EC2 コンソールを開き、Always On クラスターをホストする AWS リージョンを選択します。
2. ナビゲーションペインで [インスタンス] を選択し、次に EC2 クラスターインスタンスを選択します。
3. [ネットワーク] タブを選択します。
4. [ネットワークインターフェイス] で、[インターフェイス ID] Elastic Network Interface を選択します。
5. ネットワークインターフェイスを選択し、[アクション]、[IP アドレスの管理] の順にクリックします。
6. ネットワークインターフェイス ID の横にある矢印を選択してウィンドウを展開してから、[新しい IP アドレスの割り当て] をクリックします。特定の IP を選択するか、フィールドを自動割り当てのままにすることができます。このステップを繰り返して、2 番目の新規 IP を追加してください。
7. [保存]、[確認] の順に選択します。
8. クラスターに参加する他の EC2 インスタンスについて、ステップ 1~7 を繰り返してください。
2 ノードの Windows クラスターを作成する
1. 両方のノードでローカル管理者権限を持つドメインアカウントで、RDP を使用して EC2 インスタンスに接続してください。
2. Windows の [スタート] メニューで、[コントロールパネル] を開き、[ネットワークと共有センター] を選択します。
3. ナビゲーションペインから [アダプター設定の変更] を選択します。
4. ネットワーク接続を選択してから、[この接続の設定を変更する] を選択してください。
5. インターネットプロトコルバージョン 4 (TCP/IPv4) を選択してから、プロパティを選択します。
6. [高度な設定] を選択します。
7. [DNS] タブで、[プライマリと接続固有の DNS サフィックスを追加する] を選択します。
8. [Ok]、[Ok]、[閉じる] の順に選択してください。
9. クラスターに参加する他の EC2 インスタンスに対して、ステップ 1~8 を繰り返してください。
10. 各インスタンスで、サーバーマネージャーからノードにクラスター機能をインストールするか、次の PowerShell コマンドを実行します。
Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools
11. 管理者として cmd を開き、cluadmin.msc と入力してクラスターマネージャーを開きます。
12. フェイルオーバークラスターマネージャーのコンテキスト (右クリック) メニューを開き、[クラスターの作成] を選択します。
13. [次へ] を選択してから [ブラウズ] を選択します。
14. [選択するオブジェクト名を入力してください] で、クラスターノードのホスト名を入力し、[OK] をクリックしてください。
15. [次へ] を選択します。これで、クラスターを検証するかどうかを選択できます。クラスター検証を実行するのがベストプラクティスです。クラスターが検証に合格しない場合、Microsoft は SQL クラスターのテクニカルサポートを提供できない可能性があります。[はい] または [いいえ] を選択してから、[次へ] をクリックします。
16. クラスター名に名前を入力して、[次へ] を選択します。
17. [適格なストレージをすべてクラスターに追加] をオフにして、[次へ] を選択してください。
18. クラスターの作成が完了したら、[完了] をクリックします。
注:クラスターのログとレポートは、%systemroot%\cluster\report というパスにあります。
19. クラスターマネージャーの「クラスターコアリソース」セクションで、新しいクラスターのエントリを展開します。
20. 最初の IP アドレスエントリのコンテキスト (右クリック) メニューを開き、プロパティを選択します。[IP アドレス] で、[静的 IP アドレス] を選択し、eth0 Elastic Network Interface に関連付けられているセカンダリ IP の 1 つを入力してください。[Ok] を選択します。2 番目の IP アドレスエントリに対して、このステップを繰り返してください。
21. クラスター名のコンテキストメニューを開き (右クリックする)、[オンラインにする] を選択します。
注: ファイル共有監視 (FSW) もタイブレーカーとして機能するように設定することをお勧めします。また、Amazon FSx for Windows ファイルサーバーを Microsoft SQL Server で使用することもできます。
Always On 可用性グループを作成する
1. SQL Server 設定マネージャーを開きます。
2. SQL インスタンスのコンテキスト (右クリック) メニューを開き、プロパティを選択します。
3. [AlwaysOn 高可用性] タブで、[AlwaysOn 可用性グループを有効にする]、[適用] を順に選択します。
4. SQL インスタンスのコンテキスト (右クリック) メニューを開き、[再起動] を選択します。
5. クラスターの他のクラスターノード部分でステップ 1~4 を繰り返してください。
6. Microsoft SQL Server Management Studio (SSMS) を開きます。
7. SQL インスタンスにアクセスできる Windows 認証ログインを使用して、いずれかの SQL インスタンスにログインします。
注: SQL インスタンス間で同じ MDF ディレクトリファイルパスと LDF ディレクトリファイルパスを使用することをお勧めします。
8. テストデータベースを作成します。[データベース] のコンテキストメニューを開き (右クリックする)、[新規データベース] を選択します。
注: 必ず完全復旧モデル ([オプション] ページにある) を使用してください。
9. データベース名に名前を入力し、[Ok] をクリックします。
10. 新しいデータベース名のコンテキスト (右クリック) メニューを開き、[タスク]、[バックアップ] の順に選択します。
バックアップタイプで [完全] を選択します。
11. [Ok] を選択してから [Ok] を選択してください。
12. Always On 高可用性のコンテキスト (右クリック) メニューを開き、[新規可用性グループウィザード] を選択します。
13. [次へ] を選択します。
14. 可用性グループ名に名前を入力して、[次へ] を選択します。
15. データベースを選択してから、[次へ] を選択します。
16. プライマリレプリカは、すでに可用性レプリカウィンドウに表示されています。セカンダリレプリカを作成するには、[レプリカの追加] を選択してください。
17. サーバー名にセカンダリレプリカの名前を入力し、[接続] を選択します。
18. 可用性モードでは、どの可用性モードを使用するかを決定してから、各レプリカに対して [同期コミット] または [非同期コミット] を選択します。
19. [次へ] を選択します。
20. [data synchronization preference] を選択してから、[Next] を選択します。
21. 検証が成功したら、[次へ] をクリックします。
注意: 後で追加するので、[リスナー設定を確認中] は無視しても問題ありません。
22. [完了]、[閉じる] を順に選択します。
SQL グループリスナーを追加する
1. SSMS を開き、[Always On 高可用性]、[可用性グループ]、[プライマリレプリカ名] の順に展開してください。
2. 可用性グループリスナーのコンテキスト (右クリック) メニューを開き、[リスナーの追加] を選択します。
リスナー DNS 名に名前を入力します。
ポートに 1433 と入力します。
ネットワークモードの場合は、[静的 IP] を選択します。
3. [追加] を選択します。
IPv4 アドレスに、いずれかのクラスターノードインスタンスから 2 番目のセカンダリ IP アドレスを入力し、[Ok] を選択してください。他のクラスターノードインスタンスから 2 番目のセカンダリ IP アドレスを使用して、このステップを繰り返してください。
4. [Ok] を選択します。
注: SQL グループリスナーを追加するときに受信したエラーは、アクセス許可がないことを示します。トラブルシューティングの手順については、Microsoft ウェブサイトで次のリソースを参照してください。
フェイルオーバーをテストする
1. SSMS を使用して、ナビゲーションメニューでプライマリレプリカのコンテキスト (右クリック) メニューを開き、[フェイルオーバー] を選択します。
2. [次へ] を選択してから [次へ] を選択します。
3. [接続] を選択し、次に [接続] を選択します。
4. [次へ] を選択してから [完了] を選択してください。プライマリレプリカは、フェイルオーバー後にセカンダリレプリカになります。