Special
» 2019年11月05日 10時00分 公開

100ノード超えクラスタ、日量・数十億のクエリ、1秒以下の応答を実現:PostgreSQLの拡張性の課題を解決する「Azure Database for PostgreSQL - Hyperscale (Citus)」――MicrosoftがAzureマネージドサービスで提供する理由

現在は多くのクラウドで「PostgreSQL」が利用できる。Microsoftも「Azure Database for PostgreSQL」を提供し、多くのユーザーが活用中だ。一方で、PostgreSQLのワークロードが増加した際、アプリケーションの修正なしでは拡張が難しいという課題も浮上してきた。この課題解決のためにMicrosoftが新たに提供を開始した「Hyperscale (Citus)」は、ユーザーが抱える課題をどのようにして解決してくれるのだろうか。

[PR/@IT]
PR

膨大なデータの高いトランザクション要求にPostgreSQLで応える

ALT Microsoft
Azure Data 製品担当ディレクター
スニル・カマト(Sunil Kamath) 氏

 企業のデジタル変革を支えるのは、ベンダーの独自のソフトウェア技術ではなく、今やオープンソースソフトウェア(OSS)の技術といわれている。実際、各ベンダーのクラウド環境を見ても、さまざまなOSSが当たり前のように提供されている。データベースも例外ではなく、「MySQL」「PostgreSQL」など、OSSの技術を利用したサービスが数多く提供中だ。

 「OSSのリレーショナルデータベース(RDB)では、PostgreSQLのコミュニティーにかなりの勢いがあります」と話すのは、MicrosoftでAzure Data製品担当ディレクターを務めるスニル・カマト(Sunil Kamath)氏だ。

 PostgreSQLは、30年以上にわたって開発が続けられており、今もなお進化を続けているRDBだ。「多くの開発者がPostgreSQLを気に入っているのは、JSONなどのデータタイプにも対応しており、さまざまなアプリケーションに容易に対応できるところです」とカマト氏。今やアジャイル開発のデータプラットフォームとしても、PostgreSQLは数多く使われている。

 「Microsoft Azure」(以下、Azure)を利用する多くのユーザーも、さまざまなアプリケーションでPostgreSQLを活用している。Azure上のIaaS(Infrastructure as a Service)に自分でPostgreSQLを展開して活用することはもちろん、マネージドサービスの「Azure Database for PostgreSQL」が用意されているので、Webブラウザ上の簡単な操作ですぐにPostgreSQL環境が利用できる。

 クラウド上で容易にPostgreSQLが使えるようになってはいるが、一方で課題も浮上してきた。PostgreSQLベースのシステムのワークロードが大きく増えた際に、アプリケーションを修正せずにはなかなか拡張ができないのだ。特に、増え続けるデータを分析するようなアプリケーションで大規模なワークロードに対応しようとすると、単一サーバ構成ではリソースが限界に達してしまうことがあるという。

 このようなアプリケーション開発者が直面する課題を解決するため、MicrosoftではAzure Database for PostgreSQLに新たに「Hyperscale (Citus)構成」(以下、Hyperscale (Citus))を提供する。「Hyperscale (Citus)」は、2019年1月にMicrosoftが買収したCitus Dataの技術を利用し、PostgreSQLをスケールアウト型で大幅に拡張できるようにするものだ。

ALT Hyperscale (Citus)はAzure Database for PostgreSQLのデプロイオプションとして提供される《クリックで拡大します》

 Hyperscale (Citus)を利用することで、開発者はアプリケーションのコードを書き換えることなく、大規模なワークロードを処理できるよう、PostgreSQLを大きく水平型で拡張できるようになる。

 「Hyperscale (Citus)を利用すると、1コアで利用していたようなPostgreSQLベースのアプリケーションを、アプリケーションに何ら変更を加えることなく容易に数千コア規模に拡張することができます」(カマト氏)

ALT Hyperscale (Citus)がもたらすメリット《クリックで拡大します》

