AWS・Azure・GoogleCloudの基礎(データベース編)

AWS・Azure・GoogleCloudの基礎(データベース編)

本記事はアジアクエスト Advent Calendar 2024の記事です。

目次

    はじめに

    アジアクエストクラウドインテグレーション部の崔 文碩です。

    本記事は、connpassで発表した「クラウドエンジニアが語るAWS・Azure・GoogleCloud基礎(ストレージ編)」の内容をもとに作成された記事になります。
    AWS・Azure・GoogleCloudの各クラウドのデータベースを紹介し、比較していきます。

    データベースとは

    データベースは一定の形式で作成・管理されたデータの集合体のことを意味します。
    簡単に言いますと、データを整理して、必要なときにすぐに取り出せるようにするための「データの倉庫」みたいなものです。
    例としては図書館の本を挙げられます。本をジャンルごとに並べて、必要な本をすぐに見つけられるようにするのと似ています。

    データベースの種類

    データベースは、大きく2つに分類されます。

    • リレーショナル・データベース(RDB)
    • NoSQL

    RDBとNoSQLはそれぞれ特徴があり、以下にそれをおおまかにまとめました。

    比較項目 RDB NoSQL
    最適化 ストレージ最適化 計算リソースに最適化
    データ設計 正規化/リレーショナル 非正規化/階層構造
    クエリ方法 SQLを使用可能 各データベースによって
    異なるクエリ方法
    トランザクション処理 トランザクション処理 トランザクション処理は限定的
    一貫性/堅牢性 データの堅牢性
    一貫性
    データの堅牢性
    一貫性はデータベースによる
    スケーラビリティ スケールアウトの煩雑さ 高いスケーラビリティ
    運用負荷 テーブルの運用負荷 クラスタの運用負荷

    リレーショナル・データベース(RDB)

    RDBはデータの整合性と複雑なクエリが重視される場合に適しています。また正規化することで処理のコストを抑えられることもメリットとして挙げられます。

    正規化
    正規化(Normalization)とは、リレーショナルデータモデルでデータの重複性をなくすこと。
    重複データを最小にし、データの不整合や喪失が起きるのを防ぐことができる。

    ただ、データが大規模になると処理速度が落ちるというデメリットがあります。
    ユースケースとしては顧客名簿や在庫管理、基幹システムなどに利用されます。

    また、RDBの中でもエンジンによって特徴が異なります。
    データベースにおけるエンジンとは、データベースからデータを作成、読み取り、更新、削除時に使用するコアサービスのことです。

    DBエンジン 特徴
    MySQL/MariaDB GNU GPLと商用ライセンスのデュアルライセンス
    最も普及している
    PostgreSQL   企業に所有されていないソフトウェア
    データの堅牢性が高い
    Oracle Oracleが開発している
    RDBMSのデファクトスタンダード
    SQL Server Microsoftが開発している
    GUIツールが充実
    IBM Db2 2023年11月末、IBM社との協力で提供開始の発表
    AIワークロードのデータ管理を簡単に行えるよう設計

    NoSQL

    NoSQLデータベースは、大規模な非構造化データセットや急速に変化するデータ構造を持つアプリケーションに適しています。
    メモリ内で処理を行うため大容量データでも高速に処理が可能で、水平分散によるスケールアウトといった柔軟性と拡張性が特徴になります。
    ただ、データの一貫性が保証されていないため、データの更新や削除処理が頻繁に発生すると、データの整合性が保証されない場合があります。
    ユースケースとしては低遅延が必要なアプリケーションやゲーム、ビッグデータ分析やトラフィックの急増が想定されるデータの分析などに利用されます。

    NoSQLも同じくエンジンごとに特徴があります。

    DBエンジン 特徴
    redis キーバリュー型DB(データを「キー」と「値」という単純な構造で管理)
    オンメモリ
    レプリケーションできる
    Apache Cassandra   カラム指向型DB
    ログなど大量のデータ解析向き
    Facebookの大規模データの格納のために開発されたもの
    MongoDB ドキュメント型DB
    スキーマレスでデータを格納できる
    JSONやXML等のデータ構造に対応
    複雑なデータモデリングを容易に実現可能

    このようにデータベースは、それぞれ異なる特徴や利点を持っているため、ニーズやプロジェクトの要件に応じて選択する必要があります。

    AWS・Azure・Google Cloudのデータベース比較

    RDBMS(management system)サービスの比較

    クラウドサービスを利用する際、主要なRDBMSの選択肢として、AWSのAmazon RDSやAmazon Aurora、AzureのAzure SQL DatabaseやAzure Database for MySQL/PostgreSQL、そしてGoogle CloudのCloud SQLやCloud Spannerが挙げられます。

    各クラウドが提供する重要なマネージドサービスについて詳しく見ていきましょう。

    Amazon Auroraは、MySQLに対して最大5倍、PostgreSQLに対して最大3倍のスループットを実現可能であり、さらにデータは3つのアベイラビリティゾーンに6回レプリケーションされるため、可用性は99.99%に達します。

    Azure SQL Databaseは、Microsoft SQL Serverデータベースエンジンの最新の安定したバージョンに基づく、高度なクエリ処理機能を使用できます。
    また、自動パフォーマンス監視機能(Query Performance Insights)を活用することで、メンテナンスコストも大幅に削減できます。

    Cloud Spannerは、RDBMSの構造とNoSQLデータベースのスケーラビリティを兼ね備えた「NewSQL」として注目されています。
    各ノードおよびストレージはリージョン内の3つのゾーンに複製され、可用性は99.999%を誇ります。

    ただし、各クラウドによって非対応のデータベースエンジンが存在するため、選択の際は注意が必要です。

      AWS Azure GoogleCloud
    MySQL Amazon RDS for MySQL
    Amazon Aurora
    Azure Database for MySQL Cloud SQL for MySQL
    PostgreSQL Amazon RDS for PostgreSQL
    Amazon Aurora
    Azure Database for PostgreSQL Cloud SQL for PostgreSQL
    Oracle Amazon RDS for Oracle Oracle Database@Azure Oracle Database@Google Cloud
    SQL Server Amazon RDS for SQL Server SQL Database Cloud SQL for SQL Server
    MariaDB Amazon RDS for MariaDB - -

    RDBMS(management system)コストの比較

    システムの性能や可用性はもちろん重要ですが、運用コストも重要な要素となります。 AWS、Azure、Google Cloudはそれぞれ異なる料金体系を持っており、自社のニーズに最適な選択をするためには、これらの料金を比較することが必要です。 そのため、各クラウドのRDBMSの中でSQL ServerとMySQLの料金をざっと比較していきたいと思います。

    ※東京(東日本)リージョン、SQL Serverの場合

      Amazon RDS Azure SQL Database Google Cloud SQL
    使用データベース Amazon RDS for SQL server Azure SQL Database Cloud SQL for SQL Server
    インスタンスクラス db.m5.large
    (2vCPU、メモリ8GiB)
    Standard(Gen5)
    (2vCPU、メモリ8GiB)
    db-standard-2
    (2vCPU、メモリ7.5GiB)
    データ容量 100GiB 100GiB 100GiB
    バックアップ容量 100GiB 100GiB 100GiB
    1カ月当たりの料金 119,264円
    794.91 USD
    68,458円
    456.28 USD
    103,708円
    691.23 USD

    ※ 2024/12時点の内容で、1ドル150円で計算しています。
    ※クラウドサービスの料金体系、為替レート変動により料金は変わる可能性があります。

    SQL Serverを比較した場合、同じスペックであればAzureがコスト面で優れていることが見受けられます。 ただし、使用するリソース構成やデータ転送などの要因によってトータルコストに大きな差がない可能性もあるので、十分に考慮する必要があります。


    ※東京(東日本)リージョン、MySQLの場合

      Amazon RDS Azure Database for MySQL Google Cloud SQL
    使用データベース Amazon RDS for MySQL Azure Database for MySQL Cloud SQL for MySQL
    冗長構成 Multi-AZ フレキシブルサーバー High Availability
    Configuration
    インスタンスクラス db.m5.large
    (2vCPU、メモリ8GiB)
    D2v4 ,2仮想コア
    (2vCPU、メモリ8GiB)
    db-standard-2
    (2vCPU、メモリ7.5GiB)
    データ容量 100GiB 100GiB 100GiB
    バックアップ容量 100GiB 100GiB 100GiB
    1カ月当たりの料金 59,517円
    396.98 USD
    29,901円
    194.85 USD
    46,674円
    311.05 USD

    ※ 2024/12時点の内容で、1ドル150円で計算しています。
    ※クラウドサービスの料金体系、為替レート変動により料金は変わる可能性があります。

    MySQLに関しても同様、Azureがコスト面で利点を持っていることが見られます。


    クラウドサービスへの移行サービス比較

    クラウドサービスに移行する際、既存のデータベースを一から構築する必要があるのではないかと心配する方も多いのではないかと思います。
    このような心配から、各クラウドでは移行サービスを提供しており、これを利用することでオンプレミス環境で使用していたデータベースをクラウドにスムーズに移行できます。
    ただ、クラウドサービスごとに移行方法や制約事項、対応するデータベースが異なるため、事前にドキュメントを確認する必要があります。

    • AWS Database Migration Service
      • 多様なデータベースへの移行が可能で、異なるデータベースエンジン間の移行もサポート
      • 豊富なドキュメント
        • 詳細なドキュメントやリソースが揃っており、移行プロセスが比較的容易

    AWS Migration Serviceに関する参考資料
    はじめてAWS DMSを検討する際に読んでいただきたいこと
    AWS DMSのターゲット
    AWS DMSのソース


    • Azure Database Migration Service
      • 複数のデータベース ソースからAzureデータプラットフォームへのシームレスな移行を最小限のダウンタイムで実現
      • 2つのバージョンが提供
        • ①Database Migration Service
          • Azure Data StudioのAzure SQL Migration拡張機能、Azure portal、PowerShell、Azure CLIを使用
        • ②Database Migration Service (クラシック)
          • Azure portal、PowerShell、Azure CLIで使用
          • ※現在、クラシック - SQLシナリオは作成できなくなり、2026年3月15日に廃止予定
          • マイクロソフトは、最新のAzure Database Migration Serviceを使用することを推奨

    Azure Migration Serviceに関する参考資料
    Azure Database Migration Serviceとは何ですか
    Azure Database Migration Service ツールのマトリックス
    Azure データベースの移行ガイド
    Retirement: Azure Database Migration Service(classic)-SQL server scenarios deprecation


    • Database Migration Service(Google Cloud)
      • AI(Gemini)を活用した支援により、データベース移行をシンプルかつ迅速にすることができる
      • マイグレーションに対応しているDBエンジンが比較的に少なく、選択肢が限られるため、特定のニーズには対応しきれない可能性がある

    GoogleCloud Database Migration Serviceに関する参考資料
    Database Migration Service


    このように、各クラウドサービスはそれぞれ異なる強みを持っており、移行ニーズに応じた選択が可能です。
    自社のニーズに最も適したアプローチを選ぶことをおすすめします。


    NoSQLデータベースサービスの比較

    主要なNoSQLデータベースの選択肢として、AWS、Azure、Google Cloudの各クラウドのサービスを見ていきたいと思います。
    各クラウドごとに対応しているNoSQLの範囲は異なるため、選択時には注意が必要です。

      AWS Azure GoogleCloud
    キーバリュー型
    データベース
    DynamoDB CosmosDB
    (Table API)
    Cloud
    Database
    カラム指向型
    データベース
    Keyspaces CosmosDB
    (Cassandra API)
    Bigtable
    ドキュメント型
    データベース
    DocumentDB CosmosDB
    (MongoDB API)
    Cloud
    Firestore
    • AWS NoSQLデータベース
      • Amazon DynamoDB
        • フルマネージド型のキーバリュー型およびドキュメント指向のデータベース
          高いスケーラビリティとパフォーマンスを持ち、読み取り/書き込みのスループットを柔軟に設定可能
        • ユースケース: ゲーム、IoT、リアルタイムのデータ処理など
      • Amazon Keyspaces(Apache Cassandra向け)
        • Apache Cassandraと互換性があるフルマネージド型のデータベース
          スケーラブルで、グローバルに展開可能
        • ユースケース: 大規模なデータセットを持つアプリケーションや分散システム
      • Amazon DocumentDB
        • MongoDB互換のフルマネージド型ドキュメントデータベース
          スケーラビリティや高可用性を提供
        • ユースケース: コンテンツ管理、ユーザープロファイル、データの柔軟な構造が求められるアプリケーション

    AWS NoSQLデータベース関する参考資料
    Amazon DynamoDB
    Amazon DynamoDBの料金公式ドキュメント
    Amazon Keyspaces(Apache Cassandra向け)
    Amazon Keyspaces(Apache Cassandra向け)の料金公式ドキュメント
    Amazon DocumentDB
    Amazon DocumentDBの料金公式ドキュメント


    • Azure NoSQLデータベース
      • Azure Cosmos DB
        • マルチモデル対応のフルマネージド型データベース
          スケーラビリティと低レイテンシを特徴とし、SQL、MongoDB、Cassandra、Gremlin、Table APIの5つのモデルをサポート
        • ユースケース: グローバルに分散したアプリケーション、リアルタイム分析、IoTアプリケーション

    Azure NoSQLデータベース関する参考資料
    Azure Cosmos DB
    Azure Cosmos DBの料金公式ドキュメント


    • Google Cloud NoSQLデータベース
      • Cloud Firestore
        • フルマネージド型のスケーラブルなドキュメントデータベース
          トランザクションとクエリ機能を持ち、複雑なデータモデルをサポート
        • ユースケース: モバイルアプリケーション、Webアプリケーションのバックエンド
      • Bigtable
        • 特徴: フルマネージド型の大規模なNoSQLデータベース
          高スループットと低レイテンシを持ち、ビッグデータ分析に適している
        • ユースケース: 時系列データ、IoTデータ、大規模なデータセットの分析

    Google Cloud NoSQLデータベース関する参考資料
    Cloud Firestore
    Cloud Firestoreの料金公式ドキュメント
    Bigtable
    Bigtableの料金公式ドキュメント


    各クラウドのNoSQLデータベースは、それぞれ異なる特性を持ち、さまざまなユースケースに応じた選択肢を提供しています。
    具体的なニーズに応じて最適なサービスを選ぶことが重要になります。

    続いて、NoSQLデータベースの料金についてですが、NoSQLデータベースは各クラウドの料金体系が複雑で、特にAWSのDynamoDBに関してはその傾向が著しいです。
    DynamoDBは、データストレージ、読み取り・書き込みのキャパシティユニット、データ転送など、さまざまな要素に基づいて料金が設定されており、使用するケースによってコストが大きく異なる可能性があります。
    そのため、DynamoDBを利用する際には、事前に公式ドキュメントをよく読み、各種料金がどのように発生するかを理解することを強くお勧めします。

    他のNoSQLデータベースサービスについても同様で、各クラウドが提供する料金体系は独自の特徴を持っています。
    例えば、AzureのCosmos DBやGoogle CloudのCloud Firestoreも、それぞれ異なるコストモデルを採用しており、ユーザーはこれらを慎重に比較する必要があります。
    それぞれコストの最適化を図るためのオプションや設定を提供しているため、これらを活用することで無駄なコストを抑えるといいかと思います。

    まとめ

    本記事では、AWS、Azure、Google Cloudのデータベースについて基本情報と比較を行いました。
    データベースはリレーショナル(RDB)とNoSQLに分類され、それぞれ異なる特徴とユースケースがあります。
    RDBMSでは、Amazon RDSやAzure SQL Database、Google Cloud SQLなどのマネージドサービスがあり、NoSQLではDynamoDBやCosmos DB、Cloud Firestoreが選択肢として挙げられます。
    最後まで読んでいただきありがとうございます。

    アジアクエスト株式会社では一緒に働いていただける方を募集しています。
    興味のある方は以下のURLを御覧ください。