こんにちは。インサイトテクノロジーの松尾です!
本投稿ではマルチ AZ な RDS ( MySQL / MariaDB / PostgreSQL / Aurora ) における監査ログの対応状況について紹介します!
はじめに
Amazon RDS における監査ログの取得については大きく分けてデータベースアクティビティストリーム ( DAS, Database Activity Streams ) と DB の標準の機能によるものに分けられます。また DB の標準機能についても、マルチ AZ の構成方式により使用可否が制限を受けることが確認できたので、まとめて記載することにしました。
※2023/07/19時点で調べた内容です。
RDS の マルチ AZ 構成とは
非常にざっくりまとめると以下となります。
- シングル構成
- マルチ AZ DB インスタンス
- 1 つのスタンバイを備えたマルチ AZ
- スタンバイ DB にはアクセスできない (Active-Standby構成)
- マルチ AZ DB クラスター
- 2 つの読み取り可能なスタンバイを備えたマルチ AZ
- 合計 3 インスタンス
- リードレプリカ
- 読み取り頻度の高いデータベースのワークロードのスケールアウト
- ※正確にはマルチ AZ 構成の一部ではないかもしれません。。。
マルチ AZ 構成と監査ログ対応状況
以下にまとめます。
RDS | Cluster | Audit log | DAS | 備考 |
---|---|---|---|---|
RDS for MySQL | Single | 〇 | - | |
RDS for MySQL | マルチ AZ DB インスタンス | 〇 | - | |
RDS for MySQL | マルチ AZ DB クラスター | × | - | マルチ AZ DB クラスター構成ではオプショングループがサポートされていない |
RDS for MySQL | リードレプリカ | 〇 | - | オプショングループはソースのものが引き継がれる |
RDS for MariaDB | Single | 〇 | - | |
RDS for MariaDB | マルチ AZ DB インスタンス | 〇 | - | |
RDS for MariaDB | マルチ AZ DB クラスター | - | - | RDS for MariaDB ではマルチ AZ DB クラスター構成がサポートされていない |
RDS for MariaDB | リードレプリカ | 〇 | - | オプショングループはソースのものが引き継がれる |
RDS for PostgreSQL | Single | 〇 | - | |
RDS for PostgreSQL | マルチ AZ DB インスタンス | 〇 | - | |
RDS for PostgreSQL | マルチ AZ DB クラスター | 〇 | - | |
RDS for PostgreSQL | リードレプリカ | 〇 | - | |
Aurora MySQL | 〇 | 〇 | Aurora Serverless v2はDAS不可 | |
Aurora PostgreSQL | 〇 | 〇 | Aurora Serverless v2はDAS不可 |
上記のように、マルチ AZ DB クラスター構成においては、MySQL と PostgreSQL とで対応状況が異なる結果となりました。DAS は MySQL / PostgreSQL については Aurora のみで使用可能な機能です。
Aurora でもインスタンスが一つの場合はシングル、レプリカがある場合はマルチ AZ と呼ぶケースもあるようですが、シングルでもクラスタとしての動作が基本なので分けていません。
参考資料
- Amazon RDS マルチ AZ
- マルチ AZ DB クラスターの DB クラスターパラメータグループを使用する
- データベースアクティビティストリームを使用した Amazon Aurora のモニタリング
- Aurora Serverless v2 の要件
- Amazon RDS リードレプリカ
おわりに
マルチ AZ な RDS における監査ログの対応状況について紹介しました。
きっかけとして、RDS for MySQL のマルチ AZ DB クラスターにおいてオプショングループがサポートされておらず、監査ログを取得できないことが判明したことがありました。本番利用においてはマルチ AZ で可用性を高めたりスケーラビリティを高めたりなどを検討されるかと思いますが、使用できない機能もあったりするので注意が必要ですね。