今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、AuroraとAutonomous DatabaseとAlloyDBを比較してみたの日。

目次

とある日

先日AlloyDBがGAされました。

そこで、AWS,OCI,Google Cloudの3つのクラウドサービスで展開されているフルマネージドなデータベースを調べて比較した内容になってます。

なお、私は業務でAWSを扱っているため、Aurora贔屓かもしれないですがご了承下さい。

OCIは机上で資格のために勉強した程度の知識です。

また、Google Cloudについてはほとんどわかりませんし、AlloyDBについては最近出たサービスなので情報が少ないです。

各サービスの概要

今回比較するサービスは以下の3つです。

はじめに各サービスについて概要や特徴を記述します。

特徴については、個人的に気になった機能や驚きがあった機能をピックアップしています。

Aurora(AWS)

AWSで利用できるリレーショナルデータベースサービスです。

MySQL および PostgreSQL との完全な互換性を持ち、グローバル規模で圧倒的な高パフォーマンスと可用性を実現する設計

Amazon Aurora(高性能マネージドリレーショナルデータベース)| AWS

ここで覚えてほしいのが、Auroraでは2つのDBエンジンをサポートしています。

これは、他のサービスにはないところかなと思います。

Amazon Aurora DB エンジンとインスタンスクラスでサポートされているパフォーマンスインサイト - Amazon Aurora

01_Amazon Aurora アーキテクチャ概要.pdf

Deep Dive on Amazon Aurora

特徴:サーバーレス

Amazon Aurora Serverless は、Amazon Aurora のオンデマンドの Auto Scaling 設定です。アプリケーションニーズに応じて、自動的に起動、シャットダウン、および容量をスケールアップまたはスケールダウンします。 データベース容量を管理することなく、AWS でデータベースを実行できます。

Amazon Aurora Serverless | AWS

Aurora にはサーバレスといった設定が存在します。

通常のオンデマンドよりDB管理を自動でよろしくやってくれるようになる設定です。

ユーザは、Aurora 容量単位 (ACU)の最小・最大の容量範囲を指定するだけです。

あとは、Auroraが自動的にスケーリングしてくれます。

さらに、消費した容量に対してのみ料金の支払いが発生します。

サーバレスについて知りたい方は以下に参考になる資料があるのでご覧ください。

Aurora Serverless v2 の仕組み - Amazon Aurora

新サービス Aurora Serverless v2 の検証とその評価 [DeNA インフラ SRE] | BLOG - DeNA Engineering

待たせたな!噂のAuroraサーバーレスv2がGA。初心者にも分かりやすくまとめてみた - Qiita

Autonomace Database(OCI)

OCIで利用できる自律型データベースです。

Oracle Autonomous Databaseは、エラスティックにスケーリングされ、高速な問合せパフォーマンスを発揮する使いやすい完全自律型データベースです。サービスとして、Autonomous Databaseは、データベース管理を必要としません。

Oracle Autonomous Databaseとは

Autonomous Database技術概要 - Speaker Deck

Autonomous Database サービス・アップデート / adb_service_update_jp_FY23 - Speaker Deck

Oracle Autonomous Database on Shared Exadata Infrastructure

※Autonomous Databaseを以下ADBと呼ぶ

ここで覚えてほしいのが、ADBでは2つのワークロードに対応したをモードがあります。

なお、AJDについては触れません。

それぞれに違いについては深くは触れないので以下資料をご覧ください。

Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp - Speaker Deck

ADWとATPの比較 / Autonomous Databaseへの接続と事前定義サービス | コーソルDatabaseエンジニアのBlog

Autonomous Databaseのワークロード・タイプについて

Oracle Database Technology Night #59 Autonomous Databaseのパフォーマンスのメリットと注意点 - Speaker Deck

特徴:自律型データベース

自律型データベースの定義

自律型データベースは、これまでDBAでが行っていたデータベースのチューニング、セキュリティ、バックアップ、更新などの日常的な管理タスクを機械学習を使用して自動化するクラウド・データベースです。従来のデータベースとは異なり、自律型データベースはこのようなタスクをすべて人手を介さずに行います。

自律型データベースとは | オラクル | Oracle 日本

リレーションデータベースやグラフデータベース、時系列データベースなどの〇〇データベースとは意味が異なります。

Auroraでいうところの「マネージド」の考えに近いのかなと思ってます。(厳密には違いますが雰囲気そんな感じです)

ここで重要なのが「機械学習」を使った自動化いうことです。

