Webベースアプリのパフォーマンス&セキュリティ最適化まとめ:方法とベンダー
Webベースのアプリケーションをイントラネット外で運用する場合、何に注意して何をすべきなのか。監視から対策までをあらためてまとめた。
ユーザー企業自身が外部のユーザーに対してアプリケーションを提供する手段として、Webベースのソフトウェアを用いることが多い。ここでいう外部のユーザーとは、コンシューマー、顧客、パートナー企業のユーザー、社外からリモートでアクセスする自社従業員などを指す。
ただし、ここで特に断っておきたいことが2点ある。まず1点は、アプリケーションの動作に問題がなく、アプリケーションの稼働率がほぼ100%と、非常に高い必要があること。もう1点は、外部に公開されたアプリケーションはセキュリティリスクとなり、攻撃に対する脆弱性を抱えてしまうことだ。ソフトウェアの脆弱性を突いて社内のITインフラに侵入する手段ともなり得る。もう1つの可能性としては、アプリケーション自身を停止させてシステムの円滑な運用を妨げることもある。これがアプリケーションレベルのDoS攻撃といわれるものだ。こうして企業システムの機能が制限されて、業務の続行に支障をきたし、その結果、企業全体の信用に傷がつく。
では、オンラインアプリケーションのパフォーマンスとセキュリティをどのようにして確保するのか。
オンラインアプリケーションのパフォーマンス監視
ここで、実現しなければならないことが2つある。まずは、パフォーマンスの測定方法を確立しなければならない。次に、パフォーマンスを確保し、向上させるテクノロジーを評価し、これに投資する必要もある。
アプリケーションを実際に運用する前に、別環境で事前にパフォーマンスのテストを実施することには問題がある。開発環境やテスト環境は多くの場合、実稼働環境とは切り離されている。さらに、公開前のテストは、ユーザーのワークロードはシミュレーションで実現して、一元管理されたインフラ上で実行する。これに対してユーザーが実際に依存する実稼働環境のネットワーク接続では、モバイル端末からの接続が増えていることもあり、テストの実施はますます困難になっている。
パブリッククラウドを利用すると、たとえアプリケーションの最終的な導入先が社内プラットフォームの場合であっても、実稼働環境をシミュレーションで再現できるので役に立つ。これが利用できれば、社内のテスト用インフラストラクチャに対する過剰投資が防げる。
従って、事前テストの結果が全て順調であっても、結局はアプリケーションの導入後にユーザーエクスペリエンスをリアルタイムで監視する必要がある。これは単に、アプリケーションの導入前に全てのシナリオをテストするのは不可能だからということだけではない。特に共用のネットワークを経由する場合は、ユーザーからの要求やその他の問題が発生して、アプリケーションに掛かる負荷が予想以上に変化することがあるからだ。ユーザーエクスペリエンスの監視は、ヨーロッパ専門の調査会社英Quocircaが2010年に発表したリポートのテーマでありタイトルにもなっている。そのリポートの指摘の多くは現在でも有効だ。ただし、リポート発表当時から変化した点の中で最も顕著なものは、モバイル端末のユーザーが爆発的に増加していることだ。
アプリケーション本体と、そのアプリケーションがネットワークに与える影響をエンドツーエンドにカバーしてユーザーエクスペリエンスを監視するツールの例としては、米CAのApplication Performance Management、米Fluke NetworksのVisual Performance Manager、米CompuwareのAPM、Amazon Web Services(AWS)に特化した米ExtraHop Networksのサポートなどが挙げられる。
オンラインアプリケーションのパフォーマンス改善
ツールによってパフォーマンスの監視体制が整い、評価基準も定まったことはよしとしよう。では、期待したほどのパフォーマンスが得られなかった場合、どのように対処すればいいのか。
ここで、解決方法は2種類ある。1つ目は、全体的な負荷をサポートするために、アプリケーションのインスタンスとサポート対象のインフラの数を増やす方法だ。もう1つは、インスタンス間で負荷を分散させる方法である。
利用可能なリソースの拡大は、社内インフラの仮想化と外部のIaaS(Infrastructure as a Service)の利用によって、以前よりもずっと容易になった。多くの場合、アプリケーションの導入は今や全て共有のIaaSプラットフォーム上で実行される。そこで、特定のアプリケーションによってリソースの消費が増大する事態が、クラウド上へそのまま拡張される。
現在グローバルなクラウドサービスプロバイダーといえるのは、米AWS、米Rackspace、米Savvis、南アフリカのDimension Data、 米Microsoftの5社だ。英国内にもAttenda、Nui Solutions、Claranet、Pulsantなど、クラウドプラットフォームも提供しているITサービスプロバイダー(ITSP)が数多く存在する。そんなITSPの中には、1社または複数のグローバルなプロバイダーと提携して、自社の顧客がそのITSPを経由してさまざまなリソースにアクセスするための手段を確保している企業もある。
社内に配備しているオンプレミスのシステムで基幹業務を運用することを選択した企業にとっても、「クラウド拡張」を利用することの効果はある。需要の急増に対応して社内リソースを補完するために、アプリケーションのワークロードをクラウドへ移行するのはその一例だ。Quocircaが最近発表した「In demand: the culture of online services provision」(需要急増中:文化となりつつあるオンラインサービスの提供)と題した調査リポートによると、アプリケーションをオンデマンドで外部ユーザーに提供している企業は、そのサービスを実施していない企業に比べて、クラウド拡張の効果を認めている割合がかなり高い。
問題への対処として、パフォーマンスの測定が可能になり、仮想化によってリソースへのアクセスが無制限になったことで、一定の区切りが付けられた。ところで、リソース間の負荷分散はどのようにすればよいのか。これを実現するためのカギとなるテクノロジーが、アプリケーションデリバリーコントローラー(ADC)だ。
ADCは基本的に次世代のロードバランサーで、高度なアプリケーションとネットワークプラットフォームの基礎となる。ADCは、需要の増加や減少に合わせてリソースを柔軟に拡大したり縮小したりすることができる。また、サーバから負荷を自律的にオフロードする。
ADCの分野で最もよく知られていたのは米Ciscoだ。ただしCiscoは最近、Application Control Engine(ACE)の開発を打ち切ると発表し、他の有力企業の製品に切り替えることを推奨している。推奨されているのは、米CitrixのNetScalerだ。この他、ADCを発売している企業として、ADCに特化した最大の専門企業である米F5 Networksがあり、さらには米Riverbed、米Barracuda Networks、米A10 Networks、米Array Networks、米Kemp Technologiesなどがある。
こうして、パフォーマンスを測定する基準を確立した。需要に対応できるリソースもある。ワークロードの負荷を分散させたり負荷をオフロードしたりする手段として、ADCがある。ではセキュリティについてはどうだろうか。
オンラインアプリケーションのセキュリティ
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
関連記事
Webサイトのクラウド移行時に絶対変えるべき3つのセキュリティ対策
「オンラインショップはセキュリティホールまみれ」と研究者が警告
Facebookがモバイルアプリ用JavaScriptエンジン「Hermes」を公開
Copyright © ITmedia, Inc. All Rights Reserved.