Citus DataはOSSにコミットするMicrosoftだからAzureを選んだ

ALT Microsoft
Global Blackbelt Japan OSS Data TSP
藤田稜 氏

 Citus Dataは、OSSベースでPostgreSQLの拡張機能である「citus」等を開発してきた企業だ。ユーザーはCitus Dataが開発した技術を、何らロックインされることなく利用することができる。

 「Microsoftに買収された後も、Citus Dataがメインとなって開発してきたPostgreSQLの拡張機能は全てのソースコードがGitHubに公開されています。誰でもそれをダウンロードして利用できます」と説明するのは、Microsoftの藤田稜氏(Global Blackbelt Japan OSS Data TSP)。

 OSSで公開されているものと同じものが、Azureからマネージドサービスとして提供されているのだ。

 前述の拡張機能は、2018年1月時点で世界中から1万4000以上ダウンロードされている。さらに、2019年1月時点では3万2000ダウンロードを超えており、ダウンロード数は右肩上がりで増えている。

 また 、2018年10月には同月にリリースされたPostgreSQL 11にいち早く対応したcitusのバージョン8.0が発表され、2019年5月よりプレビュー版として利用が可能となったHyperscale (Citus)ではこのバージョンがデプロイされている。PostgreSQLの最新バージョンである12は2019年10月にリリースされたが、citusはやはり同月にバージョン9.0で対応した。Citus Dataが開発してきた拡張機能については今後も新たな開発が継続されることがMicrosoftから表明されている。

 Microsoftでは、Citus Dataの買収以前から、OSSのコミュニティーには大きな貢献をしてきた。「Citus Dataの創立者から聞いた話ですが、買収提案を受け入れた理由は、MicrosoftがOSSコミュニティーに最も貢献しているパブリッククラウドプロバイダーだったからとのことです」と藤田氏。数多くのOSSがAzure上で利用できることにより、ユーザーはベンダーにロックインされる懸念がなく、OSSの最新技術をAzure上で自由に選択することができる。

 これはRDBにおいても例外ではない。Microsoftは自社のRDBソリューションとして「Microsoft SQL Server」を持ちながら、Azureではいち早くOSSのPostgreSQLやMySQLのマネージドサービスを提供。他のクラウドベンダーのようにフォークするのではなく、MicrosoftではPostgreSQLに独自の変更を施していない。コミュニティーバージョンをそのまま、Azureのマネージドサービスとして提供している。これによりロックインの懸念は全くなく、コミュニティー版のアップグレードにも迅速に追随できるようになっている。

データのシャーディング技術でSaaSのマルチテナントなアプリケーションを容易に実現

 拡張性の高いHyperscale (Citus)は、ビッグデータ分析などでよく利用されている。他にもデータ量が多くスループット要件の高いトランザクションのアプリケーションにも利用される。さらに10万テナント規模のデータを数多くのノードで処理することで、大規模なマルチテナントのアプリケーションを容易に実現できる。

 Hyperscale (Citus)の大規模な事例の一つに、Microsoft社内での利用がある。

 「全世界のPCやサーバから集積されるWindowsのアップデートの莫大なログを分析するためのシステムで、Hyperscale (Citus)が使われています。これは2800コアのCPU、18TBのメモリ、1.5PB(ペタバイト)のストレージを、100ノードを超えるPostgreSQLのクラスタ構成で運用しています。毎日600万のクエリを処理し、クエリの95%は4秒以下で結果が返されます」(カマト氏)

 このシステムには、日々8TBものデータが新たに追加されているという。

