すっかり暑くなってきて、革靴が辛い季節になってきたなと思うがんも(佐竹)です。
本日は、RDS for SQL ServerでMulti-AZを解除する方法をお伝えします! 早速ですが、以下の流れでお伝えします。張り切って参りましょう!
はじめに
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が可能となっています。
完結に述べますと、上の画像にある「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に紐づいているのか確認しましょう。
今回、用意したdb.instnaceでは「default:sqlserver-se-11-00-mirrored」が利用されていることがわかります。
どんなものなのか、中を覗いてみます。リンクをクリックしてジャンプします。
中身をみると、このように、今は「Option」として「Mirroring」が付与されたOption Groupが紐づいています。
ちなみに「default:sqlserver-se-11-00-mirrored」という名称ですが、これはRDS for SQL ServerのVer11.00を指定し、かつMulti-AZ構成で構築をした場合にAWS側が自動で作成するdefaultのGroupです。
default groupは、設定の変更が出来ません。上に並ぶ全ての設定変更4つ共がグレーアウトしています。
今回、Ver11.00のMirroringオプションなしのOption Groupが欲しいので作ろうとしましたが、前にMulti-AZ構成ではないRDS for SQL Serverを構築した時に自動で作成された「default:sqlserver-se-11-00」が既にありました。これを今回は使うことにします。
ですがもちろん、自分で作成することもできます。
Option Groupの作成
↑の図、左上にある「Create Group」から作成可能です。作ったものは、赤で囲った通り変更が可能です。
試しに作ってみましょう。
非常にシンプルです。Engineとそのバージョンを選ぶだけ。今回はSQL ServerのStandard Edition(SE)のVer11.00を選びます。
最後に「Create」を押下すれば完成です。「default:sqlserver-se-11-00」と同じものが出来ました。
今、このOption GroupにはMirroringのOptionは付与されていません。
さて、試しに作成した先ほどのOption Groupに、「Add Option」をしてみましょう。
超シンプルですね。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オプションを削除します。
ミラーリングオプションを削除するため、Instance Actionから「Modify」をします。
変更前の状態を念のため確認しておきます。今現在は↑の図の通り「default:sqlserver-se-11-00-mirrored」となっています。
Multi-AZはYes(Mirroring)ですね。
Option Groupを「default:sqlserver-se-11-00-mirrored」から「default:sqlserver-se-11-00」に変更します。
即時反映するため、Apply Immediatelyはチェックを入れて、Continueです。
少しすると、RDSの各項目に変化が出始めます。
「default:sqlserver-se-11-00-mirrored」がremovalとなり、「default:sqlserver-se-11-00」がapplyされます。
Muilti AZの項目は、Noに変更されました。
さらに少し待つと、Option Groupの適用が進み、上記の通りになります。
後は数分待てば・・・
無事に、Single-AZのRDS for SQL Serverが完成です。
なお、これらの手順の逆で「default:sqlserver-se-11-00」を「default:sqlserver-se-11-00-mirrored」に戻すような変更を行うと、再度Multi-AZ構成が組めるようになります。
確認
ついでですので、イベントとログも確認しておきましょう。
イベントで、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構成が構築できないためこれを利用することは稀かもしれませんが、今後を見据えて押さえて置いて損は無いのでは!?
以上となります。またお会いしましょう!
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。