RDSでハマったこととドキュメント精読の重要性

Katoです。当ブログで初となるRDSについて今回は書きます。

RDSと言えばインフラレイヤーの管理をAWSに任せられる手軽なサービスですが、何にしても細かいところまで触ってみると色々と気づくところはあるものです。

単にDBの新規構築で利用するのであればそう難しい要素はほとんどありませんが、DBシステムの変更や移行となるとAWSの仕様面での注意事項が出てきます。

ドキュメントを隅々まで読み込めば書いてあるとわかることではありますが、これは逆に言えば読み込まないとわからないということでもあります。ハマったこととは少々違い気もしますが、今回はそんな要素をまとめてみました。

スナップショットと自動バックアップ

RDSの便利機能といえば自動バックアップを真っ先に考える方は少なからずいることでしょう。
別途バックアップ対象としてDBサーバを含めなくても良くなることから、バックアップサーバが必要とするコスト(時間、CPUとメモリとストレージなど)を削減できるので、これは重要なポイントであると言えます。そしてスナップショットは手動で実行できるものであるため、自動バックアップ予定時刻を待たずしてDBの控えを取ることも可能です。

さて、実際にRDSインスタンスを削除するとこれらのデータはどうなるかご存知でしょうか。公式ドキュメントに記載があり、マネジメントコンソールで表示される警告メッセージにも書かれているように、自動バックアップデータが全て消去されてしまいます。

では自動バックアップはRDSマネジメントコンソールのどこから確認できるのかですが、実はスナップショット画面に表示されています。

RDS-Snapshot

図1:RDSマネジメントコンソールのスナップショット画面例

このスナップショット画面には「タイプ」という列が存在し、ここが自動となっているものが自動バックアップデータです。逆に手動であればスナップショットということになるのですが、このことはつまり「自動バックアップの実態は自動的に作成されたスナップショットである」ということに他なりません。

あまり意識せずに触っている方が多いのではないかと思いますが、ドキュメントにそれとなく書かれているので読み込んでいる方はご存知でしょう。また、自動バックアップで作成されたデータは手動削除が不可能になっています。
勿論、自動削除されるタイミングは保持期間の経過後です。RDSマネジメントコンソール上で削除ボタンが有効かどうかでも区別可能です。

RDSインスタンスをリードレプリカとMulti-AZペアの片割れも含めて全て削除すると、そのインスタンスに紐つくスナップショットのうちタイプ列が自動となっているものが全て削除されます。手動まで削除されることはありません。

パラメータグループの編集

パラメータグループはMySQLやAuroraなどの、DBソフトウェアの設定を取りまとめたものです。
これを変更することは、そのパラメータグループを適用しているDBソフトウェアの設定を変更することになります。

すばり、注意点はというと「デフォルトパラメータグループは編集できない」ことです。デフォルトパラメータグループの編集は、図のように編集ボタンが無効化されています。

RDS-PGroups

図2:デフォルトパラメータグループの編集は不可

そのため、パラメータグループを編集して独自のものとするには、パラメータグループを別途作成するしかありません。手動で新規作成したパラメータグループならば編集ボタンが有効になります。

適用するパラメータグループの変更

RDSインスタンスに適用するパラメータグループを別なものに変更する場合、RDSインスタンスの再起動が必要となります。

パラメータグループに含まれる設定値の変更には再起動は不要ですが、適用対象のパラメータグループそのものを別なものに変更する場合は必須なのです。
Multi-AZ構成やリードレプリカを追加している構成の場合でも同様ですが、DBが一時的に完全に使用不可能な状態(つまりサービス断状態)にまではならない点でシングル構成よりも優れていると言えます。

RDBMSのアップグレード

DBバージョンのアップグレードは影響の大きい操作であるため、事前にしっかりドキュメントを読み込んでから実行しようという方が大半ではないかと思います。

DBバージョンのアップグレードはRDSインスタンスの変更画面から実施しますが、実行中のRDBMS種別とバージョンによっては変更できないケースがあります。
次の表はMySQLの例ですが、表に記載のないバージョンは変更できません。

表1:RDSがサポートするMySQLのアップグレードと移行

Ver5.1 Ver5.5
Ver5.5 Ver5.6
Ver5.6 (Auroraへの移行)

ちなみにMySQLにはVer5.7系列も存在しますが、Ver5.6系列以前からのアップグレードをRDS上で実行することはできません。

単に新しいRDSインスタンスを作成できるだけにとどまります。その他、PostgreSQLとMS SQL Serverについてもアップグレードできる組合せは存在しますが、Oracleについてはサポートされておらず、またMariaDBはVer10.0系列のみがRDSでサポートされているためアップグレード先が無いという状況にあります。


ドキュメントに書いてあることではありますが、ここまでで述べた内容全てを把握できていたでしょうか。

中には1行だけでサッとしか触れられてないこともあるため、ドキュメントは注意深く読み込むべきと言えるでしょう。
次回はAuroraについて触れる予定でいます。

 

 

 

アプリケーション開発バナー