AWSマネジメントコンソールでAmazon RDS for PostgreSQLにおける、本番稼働用、開発/テスト、無料利用枠の違いを比較してみた

AWSマネジメントコンソールでAmazon RDS for PostgreSQLにおける、本番稼働用、開発/テスト、無料利用枠の違いを比較してみた

Clock Icon2024.09.17

こんにちは。まるとです。
AWSマネジメントコンソールでAmazon RDSを触ると必ず選択に迷うのが、このテンプレートの選択です。

ma-2-1

この選択により後の設定のデフォルト値が変わるのですが、どこが変わるのかが気になったので、実際に切り替えて値がどう変わるのか調べてみました。

なお、設定項目はあくまでもテンプレートであり、個別に設定変更を行うこともできます。
ただし、テンプレートによっては意図しない課金を防ぐために、設定変更ができない項目があります。

先に結論

大項目 小項目 本番稼働用 開発/テスト 無料利用枠
可用性と耐久性 デプロイオプション マルチAZ DBクラスター マルチAZ DBクラスター 単一DBインスタンス(変更不可)
設定 認証情報管理 AWS Secrets Managerで管理 AWS Secrets Managerで管理 セルフマネージド
パスワード自動生成 - (※1) - (※1) チェックなし
暗号化キーを選択 aws/secretsmanager aws/secretsmanager - (※2)
インスタンスの設定 DBインスタンスクラス 標準クラス、db.m5d.large コンピューティング最適化クラス、db.c6gd.medium バーストクラス、db.t4g.medium
ストレージ ストレージタイプ プロビジョンド IOPS SSD (io2) 汎用SSD (gp3) 汎用SSD (gp3)
ストレージ割り当て 400 GiB 200 GiB 20 GiB
プロビジョンド IOPS 3000 IOPS 3000 IOPS 3000 IOPS
ストレージスループット - (※3) 125 MiBps 125 MiBps
ストレージの自動スケーリング - (※4) - (※4) チェックあり
最大ストレージしきい値 - (※4) - (※4) 1000 GiB
モニタリング DevOps Guru をオンにする チェックあり チェックあり チェックなし
追加設定 最初のデータベース名 - (※4) - (※4) 未指定
オプショングループ - (※4) - (※4) default:postgres<バージョン>
バックアップ保持期間 7日間 7日間 1日間
削除保護の有効化 チェックあり チェックなし チェックなし

※1: 認証情報管理をAWS Secrets Managerで管理している場合、パスワードは自動設定される。
※2: 認証情報管理がセルフマネージドの場合、設定不可
※3: ストレージタイプが「プロビジョンド IOPS SSD (io2)」の場合、設定不可。スループットはIOPSの設定値により拡張される。参考
※4: 可用性と耐久性が「マルチAZ DBクラスター」に設定されている場合、設定不可

見てみる

それでは早速見ていきましょう。
なお、前提条件として次の3つを定義します。

  • AWSマネジメントコンソールから操作すると仮定する
  • データベースの作成方法は「標準作成」とする
  • エンジンのタイプは「PostgreSQL」、エンジンのバージョンを「PostgreSQL 16.3-R2」とする

本番稼働用

まずはデフォルトで選択されている「本番稼働用」を見ていきます。
なお、ネットワークなどの設定を行う大項目「接続」はデフォルトVPCの有無など環境により異なるので、下記の表には記載していません。
また、データベース名やタグなどデータベース自体のパフォーマンスに直接関わらないものも表には記載していません。
※この後見ていく、テンプレート「開発/テスト」、「無料利用枠」も同様の扱いとします。

大項目 小項目 デフォルト値
可用性と耐久性 デプロイオプション マルチAZ DBクラスター
設定 認証情報管理 AWS Secrets Managerで管理
暗号化キーを選択 aws/secretsmanager
インスタンスの設定 DBインスタンスクラス 標準クラス、db.m5d.large
ストレージ ストレージタイプ プロビジョンド IOPS SSD (io2)
ストレージ割り当て 400 GiB
プロビジョンド IOPS 3000 IOPS
ストレージの自動スケーリング -
データベース認証 データベース認証オプション パスワード認証
モニタリング Performance Insights をオンにする チェックあり
Performance Insights の保持期間 7日
AWS KMS キー aws/rds
DevOps Guru をオンにする チェックあり
拡張モニタリングの有効化 チェックなし
追加設定 最初のデータベース名 -
DB クラスターのパラメータグループ default.postgres<バージョン>
オプショングループ -
自動バックアップを有効にします チェックあり
バックアップ保持期間 7日間
バックアップウィンドウ 指定なし
暗号化 暗号を有効化
AWS KMS キー aws/rds
ログのエクスポート/PostgreSQL ログ チェックなし
ログのエクスポート/アップグレードログ チェックなし
IAM ロール RDS サービスリンクロール
マイナーバージョンの自動アップグレードの有効化 チェックあり
メンテナンスウィンドウ 指定なし
削除保護の有効化 チェックあり

