Aurora B/Gデプロイ機能でAuroraバージョンをアップグレードした際に見落とした罠
技術本部 サービスリライアビリティグループ(SRG)の鬼海(@fat47)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
なにかの役に立てば幸いです。
はじめに
このB/G Deploy機能を使用してみましたので、そこで遭遇した罠(仕様)についてご紹介します。
遭遇した罠(仕様)
B/G Deploy機能の動作や仕組みなどについては上記の記事や、公式のドキュメントを参照してください。
Auroraのクラスタを新規で作成する場合、とを指定して作成することができます。
その場合は作成が完了した段階でパラメータの変更は反映が完了している状態となります。
B/G Deploy機能でもGreenクラスタを生成する際に、そのクラスタに適用するとを指定できます。
しかし、パラメータグループのパラメータの更新タイプがDynamicではないものを指定している場合、
生成時には適用されておらずパラメータグループの適用は「再起動待ち」の状態となるので、
生成されたGreenクラスタを手動でインスタンス再起動をしないとパラメータは反映されない状態となります。
この挙動を見落としており、デフォルトのパラメータグループのまま起動されたGreenクラスタに切り替えてしまうということが起きました。
この挙動については公式ドキュメントにも記載はなさそうですので注意が必要です。
再現手順
- Aurora v1(5.6)でクラスターを作成します。
- パラメータグループを作成しておきます。
- ここでの例はDBクラスタパラメータグループのの値をMIXEDにした「mysql57-bonlog」というパラメータグループを作成しています。
- 作成したクラスタの「アクション」から「ブルー/グリーンデプロイの作成」を選択します。
- 識別子を入力、パラメータグループは先ほど作成したものを指定します。
- 作成を押したらステータスが完了するのを待ちます。
- 起動完了したら作成されたGreenインスタンスの状態を確認してみます。
- 指定したパラメータグループは再起動保留中となっていました。
- Greenのエンドポイントにつないで値を確認してみます。
これはAurora B/Gデプロイ機能がbinlogを使っているので、デフォルトでが設定されていると思われます。
当初指定していたが反映されていないことがわかります。
- 反映するためにGreenのインスタンスを再起動させます。
- 再起動後はパラメータが適用されていることを確認できます。
終わりに
B/G Deploy機能をつかったクラスタアップグレードは非常に便利です。
ただし、今回紹介したような仕様もあるのでしっかりとした動作確認を忘れないようにしましょう。
SRG では一緒に働く仲間を募集しています。
ご興味ありましたらぜひこちらからご連絡ください。