(1/3)クラウド上でのJavaやRuby、.NETを利用した開発についての記事は増えてきていますが、クラウド上でのPHP利用に関する記事は、現時点では意外と少ないです。Azureの2大クラウドを比較します。Engineを他のクラウドプロバイダが追いかける構図が明確になってきています。その一方で、Webアプリケーションの開発の主力言語の一つとしてPHPが以前から使われています。PHPはデザイナからWebデベロッパに転身した開発者から人気を博しており、PHP技術者認定試験ができるなど、注目を集めています。筆者はJava、Ruby、Python、C#と、ひととおりWebアプリケーションの開発を経験していますが、PHPではほとんど特別なサーバの設定なしで、エディタ一つで簡単にWebアプリケーションを作れるのは、スタートアップが簡単で初心者にとって魅力的だと感じています。スタートアップが簡単という意味でクラウドサービスとの相性も良いです。本連載では、PHPの開発者が利用できるクラウドサービスとして、今利用するなら有力な採用候補となるAWSとAzureについて比較します。連載の最初となる第1回では、最初に各クラウドの概要を見て行きましょう。AWSから見ていきます。Services(AWS)とはAWSはオンラインブックストアの老舗Amazonが提供するクラウドサービスです。利用されている方も多いと思います。EC2サービスを中核として、ストレージ、ネットワークなどのインフラをIaaSサービスとして提供しています。MapReduceなどのミドルウェアも提供しています。Service)の機能も提供しています。AWSは非常に多くのサービスを提供していますが、本連載では、PHP開発で利用できる機能をピックアップして紹介します。EC2/S3/EBS/Route53EC2はインスタンスと呼ばれる仮想マシンを提供するサービスです。仮想マシンのスペックは、あらかじめAWSが定義したものの中から選ぶことができます。IPと呼ばれるクラウド外部のネットワークからアクセスできるIPアドレスを割り当てたり、ファイアウォールを定義したセキュリティグループでTCP/UDPのポートのフィルタリングなどのセキュリティ設定を行うことができます。OSは、RedHat、SUSE、Ubuntu、CentOSなどのLinux、Windowsを利用することができます。AMIを利用することもできます。S3はストレージサービスで、一般的なファイルサービスとして利用できるほか、EC2で利用する「AMI」と呼ばれる仮想マシンイメージもここに登録します。MapReduceで処理を実行する場合も、S3を入出力に利用します。EBSは、仮想マシンにアタッチして利用するストレージサービスです。S3に登録されたAMIから起動したインスタンスを停止した場合でも、EBSにデータを書きこんでおけばディスクの内容が消えることはありません。EBSをルートディスクとして起動できるインスタンスを利用すれば、OS領域全体を永続化することができます。ローカルディスクに比べて、EBSディスクは若干パフォーマンスが落ちます。IPを利用すると、クラウド外からインスタンスへのアクセスはIPアドレスで行うことになります。サービスを提供する上で、IPアドレスでサービスにアクセスさせるのでは不便です。53」としてAWSがDNSサービスも提供しています。AMIも利用することができます。その他、コミュニティによって提供されているUbuntu、CentOS、FedoraなどのOSのほか、アプリケーションインストール済みの仮想マシンイメージを利用することができます。VPCAmazonのクラウド上にある仮想マシンと、オフィスなどのネットワークをVPNで接続するサービスです。VPCを利用すればクラウドとオフィスを簡(単にセキュアなネットワークで接続することができます。複数拠点間で利用することもできるので、拠点が複数あるような企業のオフィス環境やオフショアなどによる開発環境でも簡単に利用することができます。VPCを大幅に拡張」などをごらんください。Balancingは、複数のインスタンス間で負荷分散を行うためのロードバランサです。Scalingはインスタンスを監視し、CPUの負荷やアクセス数などが特定の条件になったら自動的にインスタンスを増やしてスケールアウトさせることができます。BalancingやAuto-Scalingと連携したスケールアウトまで、総合的なアプリケーションの管理を行います。Beanstalk」とは」などをごらんください。Beanstalkは現在のところ、Java言語にのみ対応しています。Store)データベースが注目されています。DBという形でKVSをサービスとして提供しています。KVSはデータ構造をシンプルにする代わりに大量データを分散させて持つというメリットがありますが、従来のRDBMSで実現されていたACIDによる整合性やSQLによるクエリは利用できせん。先日(2012/1/19)、DynamoDBという形で、SSDを採用してSimpleDBよりスケール性能が向上したデータベースもリリースされています。パブリックベータですが、フルSSDのストレージという新しい試みに今後に期待が高まります。RDSとして、RDBMSのサービスも提供しています。RDSでは、MySQLとOracleを利用することができます。RDBMSについては、EC2上でMySQLなどのデータベースサーバを起動したインスタンスを立ち上げて運用することも可能ですが、RDBではバックアップ・リストアやレプリケーション機能を持ち、自前でやるより簡単にRDBMSを運用できるようになっています。CloudWatchCloudWatchは、インスタンスやアプリケーションのモニタリングツールです。RDSのDBのCPU使用率、待ち時間、リクエスト数などのメトリックスでモニタリングすることができます。モニタリング結果をグラフ化したり、アラート設定を行うことができます。MapReduce大量データを分散処理するためのMapReduceを利用した処理が行えるサービスです。MapReduceにより大量のデータを扱うデータウェアハウス構築、ログ解析や各種分析などを効率よく行えます。MapReduceを利用すれば、Hadoopのセットアップやクラスタを構築することなく手軽にMapReduce処理を行うことができます。Console上からWebブラウザで管理することができます。Servicesの歴史Amazonでは様々なサービスが提供されていますが、全てのサービスが最初から提供されているわけではありません。主要なサービスの提供の歴史を見ていきましょう。Cache、DynamoDB、Beanstalkなどはまだ正式版ではなく、試験的に運用するパブリックベータという位置付けになっています。一般的にAWSでは、パブリックベータ版を発表してから正式版までおよそ2年掛けており、じっくりと評価・改善してからリリースしていることが伺えます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。