RDS for PostgreSQLとAurora（PostgreSQL）のコスト比較の例

# RDS for PostgreSQLとAurora（PostgreSQL）のコスト比較

RDS for PostgreSQLとAurora（PostgreSQL）のコスト比較をやってみおます。
コスト比較の前提は以下のとおりです。

- 一か月は30.5日とする。
- 東京リージョンが対象。
- バックアップストレージ、Snapshot Export、データ転送はかからないものとする。
- Auroraではバックトラックは利用しない。


# RDS for PostgreSQLとAuroraの構成

RDS・AuroraのSLA定義はMulti-AZが前提となっているので、以下の構成でコストを比較します。

- RDS for PostgreSQL
<br/>MultiAZ 2台構成（マスターとスタンバイ）

- Aurora
<br/>MultiAZ 2台構成（マスターとリードレプリカ）


# インスタンスタイプ

RDSで利用できるインスタンスクラスはたくさんありますが、DBに適したメモリ最適化クラス(R5)の一部のみ抜粋した表が以下です。
どのインスタンスタイプでもRDSの方が20%は安いです。ただし、Auroraは標準的なPostgreSQLデータベースと比べて最大で3倍高速らしいので、安いインスタンスタイプを選ぶこともできるかもしれません。
シングルインスタンスの場合の料金ですので、マルチAZにすると倍になります。


| モデル         | コアカウント | vCPU | ECU| メモリ (GiB) | ストレージ (GiB) | 専用 EBS 帯域幅 (Mbps) | ネットワーキングパフォーマンス (Gbps) |  RDS for PostgreSQL  時間あたりの料金 |  Aurora(PostgreSQL)  時間あたりの料金 |
|----------------|--------------|------|------|--------------|------------------|------------------------|---------------------------------------|---------------------------------------|---------------------------------------|
| db.r5.xlarge   | 2            | 4    | 19    | 32           | EBS のみ         | 最大 4,750             | 最大 10                               | 0.60USD<br>(1日14.4USD)                               | 0.70USD<br>(1日16.8USD)                               |
| db.r5.2xlarge  | 4            | 8    | 38    | 64           | EBS のみ         | 最大 4,750             | 最大 10                               | 1.20USD<br>(1日28.8USD)                               | 1.40USD<br>(1日33.6USD)                               |
| db.r5.4xlarge  | 8            | 16   | 71   | 128          | EBS のみ         | 4,750                  | 最大 10                               | 2.40USD<br>(1日57.6USD)                               | 2.80USD<br>(1日67.2USD)                               |
| db.r5.8xlarge  | 16           | 32   | 132   | 256          | EBS のみ         |  6,800                 | 10                               | 4.80USD<br>(1日115.2USD)                               | 5.60USD<br>(1日134.4USD)                               |
| db.r5.12xlarge | 24           | 48   | 173   | 384          | EBS のみ         | 9,500                  | 10                                    | 7.20USD<br>(1日172.8USD)                               | 8.40USD<br>(1日201.6USD)                               |

※ECU：1つのEC2 Compute Unitは、1つの 1.0-1.2 GHz 2007 Opteron または 2007 Xeon プロセッサの CPU能力に等しい能力を提供
※参考：[Aurora で利用可能なすべての DB インスタンスクラスのハードウェア仕様](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.SummaryAurora)
※コストは[Amazon RDS の料金](https://aws.amazon.com/jp/rds/pricing/)を参照。


# RDS for PostgreSQLの料金

汎用 (SSD) ストレージかプロビジョンド IOPS (SSD) ストレージが選択肢になりますが、今回は汎用 (SSD) ストレージを選択。

- 汎用 (SSD) ストレージは1GBあたり月額 0.276USD


# Aurora(PostgreSQL)の料金

- ストレージ料金	0.12USD/毎月GBあたり
- I/O 料金	0.24USD/100万リクエスト


# コスト比較の例

インスタンスタイプをdb.r5.4xlarge、ストレージを1TBとしたときのコストは以下のようになります。
※1ドル=107円で計算


|        | インスタンス月額         | ストレージ月額        | 合計        | 備考                                                                |
|--------|--------------------------|-----------------------|-------------|---------------------------------------------------------------------|
| RDS    | 約3,513USD (約376,000円) | 約283USD (約30,281円) | 約406,281円 | インスタンスは1時間当たり2.40USD ストレージは1GBあたり月額 0.276USD |
| Aurora | 約4,100USD (約438,700円) | 約123USD (約13,161円) | 約451,861円 | インスタンスは1時間当たり2.80USD ストレージは1GBあたり月額 0.12USD  |

AuroraにしてもRDSより2%ぐらいしか高くなっていないです。
ただし、I/O 料金（0.24USD/100万リクエスト）がかかるので、リクエスト数によって大きく変わってきそうです。（リクエストを計算の難しそうなので、実績から計算することになるのかな？）
RDSは汎用 (SSD) ストレージを用いているので、高価なプロビジョンドIOPS(SSD) ストレージを用いるとコストの差は小さくなりそうです。

EC2であれば、r5.4xlargeは1.216USD/時間なので約190,484円(1台　約95,242円)とRDS・Auroraの半分ぐらいです。RDS・Auroraはマネージド型サービス分高くなっていますが、運用は楽になるのでその分をどう評価するかですね。

また、今回は考慮していませんが、1年または3年契約でインスタンスを予約するリザーブドインスタンスを利用すれば、20～50%程度安くなります。

今回コストを試算してみましたが、そもそも[AWS Pricing Calculator](https://calculator.aws/#/)で計算した方が早いですが。

# 参考

- [Aurora で利用可能なすべての DB インスタンスクラスのハードウェア仕様](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.SummaryAurora)
- [Amazon RDS の料金](https://aws.amazon.com/jp/rds/pricing/)
- [AWS Pricing Calculator](https://calculator.aws/#/)