3大クラウドDBaaS比較(MySQL編)

技術者が語るMicrosoft Azure

DBaaS(Database as a Service)とは、クラウド上のデータベースを管理するサービスのことです。
データベースの管理、保守はクラウドベンダーが行い、構築も容易なので、ユーザー側の負担を大きく減らすことができます。

今回は、3大クラウドで提供しているDBaaSの中から、MySQLベースの下記サービスについて、その特徴と価格を比較したいと思います。

・Amazon RDS for MySQL
・Amazon Aurora
・Google Cloud SQL for MySQL
・Azure Database for MySQL

1.特徴

各サービスの特徴は以下になります。

Amazon RDS for MySQL

Amazon RDS for MySQL は Amazon RDS を使った完全マネージド型サービスです。
同じRDSのAuroraよりバージョンやストレージエンジン、パラメータの制限が少なく、より多くのインスタンスタイプが選択可能です。

また、MySQLのバージョンアップ等もAmazon Auroraより先に対応される傾向にあります。
Auroraと同じRDSでも料金体系が異なるため、Auroraより料金が安くなることが多いです。

Amazon Aurora

Amazon Aurora は AWSが開発したリレーショナルデータベースでAmazon RDSの一部となります。
MySQLをクラウド向けに再設計しており、標準的な MySQL データベースと比べて最大で5倍高速とされています。
また、データの6つのコピーを3つのAZにレプリケートしているため高可用性となっており、豊富なオプションも用意されています。
MySQL と完全な互換性があり、既存のアプリケーションやツールを変更することなく実行することができます。

ただし、RDS for MySQLと比較すると、制限事項が多いです(MySQLのストレージエンジンはInnoDBのみ、選択できるバージョンが少ない、など)。

Google Cloud SQL for MySQL

Google Cloud SQL for MySQLはGoogle Cloudで提供されているフルマネージド型データベースです。
すべてのメジャー バージョンで MySQL アプリケーションと完全な互換性があります。
また、Database Migration Service を使用したシンプルで安全な移行ができます。
他のGoogle Cloudサービスとの連携もシームレスに行うことができます。

Azure Database for MySQL

Azure Database for MySQLはMySQL Community Editionをベースとしたフルマネージド型サービスです。
シングルサーバとフレキシブルサーバの2つのデプロイモードが選択できます。
データやログなどのバックアップは自動で行われ、最長で35日間の保管が可能です。
AI を活用したデータベースの監視と最適化機能により、クエリ速度を向上させることができます。

機能比較

※2023/2/28調べ

項目 Amazon RDS for MySQL Amazon Aurora Google Cloud SQL for MySQL Azure Database for MySQL
インスタンス インスタンス数:最大40 インスタンス数:最大40 インスタンス単位で管理(共有コア インスタンスにのみ適用) 1インスタンス当たりのDB数制限:最大100
vCPUとメモリ vCPUとメモリをそれぞれ選択(選択肢豊富) vCPUとメモリをそれぞれ選択(選択肢豊富) 最大CPU数:96個、最大メモリ:624GB(専用コア インスタンス) 複数の組み合わせから選択 ※最大CPU数:96個、最大メモリ:672GB
ストレージ(ディスク) ※最大128TB 汎用SSD(gq2、gq3)
※最大64TB
HDDかSSD
※最大64TB(自動拡張あり)
フレキシブルサーバは追加IOPSのオプションあり
※最大16TB
レプリケーション Multi-AZ構成設定可 データの6つのコピーを3つのAZにレプリケート フェイルオーバーレプリカ構成可能 自動的に3重化
バックアップ 自動(日時)/手動 自動(日時)/手動 自動(日時)/手動 自動(数時間ごと)
複数DB管理 なし なし phpMyAdmin、MySQL Workbench、Toad Edge Elastic Pool
認証・認可 AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) ユーザー・パスワードによる認証 Azure Active Directory
モニタリング・ロギング CloudWatch CloudWatch Cloud Monitoring Microsoft Monitoring Agent(MMA)
監査 CloudWatch CloudWatch Cloud Audit Logs 監査(Audit)機能
暗号化 Transparent Data Encryption(TDE) Transparent Data Encryption(TDE) ストレージ保存時、または、VPCネットワーク内を転送中に暗号化 Transparent Data Encryption(TDE)
機能制限、互換性 機能制限あり RDS for MySQLより多い 機能制限あり 機能制限あり

