AWSでは多様なデータベースサービスが提供されるが、Microsoft Azureには知識の豊富なマルチクラウドユーザーにとって検討に値する選択肢が幾つかある。
米Amazon Web Services(AWS)の「Amazon Web Services」と米Microsoftの「Microsoft Azure」では、いずれも多様なデータベースサービスが提供されている。データ管理プラットフォームにAzureとAWSのどちらを選択するかの判断には、自社のアプリケーション要件とビジネス要件についての明確な理解が必要だ。
データベースを利用する目的は、分析処理か、トランザクション処理か。必要なのは、リレーショナルデータベースか、「NoSQL」データベースか。自社でインスタンスを管理するより、DBaaS(Database as a Service)を利用したいか。クラウドデータベースサービスを購入するに当たって、企業はAzureとAWSのどちらかを選ぶかを用途に合わせて判断しなければならない(注:価格は2015年9月時点の米国の料金)。
AWSのデータウェアハウスサービス「Amazon Redshift」は、ビジネスインテリジェンス(BI)やビッグデータ分析を必要としている企業をターゲットに据えている。Redshiftは分散データベースを構成し、データは1台のマスターノードと複数のワーカーノードに配置される。管理者は「AWSマネジメントコンソール」を使って、クラスタへのノードの追加や削除を行える他、必要に応じてデータベースのサイズを変更できる。データは全てクラスタノードかマシンインスタンスに保存される。例えば、誰も使用していない週末にデータウェアハウスをシャットダウンしようという場合には、まず事前にクラウドストレージサービス「Amazon Simple Storage Service」(Amazon S3)にデータをエクスポートする必要がある。データはその後、クラスタの再開時にリロードする。
Redshiftクラスタを構成する仮想マシン(VM)には、「Dense Storage」と「Dense Compute」という2種類のノードタイプがある。Dense Storageノードは大規模なデータウェアハウス用に最適化されており、一方、Dense Computeノードでは計算集約型の分析用により多くのCPUが使用される。料金は、Dense Computeノードの「dc1.large」インスタンスが1時間当たり0.25ドル、「dc1.8xlarge」インスタンスが1時間当たり4.80ドル。Dense Storageノードは「ds2.xlarge」インスタンスが1時間当たり0.85ドル、「ds2.8xlarge」インスタンスが1時間当たり6.80ドルだ。
「Amazon Relational Database Service」(Amazon RDS)はAmazon Redshiftとは異なり、SQLデータベースを使用するトランザクション処理アプリケーション向けのサービスだ。スケーリングと基本的な管理タスクはAWSマネジメントコンソールを使って自動化でき、バックアップなど、一般的なデータベース管理タスクの多くはAWSが実行する。
RDSは、リレーショナルデータストアを必要するアプリケーションバックエンドに適した選択肢だ。データベースは複数のアベイラビリティゾーン(AZ)にわたって容易に複製できるので、複数のサーバを管理する手間やフェイルオーバーの手続きなしで、高い可用性を実現できる。
RDSは主要な複数のデータベースに対応しており、さまざまなインスタンスタイプを選択できる。オープンソースの「MySQL」を実行するオンデマンドのシングルAZ配置の場合、料金は1時間当たり0.017ドルから3.78ドルまで。マルチAZ配置の場合は、1時間当たり0.034ドルから7.56ドルまで。米Oracleの「Oracle Database」を実行するオンデマンドのシングルAZ配置の場合、料金は1時間当たり0.035ドルから3.64ドルまで。マルチAZ配置の場合、1時間当たり0.07ドルから7.28ドルまでとなっている。1年契約または3年契約でリザーブドインスタンスを予約すれば、料金の大幅な割引を受けられる。
AmazonのNoSQLデータベースサービス「Amazon DynamoDB」はドキュメントストアとキーバリューストアの両方をサポートし、高い柔軟性を備える。さらにAmazon DynamoDBはイベント駆動型のコード実行サービス「AWS Lambda」と統合されているので、管理者はデータやアプリケーションのトリガーを設定できる。
DynamoDBは、大量の読み込みや書き込みが発生するモバイルアプリケーションに適した選択肢だ。ユーザーはJSON(JavaScript Object Notation)形式のドキュメントを保存するテーブルを作成し、テーブルは指定したキーでパーティション化される。データのパーティション化の方法を定義する以外、スキーマの定義は不要だ。そのため、DynamoDBなどのドキュメントデータベースは、柔軟なデータモデルを必要とするアプリケーションには理想的な選択肢となる。
DynamoDBの料金は書き込みスループットと読み込みスループットの容量で決まり、必要な分のスループットをあらかじめ設定するプロビジョニングモデルの他、割安なリザーブドキャパシティーモデルが用意されている。スループットがプロビジョニングされるモデルの場合、書き込みスループットは10ユニットの書き込み容量に付き1時間当たり0.0065ドル、読み込みスループットは50ユニットの読み込み容量に付き1時間当たり0.0065ドルとなる。
Amazon RDSでは、MySQLと互換性を持つデータベースエンジン「Amazon Aurora」が提供される。高いスケーラビリティのリレーショナルデータベースを活用するアプリケーションには、Amazon Auroraを検討するといい。Auroraはデータベースエンジンにおける一般的なボトルネックを最小限に抑えるべく、SSD(ソリッドステートドライブ)ベースの仮想ストレージレイヤーを使用する。またデータは3つのアベイラビリティゾーン(AZ)に複製される。Auroraは移動中のデータを保護できるが、保存中のデータの暗号化にはまだ対応していない。Auroraの料金は「db.r3.large」インスタンスが1時間当たり0.29ドルから、「db.r3.8xlarge」インスタンスは1時間当たり4.64ドル。
「Microsoft Azure SQL Database」は、Amazon RDSと同様の機能を持つリレーショナルデータベースサービスだ。スケーラビリティを備え、エラスティックデータベースサービスを使用できるので、管理者は予測不可能なワークロードにデータベースの予算を定め、Azureの自動スケール機能を使ってプロビジョニングを行える。
Azure SQLにはBasic、Standard、Premiumの3つのサービス階層がある。Basicレベルでは、データベースのサイズ制限は2Gバイト、性能指標である「データベーススループットユニット」(DTU)は5で、料金は1時間当たり0.0067ドル。Standardレベルでは、DTUは10から100まで、データベースのサイズ制限はいずれも250Gバイトで、料金は1時間当たり0.0202ドルから0.2016ドルまで。Premiumレベルでは、DTUは125から1750まで、データベースのサイズ制限は500Gバイトか1Tバイトで、料金は1時間当たり0.625ドルから9.41ドルまで。全レベルで99.99%の稼働率がSLA(サービスレベル契約)で保証される。
MicrosoftのNoSQLデータベースサービス「Azure DocumentDB」は、名前が示す通り、ネイティブレベルでJSONドキュメントをサポートするデータベースだ。管理者はJavaScriptをベースにカスタムクエリ演算子を作成し、適切なAzureコネクタを使ってHadoopアプリケーションと統合できる。DocumentDBはSSDストレージのみを使用する。
DocumentDBインスタンスのストレージ容量は全て10Gバイトだが、毎秒のリクエスト数は250、1000、2500から選択できる。料金はそれぞれ1時間当たり0.034ドル、0.067ドル、0.134ドル。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:日本オラクル株式会社
アイティメディア営業企画/制作:TechTargetジャパン編集部