適材適所でクラウドを使い分ける企業が増えている。ここで課題になるのがクラウドごとの違いだ。AWS(アマゾン・ウェブ・サービス)、Google Cloud Platform(GCP)、Microsoft Azureはサービスラインアップが似ているが、用語やサービスの構造、利用できる機能などに差異がある。本連載ではテーマ別に各クラウドの特徴を取り上げ、違いを浮き彫りにしていく。第4回から第6回は「データベース」をテーマに解説する。第6回はMicrosoft Azureを取り上げる。
アプリケーションを実装する上でのデータベース、特にRDB(Relational Database)の位置付けや、データベースの基本的な仕組みはクラウドでもオンプレミスでも大きな違いはありません。一方で、データベースの管理についてはクラウドとオンプレミスでは大きな違いがあります。RDBの管理をマネージドサービスとしてクラウド事業者が実施する「DBaaS(Database as a Service)」が提供されている点です。また、クラウドならではの特性を活用したデータベースがマネージドサービスとして提供されている点も大きな違いです。
「as a Service」という言葉からもわかるように、DBaaSではデータベースやその基盤となるインフラの管理、運用がサービスとして提供されます。このため、一部のパラメータ設定を除き、利用者は物理設計や設定といった構築作業、メンテナンスやアップデートといった保守作業に時間を使う必要がなく、データベースの利用に注力できます。
また、物理的な制約が少ないクラウドの特性を活用して、バックアップや自動復旧、冗長性、堅牢性といった基本的な機能、性能が担保されている点が特徴です。スケールアウトを容易にできる機能も用意されています。

こうしたメリットがある一方、背景となる仕組みや特性を理解せずに利用するとせっかくの機能や性能を使いこなせない可能性もあります。このため、利用するDBaaSを理解し、ベストプラクティスに従って使うことが肝心となります。AWS、GCPのDBaaSについては第4回、第5回でそれぞれ詳しく説明しました。今回はMicrosoft AzureのDBaaSについて解説していきます。
Microsoft AzureのDBaaSの特徴を簡単にまとめると以下となります。
- 充実したMicrosoft SQL ServerベースのDBaaSラインアップと、他RDBベースのDBaaSの拡充
- NoSQLのDBaaSであるAzure Cosmos DBは、高可用性を保証しつつ複数のデータモデルをサポート
- データ分析サービスのラインアップも充実しており、全方位をカバー
他クラウド事業者とのラインアップ比較
まずはAWS、GCP、AzureのDBaaSについて、どういったデータベースのタイプをカバーしているのかを比較してみましょう*1。現行のMicrosoft Azureのラインアップは、AWSやGCPと比較して遜色のないレベルであることがわかります。
タイプ | AWS | GCP | Microsoft Azure |
---|---|---|---|
RDBMS(MySQL) | Amazon RDS for MySQL/Amazon Aurora MySQL | Cloud SQL for MySQL | Azure Database for MySQL |
RDBMS(PostgreSQL) | Amazon RDS for PostgreSQL/Amazon Aurora PostgreSQL | Cloud SQL for PostgreSQL | Azure Database for PostgreSQL |
RDBMS(Microsoft SQL Server) | Amazon RDS for SQL Server | Cloud SQL for SQL Server | Azure SQL Database/Azure SQL Managed Instance |
RDBMS(MariaDB) | Amazon RDS for MariaDB | - | Azure Database for MariaDB |
RDBMS(Oracle Database) | Amazon RDS for Oracle | - | - |
RDBMS(サーバーレス) | Amazon Aurora Serverless | - | Azure SQL Database Serverless |
NoSQL(Key-Value) | Amazon DynamoDB | Cloud Bigtable | Azure Table Storage/Azure Cosmos DB Table API |
NoSQL(ドキュメント) | Amazon DocumentDB | Firestore | Azure Cosmos DB MongoDB API |
NoSQL(グラフ) | Amazon Neptune | - | Azure Cosmos DB Gremlin API |
NoSQL(Cassandra) | Amazon Keyspaces | - | Azure Cosmos DB Cassandra API |
NoSQL(SQL) | - | Cloud Spanner | Azure Cosmos DB SQL API |
NoSQL(時系列) | Amazon Timestream | - | Azure Time Series Insights |
データウエアハウス | Amazon Redshift | Google BigQuery | Azure Synapse Analytics |
Hadoop | Amazon EMR | Dataproc | Azure Databricks/HDInsight |
かつては「SQL Serverでは先行しているけれど……」だった
3大クラウドのうち、Microsoft Azureには特有の背景があります。マイクロソフトはクラウド事業者であると同時に、データベース製品事業者でもあることです。クラウドサービスの提供以前から、RDBMS(Relational Database Management System)である「Microsoft SQL Server」を提供していました。
サービス開始当初、これはメリットにもデメリットにもなっていました。Microsoft SQL ServerをベースにしたDBaaSを早期から提供していた一方、MySQLやPostgreSQLをベースにしたDBaaSがなかなか提供されなかったのです。厳密にいえば、サードパーティーベンダーによるDBaaSは提供されていましたが、マイクロソフトが提供するDBaaSで自社製品以外のラインアップが整うのはかなり後発となりました。
しかし、現在は以前とは全く違う状況になっています。例えばRDBでは、Microsoft SQL ServerベースのDBaaSである「Azure SQL」に加え、MySQLをベースにした「Azure Database for MySQL」、PostgreSQLをベースにした「Azure Database for PostgreSQL」、MariaDBをベースにした「Azure Database for MariaDB」が提供されています。Oracle DatabaseをベースにしたDBaaSは提供されていませんが、利用者の選択肢は他クラウドと遜色ないレベルに拡充されています。