レベル: 中級 Michael Galpin, Software architect, eBay
2009年 5月 05日 前回までの記事で、自分のニーズを最適に満たすクラウド・コンピューティング・プラットフォームを選び、そのプラットフォーム上で実行するように適切に設計されたアプリケーションを用意できました。これで難関は越えた、と思っているかもしれませんが、先を急いではいけません。クラウド・アプリケーションの場合にも、自分が所有するサーバーでアプリケーションを実行する場合に懸念されるのと同じ、あらゆる事柄を検討しなければならないことに変わりはありません。そのなかには、デプロイメント、テスト、監視などが含まれますが、こうした作業は一筋縄ではいかない可能性があります。というのも、クラウド・アプリケーションは他の誰かのマシンで実行されることから、そのマシンにアクセスできなかったり、そのマシンについての情報がほとんどなかったりという事態が考えられるからです。連載「オープンソース・クラウド・コンピューティングの実態」を締めくくるこの記事では、クラウド内のアプリケーションの管理に役立ついくつかのオープンソースのツールと技術について学びます。
この連載について
この 3 回構成の連載「オープンソース・クラウド・コンピューティングの実態」では、クラウド・コンピューティングが自分にとって役に立つのかどうかを判断する方法と、クラウド・コンピューティングに関する戦略を計画する方法を学びます。第 1 回では、クラウド・コンピューティングの利点、クラウドのタイプ、および選択肢となるクラウド・コンピューティング・プラットフォームの概要を説明しました。第 2 回ではクラウド・アプリケーションの設計と従来の N 階層アプリケーションの設計との重要な違いを詳しく探りました。今回の記事では、クラウドにデプロイされたアプリケーションのライフサイクルの中で、これまで説明していない部分について学びます。さらに、アプリケーションの管理に役立つオープンソースの技術とツールをいくつか取り上げて説明します。
Aptana Cloud
第 2 回では、サンプル・アプリケーションを Aptana Cloud プラットフォームにデプロイしました。そこでは PHP を開発言語として使用しました。Aptana Cloud では、Ruby on Rails と Jaxer (JavaScript のサーバー・サイド実装のオープンソース) もサポートしています。よく使われているこの 3 つのオープンソース言語とその関連フレームワークのどれをとっても、Aptana Cloud で Apache や MySQL などのオープンソース技術と組み合わせることができます。
Aptana の IDE である Aptana Studio は、Aptana Cloud を対象にしたコードの開発およびデプロイメントを容易にします。Aptana が提供しているのはそれだけではなく、クラウド・ベースのアプリケーションを管理するためのツールを豊富に用意しています。ここでもやはり、鍵となるのはオープンソース技術です。次のセクションでは、Aptana のツールを使ってクラウド・ベースのアプリケーションを管理する方法について詳しく説明します。
クラウドの管理
アプリケーションのライフサイクルの中で、運用に関してはその複雑さが過小評価されがちです。アプリケーションの設計については時間をかけて熟慮し、夜遅くまで働いてコードを開発するものですが、アプリケーションが完成して実行されるようになると、それで仕事が終わったと考えてしまいます。これが、よくある落とし穴です。最終的にクラッシュしたり、応答しなくなったりするようなアプリケーションであれば、そのアプリケーションの価値はほとんどありません。しかしアプリケーションを管理するのは容易な作業ではありません。しかも自分が所有するサーバーではなくクラウド・プラットフォームで実行されるアプリケーションともなれば、この作業はさらに手強いものになるはずです。多くの場合、Aptana Cloud のようなプラットフォーム・プロバイダーはこのような事情を考慮し、ユーザーがクラウド・ベースのアプリケーションを管理する際に役立つようにオープンソースのツールと技術を使用しています。
まずはインフラストラクチャーを制御するところから取り掛かりましょう。Web アプリケーション用に設計された Aptana Cloud が使用するのは、至るところで使用されている Apache Web サーバーです。Aptana では Apache に簡単にアクセスすることができます。Aptana Studio からは Apache Web サーバーに関して、ステータスを確認したり、再起動したり、ドキュメント・ルートの構成をしたりできる他、Apache からの更新も確認することができます。
図 1. Aptana Studio からの Apache の管理
Aptana Cloud に配置されたアプリケーションが利用するデータベース・エンジンは、最もよく使用されているオープンソースのMySQL です。そして E メール・サーバー・ソフトウェアには、オープンソースの Postfix を利用します。以下を見るとわかるように、Aptana はこの 2 つのサービスに対して同様のグラフィカル・ツールを提供します。
図 2. Aptana Studio からの MySQL および Postifx の管理
データ駆動型の Web アプリケーションを管理する場合、大抵はデータベースの管理が作業の大きな部分を占めます。Aptana のプラットフォームで実行されるアプリケーションには、データベースを管理する手段がいくつか提供されます。その 1 つは、Aptana Cloud にデプロイされたアプリケーションに自動的にインストールされる人気の高いオープンソースの Web アプリケーション、phpMyAdmin です。phpMyAdmin では、データに対するクエリーの実行や、ユーザーとその特権の管理、テーブルまたはビューの作成、CSV や Microsoft® Excel® スプレッドシートへのデータのエクスポート、データのバックアップなどといった多くの共通タスクを実行することができます。また、クエリー数と更新数、そして処理速度の遅いクエリーやロールバックなどから、データベース・サーバーの正常性を判断することもできます。図 3 に、phpMyAdmin からアクセスできるデータの一部を示します。
図 3. phpMyAdmin の使用
もちろん、MySQL の管理に使用できるツールは phpMyAdmin だけではありません。Aptana にはオープンソースの Web ベース・ツール、SQL Buddy も組み込まれています。SQL Buddy は Aptana Studio から直接起動できるので、Aptana Studio から直接データにアクセスするには、このツールが役立つはずです。幸い、Aptana Studio は Eclipse プラットフォームをベースに構築されているため、Eclipse をベースとした多数のオープンソース・ツールを利用することができます。これにはデータベースにアクセスするためのツールも含まれ、例えば Aptana Studio からデータベースおよびスキーマを直接ブラウズすることができます。
図 4. Aptana データベース・エクスプローラー
Aptana Studio のデータベース・エクスプローラーを使えば、Aptana Studio に直接 SQL クエリーを入力して結果を表示することができます。
図 5. Aptana Studio からのデータに対するクエリー
物理ハードウェアの管理も管理作業の一部ですが、クラウド・プラットフォームで実行されるアプリケーションを管理するとなるとハードウェアの管理も勝手が違ってきます。Aptana はその点も容易にします。メモリーとディスクの割り当ては (したがって、クラウドの使用コストも)、オンデマンドで変更することができます。
図 6. クラウド・リソースの割り当ての管理
管理者にとってはサイトのバックアップも重要な考慮事項です。Aptana Cloud アプリケーションの場合、サイトをバックアップするのは非常に簡単です。すべてがオープンソース技術をベースに作成されているため、これらの技術 (OpenSolaris と MySQL) が提供する各種のバックアップ機能を使えばよいだけのことです。Aptana Studio では、ワンクリックでバックアップを作成することができます。
図 7. Aptana によるバックアップの作成
バックアップ・ディレクトリーには、Aptana Studio から直接アクセスすることができます。実際、Aptana Studio からはクラウドのファイル・システム全体へのアクセスが可能です。
図 8. バックアップの確認
この例は単なる Eclipse に対する (リモート) ファイル・システムなので、ファイルをドラッグ・アンド・ドロップしたり、ファイルを削除したりするなどの操作を実行することができます。コマンドライン・インターフェースがどうしても必要だという場合でも、Aptana では簡単なことです。Aptana から、SSH セッションを直接起動できるのです。
図 9. Aptana からの SSH の起動
SSH セッションに接続した後は、Aptana Cloud インスタンスへのコマンドライン・アクセスが完全に可能になります。知っている限りの、そして使い慣れた UNIX® ツールはすべて使用することができます。SSH は、Aptana に用意された、そのまま使用できる数あるアクセス方法の 1 つにすぎません。以下の図に、すべてのアクセス方法がまとめて示されています。
図 10. アクセス方法
図 10 には SSH と Secure FTP アクセスが示されています。他に使用したいお気に入りのツールがある人のために、データベース接続情報も記載されています。ソース管理用の Subversion と Git に関する情報も示されています。SSH セッション中には、ルート・アクセスも可能であることに注目してください。
次のセクションではアプリケーションの管理に欠かせないもう 1 つの重要な部分、監視について調べます。
クラウドの監視
製品のライフサイクルには、アプリケーションの監視が欠かせません。これは「アプリケーションが動作しているかどうか」を調べるだけの話ではなく、監視によって、発生する可能性のある問題を予測し、ビジネスに影響を及ぼす前にその問題に対処するという意味も含まれます。つまり、ユーザーがアプリケーションをどのように操作し、アプリケーションは実際の操作に対してどのような振る舞いをするのかを理解するということでもあります。監視という分野でも当然のことながら、オープンソースのソフトウェアが大きな役割を果たします。そしてこれは、Aptana Cloud の場合は特に顕著です。
Aptana Studio をロードするとすぐに、アプリケーションの全体的な正常性を示すダッシュボードが表示されます。図 11 にその一例を示します。
図 11. Aptana サーバー・ダッシュボード
ダッシュボードには常に、CPU、RAM、スワップ、およびディスクの現在の使用率または使用量が示されます。この情報は、アプリケーションに構成されている割り当て量に対する相対値として表示されるため (図 6 を参照)、リソースの割り当てを増やす必要があるのか、減らす必要があるのかを一目で判断することができます。もちろん表示されるのは現在の使用状況だけですが、長期間にわたるデータを調べたいという場合もあります。上記の例でダッシュボードが示しているのは、過去 1 時間の CPU 使用率を示しています。
図 11 に示されているように、過去 1 時間の CPU 使用率の他にも、測定期間を選択してメモリー、スワップ、ディスクの使用量のグラフを表示できるだけでなく、これらのグラフにもっと詳細な情報を表示することもできます。
図 12. 詳細なサイト統計
詳細な統計の内容は、ダッシュボードに表示される内容と同様です。また、アプリケーションへのアクセス回数、使用帯域幅の量など、他の統計を表示することもできます。図 13 に一例を示します。
図 13. Web 統計
上記の図には、過去 7 日間にアクセスしたユーザー数が示されています。この統計はシステム管理者にとってはそれほど重要な情報ではないかもしれませんが、ビジネス・アナリストにとっては価値のある情報になるはずです。例えば、新しいマーケティング・プロモーションを開始した場合、この統計から、そのプロモーションによって獲得した新しいユーザー数を知ることができます。これは、Aptana Cloud プラットフォームですぐに利用できる一般的な使用ケースの単純な例に過ぎません。
Aptana がこれらのわかりやすいグラフを正確にはどのように生成しているのかを知りたいという読者もいることでしょう。Aptana はすべての統計を MySQL に保存します。UNIX スタイルのシステムでは、top などの単純なコマンドライン・ツールを使えば簡単にリソース使用量を取得することができます。Web 統計についても、Apache のログを調べることで簡単に収集することができます。Aptana は、これらのオープンソースの「フック」を単純に利用しただけです。この他に、さらに詳細な情報を提供できる人気のオープンソース・ツールがあります。例えば図 13 の Advanced Web Stats をクリックすると、詳細な統計が表示されます。
図 14. 詳細な Web 統計
上記のインターフェースは、すべての Aptana Cloud アプリケーションに自動的に組み込まれる Web アプリケーションです。このインターフェースが使用しているのは、オープンソースの AWStats ログ・ファイル・アナライザーをベースに作成された、同じくオープンソースの高度なユーザー・インターフェース、JAWStats アプリケーションです。このインターフェースが提供する多数の興味深いグラフのうち、いくつかを以下に紹介します。
図 15. トップ・ページ・ビュー
図 15 は、サイトで最もアクセス数の多いページについての分析結果を示しています。ここから、サイトでユーザーがどのような行動をしているのかを理解することができます。
図 16. ブラウザー統計
図 16 は、サイトへのアクセスに使用されたブラウザーの統計を示しています。あらゆる Web アプリケーションにとって必要となる情報は、ユーザーが使用しているブラウザーの種類です。これは、大量の JavaScript と CSS を使用する高度なアプリケーションには特に重要な情報となります。確実にアプリケーションがユーザーにとって最適となるようにするためには、テスト対象とする最も重要なブラウザーの種類を知らなければなりません。次のグラフも同じく興味深いもので、このグラフには Web スパイダーによるトラフィックが示されます。
図 17. Web スパイダー
Web スパイダーは一般に、Google や Yahoo! などの検索エンジンから実行される検索ロボットです。検索エンジンの最適化は Web アプリケーションにとって欠かせないことから、Aptana Cloud では JAWStats のような実績のあるオープンソース・ソフトウェアを自動的に組み込むことによってユーザーを支援しています。
以上で紹介したツールはすべて、ログ・ファイルを収集できるようになっています。アクセスする必要のあるツールが他にもある場合、または (問題をデバッグする目的などで) ログを表示する必要がある場合にも、Aptana で対処することができます。Aptana Studio には、ログ全体を表示したり、最新のログだけを見たりすることができるショートカットが用意されています。
図 18. ログへのアクセス
上記を見るとわかるように、本番 (公開) サイト、非公開サイト (phpMyAdmin や JAWStats などのツールすべてをホストするサイト)、およびステージング・サイトについての Apache によるアクセス・ログおよびエラー・ログに、簡単にアクセスできるようになっています。これらのログはすべて、Aptana Studio 内で直接追跡することができます。
図 19. ログの追跡
あなたの会社のビジネス・アナリストは、JAWStats によって作成された見やすいグラフの方を選ぶかもしれませんが、追跡機能が組み込まれていると、開発者が本番環境でのバグ対応の優先順位を決める際に非常に役立ちます。しかしインターフェースがどんなに優れていても、一日中ログ・ファイルやグラフを監視したいという人は誰もいません。では、問題が発生した場合にはどうすればよいのでしょうか。長時間実行しているクエリーデータベースが停止したり、サイトのトラフィックが突然急増するといった事態も考えられます。対処すべき共通の問題はありますが、極めて重要なことは、問題にすぐに対処することです。
例えば、トラフィックが急激に増加した場合、その急増を解消する最も確実な方法はサイトを停止することですが、問題のアラートを即時に受けることができれば、トラフィックに対応するために割り当てられたリソースを簡単に増やし、新しいユーザーのすべてに優れたエクスペリエンスを提供し続けることができます。そのために、Aptana Cloud プラットフォームには自由にカスタマイズできるアラートが組み込まれています。
図 20. Aptana のアラート
このインターフェースには、Aptana Cloud で実行されているサイトすべてに使用可能なアラート・タイプの概要が示されます。これらのアラートは、以下のカテゴリーに分けられています。
- Membership (メンバーシップ) — 管理者権限を持つ人によるサイトへのアクセスに関するアラート
- Site (サイト) — サイトのライフサイクルに関するアラート
- Services (サービス) — Apache、MySQL、Postfix に関するアラート
- Usage (使用状況) — RAM や CPU などのリソースに関するアラート
- Backups (バックアップ)
それぞれのカテゴリーをドリルダウンすると、個々のアラートを構成することができます。
図 21. サイトに関するアラート
図 21 には、使用可能な Site アラートのタイプが示されています。このうち特に重要なアラートは、リストの一番下にある 2 つです。
- Site Unresponsive (応答のないサイト) — サイトがユーザーからのリクエストに応答していない場合に起動されるアラート
- Site Responsive (応答のあるサイト) — サイトが正常に応答していると生成されるアラート
図 21 に示されているアラートは、E メールにのみ送信されます。これらのアラートは、サイトのカスタム RSS に送信することもできます。最近のスマートフォンでは RSS と E メールを使って瞬時にユーザーに通知できるため、カスタム RSS へのアラート送信は、サイトへの接続を維持するのに最適な方法です。図 22 に、今度はリソースの使用状況に対するアラートを示します。
図 22. リソースに関するアラート
一般にリソース関連のアラートは、CPU サイクル、メモリー、スワップ、ディスク・スペースといった基本リソースが 1 つでも不足してくると起動されます。これらのリソースのいずれかが不足していることを示すアラートを受け取った場合には、簡単に割り当てを調整し直すことができます (図 6)。クラウド・コンピューティングの威力を利用して、どんな状況下でもサイトを稼働し続けてください。
まとめ
Web アプリケーションの管理と運用はただでさえ難しいのに、Web アプリケーションがクラウド・コンピューティング・プラットフォームにデプロイされるとなると、さらに困難を極めるだろうと思うかもしれません。しかしオープンソースのツールと技術によって、クラウド・アプリケーションの管理に伴う複雑さは大幅に軽減することができます。この記事で説明したように、Aptana Cloud プラットフォームではデプロイ済みアプリケーションの管理を容易にするために多くのオープンソース技術を使用しています。このことから、クラウド・コンピューティング・プラットフォームを選択する際には Aptana が強力な候補になるはずです。
別のプラットフォームを選ぶとしても、クラウド・アプリケーションの管理には、ここで説明した技術の多くを利用することができます。適切なプラットフォームを選択することで、システム管理者や開発者からビジネス・アナリストや製品マネージャーに至るまで、組織全体の人々にとって大きな違いがもたらされます。Aptana で使用している最高のオープンソース技術の多くについての知識は、この記事を読んで身についたはずです。これらの技術をさらに深く調べるには、「参考文献」を参照してください。
参考文献 学ぶために
製品や技術を入手するために
議論するために
著者について  | |  | Michael Galpin は 1998年からプロとして Java ソフトウェアを開発しています。彼は現在、カリフォルニア州 Mountain View にある新興企業、Ludi Labs に勤務しています。California Institute of Technology で数学の学位を取得しました。 |
記事の評価
|