Cloud SQL の Enterprise と Enterprise Plusはどう違うのか


# 概要
Google Cloud上でデータベースを扱うときにCloudSQLを作成することが多くあります
作成する中で`Cloud SQL のエディションの選択`とありますが料金くらいしか差分を見ていなかったのでより詳細に見ていきます

:::note warn
ここでは実際に使用しての性能比較などは行いません
:::

## エディションの選択
そもそもCloudSQLエディションの選択とはなにかというところから見ていきます

CloudSQLで特定のデータベースエンジンを選んだとき、エディションの選択として下記の2つが選択できます
- Enterprise
- Enterprise Plus

元は`Enterprise`のみでしたが`Enterprise Plus`については2023年の7月中旬に発表がありそれ以降から選択できるようになっています

:::note info
それ以前に作られたCloudSQLインスタンスは**Enterprise**になります
:::

### Enterprise Plusとなって何が変わったのか
こちらがEnterprise Plusエディション発表の記事です

https://cloud.google.com/blog/ja/products/databases/announcing-the-cloud-sql-enterprise-plus-edition-for-mysql-and-postgresql

以下は要点を抜粋してます

> 3 つの重要な改良を加えた MySQL と PostgreSQL 向けの Cloud SQL Enterprise Plus エディション を発表

MySQLとPstgreSQL互換ではEnterprise Plusエディションが提供される
**SQL Serverは対象外**なので注意する

どう違うかは3つの改良を加えたとのこと

> 1 つ目は、さまざまなソフトウェアの最適化、マシンの種類と構成の改善、統合された SSD を用いたデータ キャッシュオプションの活用により、読み取りと書き込みの両方のパフォーマンスを大幅に高速化したこと

- ソフトウェア最適化
- マシンの種類と構成の改善
- SSDを用いたデータキャッシュオプションの活用

EnterprisePlusは上記の変更を加えたため読み書きのパフォーマンス向上していること

> Cloud SQL Enterprise Plus for MySQL では、現在の Cloud SQL と比較して、読み取りスループットが最大 3 倍、書き込みレイテンシが最大 2 倍向上しています。

具体的には読み取りスループットが3倍、書き込みレイテンシが2倍向上しているとのこと
（レイテンシは低いほうがよいので2倍かかるというより、書き込みレイテンシーの改善率が現状の2倍ということ）

> 2 つ目は、計画的なメンテナンス作業におけるダウンタイムをほぼゼロにし、メンテナンスも含めて 99.99% の可用性 SLA を提供することで、ビジネス クリティカルなアプリケーションの可用性目標を満たしたことです。

SLAが既存では99.95%だったのが99.99%のSLAになったこと

SLAを月間稼働率とみて各々のサービス停止を許容する時間を分に直すなら
EnterprisePlusは約43分
Enterpriseは約216分
実際の時間に直すと結構差がありますが
基本的には↑の時間だけCloudSQLが毎月サービスを停止をしている訳ではないのでここはサービスの要件と要相談

:::note warn
SLAが適用される[ガイドライン](https://cloud.google.com/sql/docs/mysql/operational-guidelines?hl=ja)があるのでそちらを守る必要があります
具体的には、「高可用性であること」や「CPU、メモリが過負荷状態ではない」など
:::

> 3 つ目は、データ保護機能を強化し、35 日間のログ保持を実現したことです。これは、厳格なコンプライアンス要件を持つすべての組織にとって必須となる機能です。

後述で比較しているけれど既存のログ保持期間は7日間であったため随分伸びた

## コスト
料金について、ちょいたかになる
ざっくり1.3倍ほど高くなる

※ HAとついているのは高可用性であること (High Availability)

||Enterprise|EnterprisePlus|
|---|---|---|
| vCPUs |$0.0537 per vCPU| $0.0698 per vCPU |
| Memory |$0.0091 per GB| $0.0118 per GB |
| HA vCPUs |$0.1074 per vCPU| $0.1396 per vCPU |
| HA Memory |$0.0182 per GB| $0.0237 per GB |
| Data Cache Storage |none| $0.0003 per GB |
| HA Data Cache Storage |none| $0.0006 per GB|

https://cloud.google.com/sql/pricing?hl=en#cpu-mem-pricing

## 各種エディションの機能まとめ

2023/11/11時点

||Enterprise| Enterprise Plus |
|---|---|---|
|料金モデル| Enterprise の料金 | Enterprise Plus の料金|
|データベース バージョン | MySQL 5.6、5.7、8.0 <br/> PostgreSQL 9.6、10、11、12、13、14、15 | MySQL 8.0 <br/> PostgreSQL 14、15|
|マシンタイプ| 汎用マシン ファミリー | パフォーマンスが最適化された N ファミリー |
|マシン構成の上限| 最大 96 基の vCPU <br/> 最大 624 GB RAM <br/> コア対メモリ比率 1:6.5 | 最大 128 基の vCPU <br/> 最大 864 GB RAM <br/> コア対メモリ比率 1:8
|可用性 SLA | 99.95% | 99.99%|
|メンテナンスによるダウンタイム| 60 秒未満 | 10 秒未満|
|データ キャッシュ（オプション）|いいえ| はい（MySQL のみ）|
|ポイントインタイム ログの保持 |最大 7 日 | 最長 35 日|

EnterprisePlusだとデータベースのバージョンが制限されることについては気をつけておきたいですね

https://cloud.google.com/sql/docs/editions-intro?hl=ja#features


## (その他)既存のEnterpriseをEnterprisePlusにする方法
Google Cloudに[DataMigrationService](https://cloud.google.com/database-migration?hl=ja)があります

そちらを使用するようで、具体的な内容については下記を参照ください

https://cloud.google.com/sql/docs/editions-intro?hl=ja#can_i_migrate_between_editions

筆者はAWSの[DMS](https://aws.amazon.com/jp/dms/)しか使用したことありませんが
クラウド間や、オンプレとのハイブリッドでデータを別のデータベースサーバー(インスタンス)へレプリケートできるサービスだと思います :eyes:


## 引用

https://cloud.google.com/sql/docs/introduction?hl=ja

https://cloud.google.com/sql/docs/editions-intro?hl=ja

https://cloud.google.com/blog/ja/products/databases/announcing-the-cloud-sql-enterprise-plus-edition-for-mysql-and-postgresql