利点をいくつか上げてみます。

  • 自動プロビジョニング
    • フォールトトレラントで可用性の高いミッションクリティカルなデータベースを自動的に導入します。シームレスなスケールアウト、サーバー障害時の保護が実現します。アプリケーションの実行は継続されながら、更新プログラムはローリング方式で適用されます。
  • 自動構成
    • 特定のワークロードに合わせて最適化するようにデータベースを自動的に構成します。メモリ構成、データ形式、インデックス、アクセス構造はすべて、パフォーマンスを向上させるために自動的に最適化されます。お客様はデータをロードするだけで、データベースをすぐに使えるようになります。
  • 自動インデックス作成
    • ワークロードを自動的に監視し、アプリケーションを高速化する可能性がある不足しているインデックスを検出します。続いて、各インデックスを実装する前に検証してその利点を確認し、機械学習を使用して自らの間違いから学習します。

個人的には、自動インデックス作成の機能がすごいなと思ってます。

自律型データベースとは | オラクル | Oracle 日本

ADBはよく「DBAが不要になるのか?」みたいないことが言われてますね。

(個人的にはどこまで機械学習がやっていても最低限は必要かなと思ってます)

自律型データベースについて知りたい方は以下に参考になる資料があるのでご覧ください。

Autonomous Database技術概要 - Speaker Deck

「自律型DB」は本当に使える?本音で語るAutonomous Databaseの現在地(前編) | アシスト

世界初の自律型データベースの実力は? 現役DBエンジニアがチューニング対決で検証 - ログミーTech

AlloyDB(Google Gloud)

Google Cloudで利用できるPostgreSQL 互換データベースです。

AlloyDB は、要求の厳しいトランザクションおよび分析ワークロード向けの、フルマネージドの PostgreSQL 互換データベースです。オープンソースPostgreSQL との 100% の互換性を維持しながら、エンタープライズ グレードのパフォーマンスと可用性を提供します。

AlloyDBについて | PostgreSQL 用の AlloyDB | Google クラウド

AlloyDB for PostgreSQL の一般提供開始を発表 | Google Cloud 公式ブログ

新しい AlloyDB for PostgreSQL により、レガシー データベースから解放されます。 Google クラウド ブログ

内部の AlloyDB for PostgreSQL: インテリジェントなデータベース対応ストレージ

特徴:カラム型エンジン

リレーショナルデータベースでは、行指向ですが、AlloyDBでは列指向(カラム)のデータベースとなっています。

これにより、PostgreSQLが本来持つトランザクション処理用の行ベース形式と、新しく持つカラム型形式のストレージおよび実行エンジンといった両者のメリットをAlloyDBは持ち合わせています。

勝手なイメージですが、AuroraとAmazon Redshiftをいいとこ取りしたみたいな感じですね。

  • 機械学習(ML)技術と分析モデルを使用して、カラム型形式での保管に最も適したテーブル / 列をインテリジェントに選択する
  • クエリ プランナーは、クエリプラン内の各ノードに最適な実行モードを自動的に選択するコスト計算モデルを使用する
  • Google のカラム型エンジンを使用すれば従来型の PostgreSQL エンジンに比べて最大 100 倍も速く分析クエリを実行できる

個人的には、クエリプランが列指向と行指向のクエリに対していい感じに実行モードを切り替えてくれるのが面白いですね。

カラム型エンジンについて知りたい方は以下に参考になる資料があるのでご覧ください。

AlloyDB for PostgreSQL の仕組み: カラム型エンジン | Google Cloud 公式ブログ

最新のカラム型ストレージ エンジン上の Spanner | Google Cloud 公式ブログ

各サービスの比較

それでは本題です。

最初は個人的に比較したかった以下8個の項目を表で比較していきます。

  1. リリース日

    1. 各サービスがGAされた日を比較します
  2. 対応エンジン・バージョン

    1. 各サービスが対応しているエンジンとバージョンを比較します
  3. コスト

    1. コストが発生する部分を比較します(あえて各クラウドの見積もりツールで出した値をそのまま貼り付けてます)
  4. 見積もり

    1. 各サービスの最低限のリソースで立ち上げた際の見積もり額を比較します
  5. パフォーマンス

    1. 各サービスでパフォーマンスの謳い文句があるのでそれを比較します
  6. 可用性

    1. 各サービスのSLAを比較します
  7. ユースケース

    1. 各サービスが適しているユースケースを比較します
  8. フェイルオーバー

    1. 各サービスでを比較します

その後、更に気になる部分の詳細について記述します。

一覧表

