検索
特集/連載

「オンプレミス回帰」を決断する前に見直すべきアプリケーションの設計とはオンプレミス回帰の前に考えること【後編】

クラウドサービスのコストに悩む企業は珍しくないが、アプリケーション設計の工夫次第でコスト削減が可能だ。特にフロントエンドの設計は重要である一方、開発者や企業が陥りがちな落とし穴もある。

Share
Tweet
LINE
Hatena

 クラウドサービスのコストが高いことを理由に、アプリケーションやデータをオンプレミスインフラに戻す「オンプレミス回帰」を選択する企業がある。

 クラウドサービスのコストが高くなる要因の一つとして、クラウドサービスで運用しているアプリケーションの設計が適切でないことが考えられる。特にエンドユーザーが直接操作するフロントエンドの部分は重要だ。どのように設計すればいいのか。企業や開発者が陥りやすい落とし穴も解説する。

クラウドアプリケーション設計で陥りがちな“落とし穴”とは

 開発者は通常、アプリケーションの設計時に、エンドユーザーが操作するフロントエンドと、データベースへのアクセスなどの内部処理を担当するバックエンドを分離する。

 例えば、買い物アプリケーションでは、エンドユーザーがGUI(グラフィカルユーザーインタフェース)を操作して商品を注文する際、その裏側ではデータベースから情報を取得したり、データを書き込んだりするトランザクション(不可分な一連の処理)が発生する。前者がフロントエンド、後者がバックエンドだ。

 企業はこれらトランザクションによるバックエンドの負荷を、自社製品のセールなどの商業的需要に基づいて予測可能だ。しかし、フロントエンドの負荷は変動幅が比較的大きく、予測が難しい。このため、フロントエンドのシステムはクラウドサービスでの開発や運用が適している。ただし、企業はデータ主権(データの制御や管理に関する権利)や法規制に配慮し、フロントエンドとバックエンド間で扱うデータの種類とシステムの境界を明確にする必要がある。

フロントエンド設計の落とし穴を避ける

 フロントエンド設計でよくある失敗は、クラウドサービスでホストするUI(ユーザーインタフェース)のコンポーネントが、オンプレミスデータセンターに保存されたデータを大量に参照する構造にしてしまうことだ。

 先述の買い物アプリケーションを例に取れば、エンドユーザーは1つの商品を購入する前に何十個もの商品情報を見るかもしれない。もしアプリケーションが全ての商品データをデータセンターから引き出すなら、クラウドサービスが請求する通信コストは増大する。商品の説明や価格情報など、重要度の低いデータをクラウドサービスに移動して保存することを検討すべきだ。これにより、商品に関する全てのデータをオンプレミスデータセンターに保存する場合と比べてコストを削減できる。アプリケーションの応答スピードも向上する。

ワークフローの可視化

 クラウドサービスとデータセンターの役割分担を最適化するにはアプリケーション全体のワークフローを可視化し、各ワークフローの負荷を分析する必要がある。各ワークフローに掛かる負荷を確認して、負荷の最小時と最大時を比較した変動量を見極めることが重要だ。

 負荷の変動幅が小さいワークフローはオンプレミスインフラでホストする方が効率的である可能性がある。一方、負荷の変動幅が大きいワークフローは、拡張性に優れるクラウドサービスが適している。

 もう一つの重要なポイントは、アプリケーションが不要なデータをやりとりしないように設計することだ。例えば、買い物アプリケーションでエンドユーザーに商品名や価格のみを表示する場合、商品の詳細な仕様や在庫数などの余分なデータを取得する必要はない。

 不要なデータを参照して転送するたびにコストがかかる。必要な情報だけを抜き出して取得することで、ネットワークの負荷を減らしコストを削減できる。必要なデータだけを参照する設計は、機密情報を扱う場合に特に重要だ。

 フロントエンドとバックエンドの双方からアプリケーションを再設計することは容易ではないが、適切な設計で不要なデータ転送を排除できれば、クラウドサービスのコスト削減につながる。そうすれば、企業がアプリケーション全体をオンプレミスに回帰する必要性も低下する。可視化と再設計は、クラウドサービスの利用効率を最大化しながら、コスト管理を徹底するための重要な戦略だ。

TechTarget発 世界のインサイト&ベストプラクティス

米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る