RDS for SQL ServerでMulti-AZ(Mirroring)を解除する方法

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

すっかり暑くなってきて、革靴が辛い季節になってきたなと思うがんもです。 

RDS_SQL_MultiAZ

本日は、RDS for SQL ServerでMulti-AZを解除する方法をお伝えします! 早速ですが、以下の流れでお伝えします。張り切って参りましょう!

  1. はじめに
  2. 何がどうRDS for MySQLと違うのか?
  3. Option Groupの確認
  4. Option Groupの作成
  5. Option Groupの変更
  6. 確認

はじめに

RDS for SQL ServerでもMulti-AZ構成を取ることが可能です(2016年5月24日現在、東京リージョンではMulti-AZ構成が不可能な点注意してください) 。 さて、SQL ServerのMulti-AZですが、初期構築からMulti-AZにするのは良いとして、それを解除する方法が少々変わっているのでお伝えしたいと思います。

2016年6月10日 追記

2016年6月9日に、東京リージョンでもRDS for SQL ServerでMulti-AZが利用可能になりました。このタイミングで、本「Option Group」を利用して設定を変更という仕様は撤廃され「Multi-AZ Deployment」の項目を、「YesからNoに変更(Onにしたい場合はその逆を実施)」して適用すれば、Multi-AzのOn/Offが可能になりました。
そのため、以下の記事は2016年6月9日まで有効であった手法とご理解ください。

何がどうRDS for MySQLと違うのか?

一般的なRDSとして知られているRDS for MySQLでは、以下の方法でMulti-AZ構成のON/OFFが可能となっています。

RDSVerup6_SQLServerMultiaz

完結に述べますと、上の画像にある「Multi-AZ Deployment」の項目を、「YesからNoに変更」して適用すれば、それだけでMulti-AZは解除されます。
ですため、SQL Serverの場合でもそうやるんだろうなー・・・と思ったら全く手順が異なっていました
そもそも、上の画像通りRDS for SQL Serverではグレーアウトしており項目変更が不可能です。
一体、どうやるんでしょうか?
実はRDS for SQL Serverの場合は、この設定を変更するのに「Option Group」というものを使います。
このOption Groupの差し替えがイコールMulti-AZのON/OFFとなるわけです。 実際の手順を以下の通り見て行きましょう!!

Option Groupを確認

まずは対象のdb.instanceがどのOption Groupに紐づいているのか確認しましょう。

RDS_OptionG1

今回、用意したdb.instnaceでは「default:sqlserver-se-11-00-mirrored」が利用されていることがわかります。
どんなものなのか、中を覗いてみます。リンクをクリックしてジャンプします。

RDS_OptionG2

中身をみると、このように、今は「Option」として「Mirroring」が付与されたOption Groupが紐づいています。
ちなみに「default:sqlserver-se-11-00-mirrored」という名称ですが、これはRDS for SQL ServerのVer11.00を指定し、かつMulti-AZ構成で構築をした場合にAWS側が自動で作成するdefaultのGroupです。

RDS_OptionG3

default groupは、設定の変更が出来ません。上に並ぶ全ての設定変更4つ共がグレーアウトしています。
今回、Ver11.00のMirroringオプションなしのOption Groupが欲しいので作ろうとしましたが、前にMulti-AZ構成ではないRDS for SQL Serverを構築した時に自動で作成されたdefault:sqlserver-se-11-00」が既にありました。これを今回は使うことにします。

ですがもちろん、自分で作成することもできます。

Option Groupの作成

RDS_OptionG4

↑の図、左上にある「Create Group」から作成可能です。作ったものは、赤で囲った通り変更が可能です。
試しに作ってみましょう。

RDS_OptionG6

非常にシンプルです。Engineとそのバージョンを選ぶだけ。今回はSQL ServerのStandard Edition(SE)のVer11.00を選びます。
最後に「Create」を押下すれば完成です。「default:sqlserver-se-11-00」と同じものが出来ました。
今、このOption GroupにはMirroringのOptionは付与されていません。

さて、試しに作成した先ほどのOption Groupに、「Add Option」をしてみましょう。

RDS_OptionG5

超シンプルですね。OptionはMirroringかそうではないか、しかありません。
即反映したいのでApply Immediatelyをチェックしておきます。

これでMirroringオプションありのVer11.00が完成しました。
内容は
「default:sqlserver-se-11-00-mirrored」と同じものになりました。

参考:Option GroupについてのAWS公式ドキュメントは「コチラ」です

Option Groupの変更

最後に、作成したOption Group(もしくは既存のもの)を適用します。
今回は「default:sqlserver-se-11-00(既存)」を適用し、Mirroringオプションを削除します。

RDS_OptionG7

ミラーリングオプションを削除するため、Instance Actionから「Modify」をします。

変更前の状態を念のため確認しておきます。今現在は↑の図の通り「default:sqlserver-se-11-00-mirrored」となっています。
Multi-AZはYes(Mirroring)ですね。

RDS_OptionG8

Option Groupを「default:sqlserver-se-11-00-mirrored」から「default:sqlserver-se-11-00」に変更します。
即時反映するため、Apply Immediatelyはチェックを入れて、Continueです。

RDS_OptionG9

少しすると、RDSの各項目に変化が出始めます。
「default:sqlserver-se-11-00-mirrored」がremovalとなり、「default:sqlserver-se-11-00」がapplyされます。
Muilti AZの項目は、Noに変更されました

RDS_OptionG10

さらに少し待つと、Option Groupの適用が進み、上記の通りになります。
後は数分待てば・・・

RDS_OptionG11

無事に、Single-AZのRDS for SQL Serverが完成です。

なお、これらの手順の逆で「default:sqlserver-se-11-00」を「default:sqlserver-se-11-00-mirrored」に戻すような変更を行うと、再度Multi-AZ構成が組めるようになります。

確認

ついでですので、イベントとログも確認しておきましょう。

RDS_OptionG12

イベントで、Option Groupが適用されてから、8分程度でMulti-AZが解除されていたことがわかりました。ログには

2016-05-06 08:00:52.50 spid56 The Database Mirroring endpoint has stopped listening for connections.

2016-05-06 08:00:54.51 spid56 The Database Mirroring endpoint is in disabled or stopped state.

上記の通りミラーリングのエンドポイントが停止された旨が最後に表示されていました。

まとめ

この記事では、「RDS for SQL ServerでMulti-AZを解除する方法」をお伝え致しました。
上記の通り、RDS for SQL Serverでは「Multi-AZ Deployment」の項目を使わずに、「Option Group」を利用して設定を変更します。
東京リージョンでは、まだMulti-AZ構成が構築できないためこれを利用することは稀かもしれませんが、今後を見据えて押さえて置いて損は無いのでは!?

以上となります。またお会いしましょう!

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