Special
» 2017年07月31日 10時00分 UPDATE

PostgreSQLとMySQLをAzureのPaaSとして提供:データベースエンジニアからアプリ開発者まで広がるさらなる選択肢と支援――Microsoft Azureが提供する新たなOSSデータプラットフォーム

このところ、OSSへの取り組みが目覚ましいマイクロソフト――。アプリ開発やシステム運用管理だけでなく、データプラットフォームについてもOSSへの対応を深化させている。マイクロソフトが提供するOSSデータプラットフォームは企業、アプリ開発者、DB管理者にどのようなメリットを提供してくれるのか。

[PR/@IT]
PR

OSS対応は開発者支援とコミュニティー貢献の段階へ

ALT 日本マイクロソフト クラウド&エンタープライズビジネス本部 シニアプロダクトマネージャー 横井羽衣子氏

 2017年6月16日〜17日に東京・秋葉原で開催されたイベント「db tech showcase OSS 2017」には、日本マイクロソフトから2人のキーパーソンが登場。2017年5月から新たにサービスが開始された「Azure Database for PostgreSQL」「Azure Database for MySQL」の魅力を熱く語るとともに、オープンソースソフトウェア(OSS)への同社の取り組みにも言及。マイクロソフトのOSSへの本気度が伝えられた。

 なぜ、マイクロソフトはOSSへの対応に本気で取り組んでいるのか――。

 その最大の理由として、日本マイクロソフトの横井羽衣子氏(クラウド&エンタープライズビジネス本部 データプラットフォーム製品マーケティング部 シニアプロダクトマネージャー)は、「地球上のすべての個人とすべての組織がより多くのことを達成できるようにする」という同社のミッションを挙げる。

 デジタルトランスフォーメーション(DX)の実現を目指す企業が増えるにつれて、オンプレミス環境で稼働中のアプリケーションをクラウドサービスと連携させたいというニーズが急速に高まっている。そうしたアプリケーションはOSSベースで作成されたものも多い。オンプレミスからパブリッククラウドへのスムーズな移行支援だけではなく、データ プラットフォームにおいてはデータベースエンジニアに加え、従来の構造化データだけでなく、画像などの非構造化データなど、さまざまな形のデータを扱うアプリケーション デベロッパーなども含め、自分が使い慣れているツールや、自社にとって最適な選択肢を求めるユーザーに応えることを目指しOSS対応を進めている――というのだ。

 「実際、マイクロソフトのOSS対応は『OSSの利用』という段階を過ぎ、アプリケーション開発支援やOSSコミュニティーへのコントリビューション(貢献)といったフェーズに移ってきています」と語るのは、イベント初日の懇親会をサポートし、懇親会会場でミニセッションを行ったMicrosoft Corporationの藤田稜氏(Global Blackbelt Sales Japan OSS TSP)だ。藤田氏によると、GitHubへの開発に貢献した企業(Organizations with the most open source contribution)のトップがマイクロソフトであるという(マイクロソフトはDockerコミュニティーでも、Docker社に次いで2位の開発貢献企業)。

 しかも、マイクロソフトのDX/OSS対応はアプリケーションの全ライフサイクルにまたがるオールラウンドなものとなっている。

 例えば、企画段階向けにはDXに関わるコンサルティングサービスの「デジタル アドバイザリー サービス」を用意し、Webアプリケーション開発にはMicrosoft Azureで「Microsoft Azure App Service on Linux(パブリックプレビュー版)」を提供中。コンテナやOSSコードも一元的に監視できるクラウドベースのシステム運用管理ツールとしては「Microsoft Operations Management Suite(OMS)」があるといった具合だ。

 「さらに、Azureデータプラットフォームについても、アプリケーション開発者やデータベース管理者(DBA)の皆さんが使い慣れた開発言語、フレームワーク、ツールをそのまま利用できます。Azureだからといって、再度学習し直す必要はありません」(横井氏)(図1

図1 図1 Azureデータプラットフォームでも、アプリケーション開発者やデータベース管理者(DBA)は使い慣れた開発言語、フレームワーク、ツールをそのまま利用できる《クリックで拡大します》

 マイクロソフトのデータプラットフォームは、マイクロソフトのデータプラットフォームは、環境に依存しない、同一の開発、利用環境をオンプレミスとクラウドの両方で提供している(図2)。そのため、Linux仮想マシンをAzure上で稼働させればOSSのデータベース(DB)をオンプレミスと全く同じ形で導入、運用できる他、新たにサービスとして追加されたPaaSあるいはDBaaSであれば、さらに運用管理の手間を大幅に軽減できるという。

図2 図2 マイクロソフトのデータプラットフォーム。環境に依存しない、同一の開発、利用環境をオンプレミスとクラウドで提供する《クリックで拡大します》

“改造なし”のPostgreSQL/MySQLをPaaSで提供

 そうしたPaaS型OSS DBの第1彈として2017年5月に登場したのが「Microsoft Azure Database for PostgreSQL」と「Microsoft Azure Database for MySQL」の2つだ。2017年7月現在はパブリックプレビューの段階だが、2017年内には一般提供される予定だ。

 アプリケーション開発者にとってのAzure Database for PostgreSQL/MySQLの最大の特徴は、“コミュニティー版”という点にある。「今、パブリックプレビュー版で利用可能なのはPostgreSQL 9.5/9.6、MySQL 5.6/5.7ですが、両方ともにコミュニティーバージョンをそのまま提供しています。マイクロソフトは何も改造していません」と、横井氏。既存のアプリケーションをAzureに載せ替える場合でも、接続先を指定するための文字列を別にすれば、コードの書き替えは基本的には不要であることもアプリケーション開発者にとって大きなメリットになる。

 さらに、「今後、新しいバージョンが登場したときには、60日以内にAzureで利用できるようにします」と、横井氏。過去のメインバージョンについても、2バージョン前までは対応すると付け加える。

 仕組みの面では、IaaS上の仮想マシンではなく、PaaSのサービスとして提供されることが大きなポイントであるという。PaaSであることのアプリケーション開発者にとっての意義は、今まで以上にインデックスの使い方の工夫やアルゴリズム/ロジックの効率化といった“ソフトウェア的解決”が求められるということ。物理/仮想マシンのサイズアップによる“力任せ”で稼働時の処理性能(TPSなど)を向上させるといった従来のパフォーマンスチューニングのテクニックが使えないからだ。逆に言えば、本来の仕事である「アプリケーションの開発」に集中して、より品質を高めていけるということでもある。

 実は、Azure Database for PostgreSQL/MySQLは独立したサーバとしてではなく、マイクロサービス構築PaaSである「Microsoft Azure Service Fabric」上の1機能として動作する仕組みになっている(図3)。

図3 図3 Azure Database for PostgreSQL/MySQLサービスの構成基盤。IaaS上の仮想マシンではなく、Azure Service Fabric上のサービスとして提供される《クリックで拡大します》

 所定のAPI経由でアクセスするアプリケーションにとってはオンプレミスのLinux上で稼働するPostgreSQL/MySQLサーバにしか見えないが、DBとしての機能を実際に提供しているのはAzure Service Fabric上の「Microsoft Azure Managed Database Service」だ。このAzure Managed Database Serviceは世界の40リージョンで展開され、「Microsoft Azure SQL Database/Microsoft Azure SQL Data Warehouse」でも利用されている実績の豊富なDBエンジンであり、データ処理(Compute)とデータ格納(Storage)のレイヤーに関してもAzure SQL Database/Azure SQL Data Warehouseと共通のもが使用される。

DB構築時間はわずか数分、テスト準備も容易

ALT Microsoft Corporation Global Blackbelt Sales Japan OSS TSP 藤田稜氏

 独立した仮想マシンではなく、サービスとして提供されるAzure Database for PostgreSQL/MySQLは、構築するのも容易だ。DBAやシステム運用管理者の作業工数を削減できるのはもちろんだが、アプリケーション開発者にとっても、単体テストや結合/システムテストの準備がそれだけ簡単になるというメリットをもたらす。

 サービス利用時に必要になるのは、Microsoft Azureのアカウントだ。初めての場合はMicrosoft Azureの公式Webサイト(https://azure.microsoft.com/ja-jp/)にある「無料で始める」をクリックすればOK。30日間有効の2万500円分の無料使用権付きのアカウントがすぐに発行されるので、試してみて、気に入ったら正規アカウント(従量課金制サブスクリプション)に切り替えればよい。

 「アカウントが作成できたら、Azureのポータルから『新規』を開き、Azure Marketplaceの下にあるDatabasesの中からAzure Database for PostgreSQL/MySQLを選びます」と、藤田氏(画面1)。サーバ名とサブスクリプションの種類を指定してからリソースグループを作成し、サーバ管理者のログイン名、Azureリージョン、PostgreSQL/MySQLのバージョンなどを設定していく。非常に簡単な操作で利用開始でき、さらにAzureであれば、日本国内でも東日本リージョンと西日本リージョンを選択したり、組み合わせたりして利用できるのだ。

画面1 画面1 Azure Database for PostgreSQL/MySQLは既にAzure Marketplaceに登録済みなので、クリックしていくだけで簡単に構成できる《クリックで拡大します》

 Azure Database for PostgreSQL/MySQLにおけるリソース設定のポイントは、CPUコア数とメモリ容量の代わりに「コンピュートユニット(CG)」という単位で性能を決めるところにある。「CUとはCPU性能とメモリ容量を組み合わせた指標で、100がCPUのほぼ1コアに相当します」と横井氏。Azure Database for PostgreSQL/MySQLのどちらも、正式版の提供段階では「Basicプラン(低めのワークロード用)」で50と100、「Standardプラン(スループット重視型)」「Premiumプラン(レイテンシ重視型)」では100〜2000が選択できるようになる予定ということだ。

 Azureやネットワーク回線の状況にもよるが、利用可能になるまでの時間は1〜2分程度。その後は、レプリケーション、各DBの管理ツール(pgAdmin/MySQL Workbench)、一般的なインポート/エキスポート方式でDBのスキーマとデータをオンプレミス側からAzure側に移行すればよい。「Azure Data Factoryを使えば、GUIでの移行操作が可能です」(横井氏)だ。

“Ops”を兼ねる“Dev”の作業工数を大幅に削減

 アプリケーション開発者(Dev)の本来のミッションは、良質なアプリコードを作ること――だが、現実にはDB管理やシステム運用管理との“兼業”を迫られていることが多い。

 具体的には、「システム企画〜設計」フェーズでは適切なセキュリティ設計/コンプライアンス設計/DB設計/スキーマ設計を行い、「ステージング〜プロダクション」フェーズではバックアップ/リストア/レプリケーション、ログ収集、OSやミドルウェアのパッチ適用とアップデート、パフォーマンスチューニング、スケールアップ/スケールダウンなどのオペレーション(Ops)も行うといった具合だ。DevOpsが提唱されている今、この傾向はますます強まっている感がある。

 このような状況に置かれているアプリケーション開発者に対し、Azure Database for PostgreSQL/MySQLは“システム運用管理の容易さ”も提供する。

 例えば、パフォーマンスチューニングに関しては「インスタンスの単位でチューニングする必要がなく、スループットを考えるだけでよい」(横井氏)とのこと。ゲートウェイを介してアプリケーションがDBサーバに間接的にアクセスする仕組み(図4)が採用されているので、リコンフィグレーションやスケールアップ/スケールダウンの際に接続が切断されても、ゲートウェイが接続を保持するため、クエリを再実行することや、トランザクション中に接続が切断され、トランザクションをやり直すリスクが軽減される(なお、Azureに限った話ではないが、トランザクション単位を小さくすることで、さらに“トランザクションやり直しのリスク”が軽減される)。

図4 図4 変更前/変更後の2つのDBサーバにゲートウェイを介して間接的にアクセスするため、アプリケーションのダウンタイムなしでスケーリングすることが可能《クリックで拡大します》

 また、セキュリティなどのパッチとマイナーアップデートは自動的に適用される他、35日間のバックアップ(ストレージ使用量は無料)、30日分のメトリック履歴、7日分のサーバログも自動的に保管される。可用性については、Azure Service Fabricクラスタを利用した自動フェイルオーバーが実装されている。

 さらに、Azure Database for PostgreSQL/MySQLはセキュリティとコンプライアンスの対策も充実している。「Windows Serverの時代から、マイクロソフトはエンタープライズレベルのセキュリティに取り組んできました」と、横井氏。FISC(Center for Financial Industry Information Systems:金融情報システムセンター)安全対策基準など、業界固有のコンプライアンス基準や国ごとのセキュリティ基準をクリアしているのはもちろん、日本においては、日本初のクラウドセキュリティゴールドマークを取得している。

 また、Azure Database for PostgreSQL/MySQLではPostgreSQL/MySQLのネイティブ認証が使える他、SSL接続とサーバファイアウォール(ホワイトリスト方式)によるアクセス管理や、DB本体とバックアップデータの暗号化によるデータ保護も標準機能として組み込まれている。

 PostgreSQLやMySQLベースで開発したアプリケーションとクラウドならではのAIやIoTのサービスを組み合わせて、DXを1日でも早く成し遂げたい――。そのような大志を抱く企業のアプリケーション開発者にとって、Azure Database for PostgreSQL/MySQLは最初に検討すべきクラウドサービスであるといえよう。

 まずは、Azureを簡単に学ぶことのできるウェビナーに参加し、クラウドのスキルを習得してゆくことをお勧めしたい。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.


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

RSSについて

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

メールマガジン登録

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