※参考(機能制限)
Amazon RDS for MySQL
Amazon Aurora
Cloud SQL for MySQL
Azure Database for MySQL

2.料金

各サービスの料金について、同じ条件での比較は難しいのですが、以下内容で計算しました。

Amazon RDS for MySQL

予約割引:最大69%

ロケーションタイプ :リージョン
リージョン :アジアパジフィック(東京)
ノード数 :1
インスタンス :db.m5d.8xlarge(vCPU:32、Memory:128GiB)
使用率 :100 %Utilized/Month
デプロイオプション :Single-AZ
RDSプロキシ :はい
ストレージ量 :汎用SSD(gq2)
ストレージ量 :1000GB
バックアップストレージ量 :1000GB

Amazon Aurora

予約割引:最大69%

インスタンスタイプ :プロビジョニング済みオンデマンドインスタンス
リージョン :アジアパジフィック(東京)
ノード数 :1
インスタンス :db.r5.8xlarge(vCPU:32、Memory:256GiB、Network Performance:10 Gigabit)
使用率 :100%Utilized/Month
価格モデル :OnDemand/Reserved
インスタンスファミリー :Memory optimized
RDSプロキシ :はい
ストレージ量 :1000GB
ベースライン IO レート :1000/秒
ピーク時の IO レート :10000/秒
ピーク時の IO アクティビティの時間 :300時間/月
バックアップストレージ量 :1000GB

Google Cloud SQL for MySQL

予約割引:最大52%

インスタンス数 :1
リージョン :東京(asia-northeast1)
インスタンスタイプ :Custam(vCPUs:32、RAM:128 GB)
High Availability :Enable
ストレージ量 :1000GB
バックアップストレージ量 :1000GB

Azure Database for MySQL

予約割引:最大67%

リージョン :東日本
デプロイオプション :フレキシブル サーバ
コンピューティング レベル :汎用
インスタンス :D32ds v4(仮想コア数32、メモリ128GB)
サーバ :1
ストレージ冗長性 :ZRS
ストレージ量 :1000GB
IOPS :有料IO(100万IOPS)
バックアップ冗長性 :LRS
バックアップストレージ量 :1000GB
高可用性 :あり

料金比較

※2023/2/28調べ

月額料金 Amazon RDS for MySQL Amazon Aurora Google Cloud SQL for MySQL Azure Database for MySQL
従量課金 $4,050.17 $4,652.11 $4,697.81 $6,304.89
1年予約 $3,269.00 $2,835.86 $3,703.10 $3,944.59
3年予約 $2,521.70 $2,090.00 $2,566.55 $3,050.37

※参考
Amazon RDS for MySQL の料金
Amazon Aurora の料金
Cloud SQL の料金
Azure Database for MySQL

3.おわりに

今回は3大クラウドで提供しているDBaaSの中から、MySQLの特徴と価格について比較しました。
今回の比較では、金額面だけを比較すると従量課金ではAWS RDS for MySQL、3年予約ではAWS Auroraが安い結果となりました。

ただし、今回のAuroraの計算ではIOを考慮していないため、IO負荷が高いシステムでは大幅に料金が増える可能性があります。
また、AWSは他サービスよりも制限事項が多いので、既存のMySQL環境を移行する場合は注意が必要です。
Azure Database for MySQLについては、Azure Active Directory(Azure AD)での認証が可能であるため、他サービス・製品と合わせてMySQLの認証を統合したい場合は、Azureが第一候補になります。
Azure ADでは、各SaaSやWindows製品の認証に対応しているため認証を一元化でき、各サービス、製品ごとにログインIDを管理する必要がなくなり、非常に便利かと思います。

最後までお読みいただき、ありがとうございました。

<参考サイト>
OCI、AWS、Azure運用コスト比較
Azure ADに統合可能なSaaS一覧