開発/テスト

大項目 小項目 デフォルト値
可用性と耐久性 デプロイオプション マルチAZ DBクラスター
設定 認証情報管理 AWS Secrets Managerで管理
暗号化キーを選択 aws/secretsmanager
インスタンスの設定 DBインスタンスクラス コンピューティング最適化クラス、db.c6gd.medium
ストレージ ストレージタイプ 汎用SSD (gp3)
ストレージ割り当て 200 GiB
プロビジョンド IOPS 3000 IOPS
ストレージスループット 125 MiBps
ストレージの自動スケーリング -
データベース認証 データベース認証オプション パスワード認証
モニタリング Performance Insights をオンにする チェックあり
Performance Insights の保持期間 7日
AWS KMS キー aws/rds
DevOps Guru をオンにする チェックあり
拡張モニタリングの有効化 チェックなし
追加設定 最初のデータベース名
DB クラスターのパラメータグループ default.postgres<バージョン>
オプショングループ -
自動バックアップを有効にします チェックあり
バックアップ保持期間 7日間
バックアップウィンドウ 指定なし
暗号化 暗号を有効化
AWS KMS キー aws/rds
ログのエクスポート/PostgreSQL ログ チェックなし
ログのエクスポート/アップグレードログ チェックなし
IAM ロール RDS サービスリンクロール
マイナーバージョンの自動アップグレードの有効化 チェックあり
メンテナンスウィンドウ 指定なし
削除保護の有効化 チェックなし

無料利用枠

大項目 小項目 デフォルト値
可用性と耐久性 デプロイオプション 単一DBインスタンス(変更不可)
設定 認証情報管理 セルフマネージド
パスワード自動生成 チェックなし
インスタンスの設定 DBインスタンスクラス バーストクラス、db.t4g.medium
ストレージ ストレージタイプ 汎用SSD (gp3)
ストレージ割り当て 20 GiB
プロビジョンド IOPS 3000 IOPS
ストレージスループット 125 MiBps
ストレージの自動スケーリング チェックあり
最大ストレージしきい値 1000 GiB
データベース認証 データベース認証オプション パスワード認証
モニタリング Performance Insights をオンにする チェックあり
Performance Insights の保持期間 7日
AWS KMS キー aws/rds
DevOps Guru をオンにする チェックなし
拡張モニタリングの有効化 チェックなし
追加設定 最初のデータベース名 未指定
DB クラスターのパラメータグループ default.postgres<バージョン>
オプショングループ default:postgres<バージョン>
自動バックアップを有効にします チェックあり
バックアップ保持期間 1日間
バックアップウィンドウ 指定なし
別の AWS リージョンでレプリケーションを有効化 チェックなし
暗号化 暗号を有効化
AWS KMS キー aws/rds
ログのエクスポート/PostgreSQL ログ チェックなし
ログのエクスポート/アップグレードログ チェックなし
IAM ロール RDS サービスリンクロール
マイナーバージョンの自動アップグレードの有効化 チェックあり
メンテナンスウィンドウ 指定なし
削除保護の有効化 チェックなし

まとめると...

全3テンプレートの設定値を表にまとめてみましたが、このままで少し比較をしにくいので表を結合していきます。
また、違いを太字で記載していきます。

デフォルト値まとめ

大項目 小項目 本番稼働用 開発/テスト 無料利用枠
可用性と耐久性 デプロイオプション マルチAZ DBクラスター マルチAZ DBクラスター 単一DBインスタンス(変更不可)
設定 認証情報管理 AWS Secrets Managerで管理 AWS Secrets Managerで管理 セルフマネージド
パスワード自動生成 - - チェックなし
暗号化キーを選択 aws/secretsmanager aws/secretsmanager -
インスタンスの設定 DBインスタンスクラス 標準クラス、db.m5d.large コンピューティング最適化クラス、db.c6gd.medium バーストクラス、db.t4g.medium
ストレージ ストレージタイプ プロビジョンド IOPS SSD (io2) 汎用SSD (gp3) 汎用SSD (gp3)
ストレージ割り当て 400 GiB 200 GiB 20 GiB
プロビジョンド IOPS 3000 IOPS 3000 IOPS 3000 IOPS
ストレージスループット - 125 MiBps 125 MiBps
ストレージの自動スケーリング - - チェックあり
最大ストレージしきい値 - - 1000 GiB
データベース認証 データベース認証オプション パスワード認証 パスワード認証 パスワード認証
モニタリング Performance Insights をオンにする チェックあり チェックあり チェックあり
Performance Insights の保持期間 7日 7日 7日
AWS KMS キー aws/rds aws/rds aws/rds
DevOps Guru をオンにする チェックあり チェックあり チェックなし
拡張モニタリングの有効化 チェックなし チェックなし チェックなし
追加設定 最初のデータベース名 - - 未指定
DB クラスターのパラメータグループ default.postgres<バージョン> default.postgres<バージョン> default.postgres<バージョン>
オプショングループ - - default:postgres<バージョン>
自動バックアップを有効にします チェックあり チェックあり チェックあり
バックアップ保持期間 7日間 7日間 1日間
バックアップウィンドウ 指定なし 指定なし 指定なし
暗号化 暗号を有効化 暗号を有効化 暗号を有効化
AWS KMS キー aws/rds aws/rds aws/rds
ログのエクスポート/PostgreSQL ログ チェックなし チェックなし チェックなし
ログのエクスポート/アップグレードログ チェックなし チェックなし チェックなし
IAM ロール RDS サービスリンクロール RDS サービスリンクロール RDS サービスリンクロール
マイナーバージョンの自動アップグレードの有効化 チェックあり チェックあり チェックあり
メンテナンスウィンドウ 指定なし 指定なし 指定なし
削除保護の有効化 チェックあり チェックなし チェックなし