ALT 大容量データのリアルタイムでの運用分析やレポート作成も可能《クリックで拡大します》

 このように日々データが増え続け、大規模なクエリ要求があるようなシステムに、Hyperscale (Citus)は適している。「これまで、商用データベース製品をオンプレミスで大規模に展開していてベンダーにロックインされていた状況から、PostgreSQLでオープンソースベースに移行したい」といった要求にも応えられる。

 「Hyperscale (Citus)はリアルタイムオンライントランザクションで、PBクラスのデータ容量のRDBにも最適です。またマルチテナントで利用するSaaS(Software as a Service)のアプリケーションにも対応でき、数10万テナントでサービスを提供するようなSaaSもサポートできます」(藤田氏)

 SaaSのアプリケーションをHyperscale (Citus)ベースで構築すれば、複数テナントで多くのノードを共有しながらもテナント毎のデータは分離したまま使うことも可能になり、スケーラビリティやパフォーマンスに加えてセキュリティも担保することが可能となる。

ALT マルチテナントのSaaSアプリケーションのスケールにも対応《クリックで拡大します》

 これを実現しているのがHyperscale (Citus)の「シャーディング技術」だ。Hyperscale (Citus)では1つの「コーディネーター」ノードの下に、複数の「ワーカー」ノードが配置され、「シャードキー」に応じてデータが複数のワーカーノードに分散し格納される。

 このクラスタがアプリケーション側からは単一のPostgreSQLとして見える。クエリはコーディネーターノードにより、対象のデータがあるワーカーノードに自動で振り分けられ分散処理される。ワーカーノードを増やす際には、データベースを停止する必要はない。ワーカーノードはユーザーの要求に応じて、増やすことも減らすことも自由に可能だ。

Azure Stack版も提供し、ハイブリッドクラウドの要求にも対応

 Azure Database for PostgreSQL - Hyperscale (Citus)は、2019年5月からプレビュー版が提供されている。今後数カ月で一般提供が開始される予定だ。一般提供開始時には、可用性のSLAなども明らかにされ、ミッションクリティカルな用途でも安心して使えるものになるだろう。

 Hyperscaleシリーズは、既に「Azure SQL Database」でも提供されている。こちらでは、ストレージのスケールアウト拡張が可能だ。Microsoftでは、HyperscaleシリーズをAzureで提供するあらゆるRDBサービスに適用する予定とのことだ。「MySQL版が今まさに設計段階にあります」とカマト氏は言う。

 Hyperscale (Citus)は、Azure Database for PostgreSQLのデプロイ方法の一つだ。単一サーバ構成のAzure Database for PostgreSQLでも、通常のアプリケーションのワークロードなら十分に対応できる。Hyperscale (Citus)を利用するべき目安は、単一サーバ構成のCPU数の上限である64 vCPUで処理能力が不足する、あるいは100GB以上のデータ容量で高いパフォーマンスが要求されるアプリケーション用途となる。

ALT Hyperscale (Citus)を選択する際の画面《クリックで拡大します》

 Hyperscale (Citus)の最小構成は、1台のコーディネーターと2台のワーカーの3ノード構成だ。プレビュー版ではメニューから20台のワーカーノードまで拡張できる。「それ以上のワーカーノードを利用したい場合は、ぜひともMicrosoftにお問い合わせください」と藤田氏。グローバルではプレビュー版でありながら既に5社が、本番環境でHyperscale (Citus)を採用している。また20ノードを超えるワーカーノード構成を検討している、複数の日本企業も既にあるとのことだ。

ALT ノード数、コア数などを選択する際の画面《クリックで拡大します》

 現時点でプレビュー版であるAzure Database for PostgreSQL - Hyperscale (Citus)は、Azureの東南アジアリージョンなどで利用できる。今後半年くらいの間には、東日本リージョンでも提供を開始する予定だという。

 また、ハイブリッドクラウドへの対応も検討しており、「Azure Stackの上で動くHyperscale (Citus)も検討しています」とカマト氏。オンプレミスで複数のPostgreSQLを利用していて、運用に苦労している。あるいは、IoTの活用などでデータが爆発的に増えている。そうした場合には、Hyperscale (Citus)を検討してみてはいかがだろうか。

日本マイクロソフト品川オフィスにて毎月1,2回ハンズオンセミナーを開催している。詳細と登録は下記から。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本マイクロソフト株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2019年12月31日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。