比較項目 Aurora Autonomace Database AlloyDB
リリース日(GA) 2015 年 7 月 27 日 ADW:2018年4月19日
ATP:2018年8月8日
2022 年 12 月 15 日
対応エンジン・バージョン MySQL 5.6,5.7,8.0互換
PostgreSQL 10,11,12,13,14互換
Oracle Database 19c
Oracle Database 21c
PostgreSQL14互換
コスト データベースインスタンス+ストレージと I/O
1 秒単位で 10 分の最小料金
ストレージはTB/月、CPUはOCPU数/時
最低1分から秒単位
CPUとメモリ+ストレージ
請求は時間単位
見積もり(1CPU,ストレージ1TB ) 1 月あたりのコスト352.00 USD
MySQL,db.r6g.large,ノード1,IO レート: 1 /秒
月次見積費用¥156,577.46
License Inclueded,shared
USD 527.35 per 1 month
2vCPU,16 GB,Backup storage 1GB
パフォーマンス MySQL の最大 5 倍のスループットPostgreSQL の最大 3 倍のスループット - PostgreSQL よりもトランザクション ワークロードで 4 倍以上、分析クエリで最大 100 倍高速
可用性 マルチ AZ クラスター:99.99%
シングル AZ クラスター:99.9%
マルチAZクラスタSLAは、暦月中99.95%
99.995%(Autonomous Data Guard)
99.99% の高可用性 SLA(メンテナンスを含む)
ユースケース エンタープライズアプリケーション,SaaS アプリケーション,グローバルに分散したアプリケーション ADW:データマート、データウェアハウス、データレイクなどの分析ワークロード
ATP:トランザクション、分析、バッチのワークロードを同時に実行するために最適化
エンタープライズ クラスのトランザクション / 分析ワークロード
フェイルオーバー クラスター内に複数のリーダー DB インスタンスを持つこと可能 Autonomous Data Guard機能で自動フェイルオーバーが可能 フェイルオーバーレプリカが存在する

詳細:アーキテクチャ

表一覧では、あまり伝えきれないため「アーキテクチャ」のみ切り出して詳細を記述します。

どのサービスもコンピュートとストレージを分割することで高可用性やパフォーマンスを発揮できるようなアーキテクチャになっているみたいです。

  • Aurora
    • 専⽤の log-structured 分散ストレージシステム
    • 3つの異なるアベイラビリティゾーンに分散された 数百のストレージノードにストライピングされた ストレージボリューム
    • AZ+1 の障害から保護するためにデータを 各アベイラビリティーゾーンに2つのコピー、 リージョン内で計6つのコピー
    • データは6つのノードすべてに⾮同期・並列で書き込み
  • ADB
    • X8 および X7 Exadata インフラストラクチャ クオーター、ハーフ、およびフル ラックがサポート
  • AlloyDB
    • 非常に高速な先行書き込みログ (WAL) 書き込みのための低遅延の地域ログ ストレージサービス
    • これらの WAL レコードを処理し、「具体化された」データベース ブロックを生成する ログ処理サービス(LPS)
    • ゾーン ストレージに障害が発生した場合でも耐久性を保証する、耐障害性のシャード化されたリージョンブロック ストレージ

(OCIはあまり情報が見つからなかったです)

まとめ

比較するために色々と調べてましたが、似ているようでまったくことなるサービスだということがわかりました。

それぞれで感じた特徴をまとめてみました。

  • Aurora
    • 一言でいうと「RDBをより強くしてみた」って感じです
    • 複数のエンジンに対応しているのは強い
    • Auroraを支援するサービスもかなり多い
  • ADB
    • 一言でいうと「DBAの仕事奪ってみた」って感じです
    • 他に比べてやはり高い
  • AlloyDB
    • 一言でいうと「一つで最強のデータベース作ってみた」って感じです
      • AWSとはまた別の考え方な気がします
    • ほかのDBサービスのいいところを受け継いでいる

それぞれ思想が違うので一概にどれが優れているとかはあまりない気がしました。

あと、OCIはあまり情報がなくて調べるのに苦労しました。

その点、AWSはドキュメントやセミナー資料などが多く調べたいことがすぐ出てきました。

Google Cloudは、ドキュメントよりブログで内容がまとまってて見やすかったです。

Alloyが日本語だと合金って意味らしいです。

あと、それぞれのサービス名が「A」から始まっているのはなにか意図がありそうと思う今日このごろ。

参考資料

サービス比較について

Aurora対抗 Google Cloud新サービス AlloyDB for PostgreSQL | クラウドエース株式会社

AlloyDB for PostgreSQLを試してみた|NOBORI Tech|note

Google、Amazon Auroraに対抗するDB「AlloyDB for PostgreSQL」発表 通常のPostgreSQLよりOLTPが4倍、OLAPが100倍高速に - ITmedia NEWS

話題の Google Cloud の新しい DB の AlloyDB for PostgreSQL を調査して、分析クエリ高速化機能のカラム型エンジンを試してみた | DevelopersIO

【Google Cloud】AlloyDB と Cloud SQL を徹底比較してみた!!(第1回:AlloyDB の概要、性能検証編) - So-da

[Oracle Cloud]OCPUの考え方(オラクルクラウド) - こしぞーのひとり情シス