少し冗長なので、値が違う部分だけを抽出していきます。

値が違う項目

大項目 小項目 本番稼働用 開発/テスト 無料利用枠
可用性と耐久性 デプロイオプション マルチAZ DBクラスター マルチAZ DBクラスター 単一DBインスタンス(変更不可)
設定 認証情報管理 AWS Secrets Managerで管理 AWS Secrets Managerで管理 セルフマネージド
パスワード自動生成 - (※1) - (※1) チェックなし
暗号化キーを選択 aws/secretsmanager aws/secretsmanager - (※2)
インスタンスの設定 DBインスタンスクラス 標準クラス、db.m5d.large コンピューティング最適化クラス、db.c6gd.medium バーストクラス、db.t4g.medium
ストレージ ストレージタイプ プロビジョンド IOPS SSD (io2) 汎用SSD (gp3) 汎用SSD (gp3)
ストレージ割り当て 400 GiB 200 GiB 20 GiB
プロビジョンド IOPS 3000 IOPS 3000 IOPS 3000 IOPS
ストレージスループット - (※3) 125 MiBps 125 MiBps
ストレージの自動スケーリング - (※4) - (※4) チェックあり
最大ストレージしきい値 - (※4) - (※4) 1000 GiB
モニタリング DevOps Guru をオンにする チェックあり チェックあり チェックなし
追加設定 最初のデータベース名 - (※4) - (※4) 未指定
オプショングループ - (※4) - (※4) default:postgres<バージョン>
バックアップ保持期間 7日間 7日間 1日間
削除保護の有効化 チェックあり チェックなし チェックなし

※1: 認証情報管理をAWS Secrets Managerで管理している場合、パスワードは自動設定される。
※2: 認証情報管理がセルフマネージドの場合、設定不可
※3: ストレージタイプが「プロビジョンド IOPS SSD (io2)」の場合、設定不可。スループットはIOPSの設定値により拡張される。参考
※4: 可用性と耐久性が「マルチAZ DBクラスター」に設定されている場合、設定不可

簡単に見ていきます。

可用性と耐久性は本番稼働用、開発/テストでは「マルチAZ DBクラスター」の設定になっています。一方で無料利用枠では「単一DBインスタンス」となっています。
また、エンジンのタイプをPostgreSQLに設定した場合、デプロイオプションには本記事執筆時点で、

  • マルチ AZ DB クラスター
  • マルチ AZ DB インスタンス
  • 単一の DB インスタンス

の3種類がありますが、無料利用枠は「単一の DB インスタンス」から変更することはできないようになっています。
これは自身の想像ですが、意図しない課金が発生しないようにするためではないかと予想しています。

そのほか、DBインスタンスクラスのデフォルト値も大きく異なります。
無料利用枠では一時的に多少の負荷が発生するワークロード向けであるバースト可能インスタンスが選択されていますが、開発/テストでは、高速かつ低遅延なストレージを使用したコンピューティング最適化クラス、本番稼働用では一般的な用途向けの汎用クラスが選択されています。

例えば、本番稼働では中程度のCPU使用率だが、開発/テストでは大規模なテストデータを入れ、高速にテストを行いたい、開発速度を上げたいといった要件に合わせて設定されているのではないかなと考えています。(ここは自身の予想です)

モニタリングや追加設定については、無料利用枠では機械学習を用いて以上な操作パターンなどを検出するDevOps Guruがデフォルトで無効になっています。また、バックアップの保持期間もデフォルトでは1日と、どちらかといえば検証や学習をはじめとした短期利用を想定されているのではないかと思われます。

終わりに

テンプレートをそのまま使う、というよりは常に自身の目的に合った設定を行うことが多いのではないかと思います。
ただ、今回、改めてデフォルト値を比較して結構細かな項目まで設定値が変わっていることがわかり新たな学びとなりました。

簡単なまとめではございますが、皆様の参考になれば幸いです。
お読みいただきありがとうございました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.