Web制作者が知っておきたい オープンソースアプリ&クラウドでのWeb構築の心得

第0回Windows Azureでオープンソースアプリを使う意義

背景と目的

Webサイトの構築にあたり、WordPress, EC-CUBE, OpenPNEなどに代表されるオープンソースアプリケーションを使って素早く構築するケースが増えてきており、今後もその流れはどんどん加速していくと思われます。これらのオープンソースアプリケーション(OSSアプリケーション)は、PHP+MySQLベースで作られているため、Windowsとは無縁の世界と思われている方もいらっしゃるかもしれません。しかしながら、最近ではWindows+IIS(Microsoft版Apache)というMicrosoft純正環境もOSSアプリケーション動作環境の1つの選択肢として広く知られるようになりました。

OSSアプリケーションがWindows上で動くのはもはや特別なことではなくなったのです。

Microsoftのクラウド プラットフォーム「Windows Azure※」では、OSSアプリケーションに対する取り組みはさらに強化されています。OSSアプリケーションのデータベースをSQL Serverのクラウド版「SQL Azure」に対応するなど、Windows Azureへの対応がOSSアプリケーション開発者と協働で行われています。米国では、OSSアプリケーションの中でトップ3シェアを持つWordPress, Joomla!, DrupalがWindows Azure 対応をしています。日本でもEC-CUBE, OpenPNEなどの国産OSSアプリケーションがWindows Azureに対応しており、実際に構築・運用が始まっています。

※:本稿ではWindows Azureそのものの説明は割愛します。Windows Azureの解説は下記の漫画がとてもわかりやすいのでお勧めです。
http://msdn.microsoft.com/ja-jp/windowsazure/claudiaazure

そこで、今回はOSSアプリケーションをWindows Azureで実際に運用している方々に、Windows Azureを使ってみての良い点、悪い点、今後の期待などを複数回にわたりご紹介します。第1回は、PHP+MySQLで動作するOSSアプリケーションをWindows Azureで動かすメリットについて解説します。

OSSアプリケーションにとってのWindows Azureのメリット

Windows Azure上で動かすメリットは大きく2つ挙げられます。

  • SQL Azureの利用
  • 企業内のWindows環境とWindows Azureとの連携

SQL Azureの利用

OSSアプリケーションを使っている開発者にとっては、MySQLベースのアプリケーションをわざわざSQL Azureで動作させるのかという疑問を持つかもしれません。それでもあえてSQL Azureを使う理由は2つあります。1つ目は高い可用性です。SQL Azureでは、データの冗長コピーを複数の物理サーバに複製します。ハードウェア障害が発生した場合、自動的に他の物理サーバが代替サーバとして継続稼働しますので、安心してOSSアプリケーションを運用することが可能です。

2つ目はSQL Azure Reportingを利用することで、グラフィカルなレポートが簡単に作成できるようになります。OSSアプリケーションのデータベースに蓄積された情報をもとにアクセス分析や売上分析などを行うことで質の高いWebサイトの運営を行うことが可能になります。

図1 SQL Azure Reporting
図1 SQL Azure Reporting

SQL Azureについては、EC-CUBE公式エバンジェリストの大河内さんが次のように語っています。

IaaSベースのクラウドサービスでは、 Webフロントエンドのスケールは比較的簡単にできますが、 データベースのレプリケーションや、フェイルオーバーも対応しようと思うと、大変な労力が必要です。 SQL Azureなら、複数ノードの自動レプリケーションや、障害発生時の自動フェイルオーバーを標準機能で使用できるので、大幅なインフラコストの削減が可能。利用料金もとてもリーズナブルです。

MySQLで同様のことを実現しようと思うと、多くの専門知識が必要ですし、拡張していくのにも、多くのコストがかかります。 とくに、タイムセールなど、一時的なスケールアップに対応するのは不可能ではないですが、高い技術レベルを必要とします。

SQL Azureは、このような専門知識は最小限で済み、構築/運用のための人的コストもほとんどかかりません。 今まで、データベースの運用に費していたコストを、新機能の開発など、他のもっと力を注ぐべきところに集中させることができます。 自動的にバージョンアップもしますので、今後の展開にも期待できます。

難点は、データベースユーザの追加など、一部の機能を使用するために、SQL Management Studioが必要なことです。 すべての機能が管理ポータルから利用できるようになれば、LAMP環境での運用も楽になるため、今後の展開に期待です。

企業内のWindows環境とWindows Azureとの連携

企業にOSSアプリケーションを導入提案したときに、企業内システムをWindows環境で構築しているためWindows上でのアプリケーション構築が必須なことはもちろんのこと、Active Directory連携などの既存システムとの連携が必須要件となる場合もあります。このような場合、Windows Azureの機能を活用することにより、OSSアプリケーションも企業内のWindows環境と容易に連携することが可能です。

たとえば、Windows Azure Connectを使って企業内システムで使用しているActive DirectoryにWindows Azure上のOSSアプリケーションをドメイン参加させたりAccess Control Service(ACS)を使ってActive Directoryとのシングルサインオン機能の実装などが挙げられます。ACSとの連携についてはCodeplexというサイトでWordPress用のプラグインが無償提供されています。こちらをカスタマイズすることで、他のPHPベースのOSSアプリケーションでも利用することができます。

ACS WordPress Plugin
http://acs.codeplex.com/wikipage?title=WordPress%20Plugin
図2 ACSを使ってADと連携
図2 ACSを使ってADと連携
図3 WordPressでAD連携を実現
図3 WordPressでAD連携を実現

まとめ

PHP+MySQLベースのOSSアプリケーションをPHP+SQL Azureで動作させることに違和感を感じるかもしれませんが、あえてSQL Azureにすることでデータベースの高可用性や容易な解析という大きなメリットを得ることができます。また、企業内のWindows環境との連携を容易に行える事もWindows Azureを選択するメリットの1つになり得るでしょう。

おすすめ記事

記事・ニュース一覧