This page looks best with JavaScript enabled

[AWS] 0から理解するRDSメンテナンス入門

 ·   ·  ☕ 6 min read  ·  ✍️ Inomaso

この記事はAWS その2 Advent Calendar 2020 12日目の記事となります。

社内勉強会でRDSメンテナンスに必要な知識や具体例をまとめた資料について、ブログ記事にしてみました。
2年間のRDS運用経験を元に、最低限これだけは知って欲しいことをまとめてあります。

はじめに


この記事は、RDSを1度も運用したことがないエンジニアの方を対象にしております。
AWSサポートから通知される、定型的なRDSメンテナンスの対応方法についてまとめてあります。

RDSのおさらい


RDSとは


RDSとはフルマネージドなリレーショナルデータベースサービスです。
MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Server等を数クリックで起動することができます。

フルマネージドだと何か嬉しいの?


オンプレミスやEC2上に構築する場合と比較した責任範囲は以下の通りです。

RDS_fullmanaged
[Blackbelt]20180425_AWS-BlackBelt_RDSより引用

フルマネージド化により、DBのインストール自体が不要となり、パッチ適用やバックアップ、アップグレード等の仕組みがAWSから提供されるので、ユーザ側の運用負荷が軽減されます。またDBのホスト先はAWSの責任範囲となるため、ウィルス対策やIDS/IPS等のセキュリティ対策がユーザ側で不要となります。

RDSのデメリットって何かある?


大部分の責任範囲がAWSであるため、いくつかトレードオフがあります。
よく質問されますが、RDSの場合はDBをホストしているOSにログインすることができません。
またRDS対象外のDBもありますので、そういった場合はオンプレかEC2で構築となります。

RDS_Restriction
[Blackbelt]20180425_AWS-BlackBelt_RDSより引用

DBエンジン


DBエンジンとは、データベースを操作する際の基礎となる部品のことです。
以下、AWS公式ドキュメントからのDBエンジンに関する引用です。

各 DB インスタンスでは、DB エンジンが実行されます。Amazon RDS で現在サポートされる DB エンジンは、MySQL、MariaDB、PostgreSQL、Oracle、および Microsoft SQL Server です。
各 DB エンジンには、独自のサポートされている機能があり、DB エンジンの各バージョンに固有の機能が含まれている可能性があります。
さらに、各 DB エンジンは、DB パラメータグループに一連のパラメータを保有し、これにより管理するデータベースの動作を制御します。

オプショングループ


DBエンジンに紐づく、セキュリティ強化や追加機能を有効にする設定です。TimeZoneを設定したり、OracleであればStatspackというパフォーマンス統計レポートを生成する機能を追加できます。新しい DB インスタンスごとに空のデフォルトオプショングループが用意されます。
※デフォルトオプショングループは変更不可

パラメータグループ


DBエンジンに紐づく、データベースサービスのコンフィグ(パラメーター)を管理する設定です。ジョブ最大数や、I/O操作で読み込むブロックの最大数等の、チューニング関連で利用することができます。DBパラメータグループを指定せずにDBインスタンスを作成すると、DBエンジン毎のデフォルトDBパラメータグループを使用します。
※デフォルトパラメータグループは変更不可

RDSメンテナンス


RDSは運用に必要な仕組みはAWSから提供されますが、それらを設定・実行するのはユーザとなります。そのためAWSサポートからメンテナンス通知が来た場合には、ユーザが主体となって対応する必要があります。

メンテナンス時の注意事項


RDSメンテナンスの多くは、RDS再起動が必要になります。
Web3層(Web、AP、DB)で構築されているシステムであれば、APで使用されるDBと通信するアプリケーションを事前に停止することで、ユーザ操作によるDBアクセスを停止し、余計なエラーを抑止するようにしましょう。

よくあるメンテナンスの具体例


1. DBインスタンスのハードウェアメンテナンス


タイトルどおりDBインスタンスのハードウェアメンテナンスとなります。
RDSがシングルAZだと約数分間、マルチAZだと約1分間の利用をできなくなる場合があります。

ユーザ側の操作はメンテナンスのタイミングを即時実行か、次のメンテナンスウィンドウに決めるだけで、ハードウェアメンテナンス自体はAWS側でよしなにやってくれます。

2. DBインスタンスのOSアップデート


勘違いしやすいのですが、対象はDBをホストしているDBインスタンスのOSとなります。そのためDBのバージョン等に影響は有りません。
RDSがシングルAZだと約10分間、マルチAZだとは約1~2分間の利用をできなくなる場合があります。

ユーザ側の操作はメンテナンスのタイミングを即時実行か、次のメンテナンスウィンドウに決めるだけで、OSアップデート自体はAWS側でよしなにやってくれます。

3. DBバージョンアップグレード


DBのEOLに伴うメジャーバージョンのアップグレードとなります。

まず真っ先にしなければならないのは、アップグレード先のバージョン調査です。
DBを利用しているアプリケーションがサポートするバージョンが存在するかが重要となリます。

アップグレード先のバージョンが決まったら、オプショングループとパラメータグループの準備です。
オプショングループとパラメータグループはDBエンジンのメジャーバージョンに依存しているため、アップグレードに伴い新規グループを作成する必要があります。またデフォルトグループから変更された項目はAWS CLI等で事前に調査して、同様のパラメータに変更しておきましょう。

アップグレードに必要な時間や動作確認を事前検証するために、スナップショットからRDSを復元し検証しておくことをオススメします。

参考


まとめ


とりあえずこれさえ知っておけばRDSを運用し続けられるだろう、という内容についてまとめてみました。
皆さんがRDSメンテナンスを対応する時に、少しでも助けになれば幸いです。

Share on

comments powered by Disqus