2017年09月25日 09時00分 公開
特集/連載

クラウドの負荷分散機能が鍵AWS、MS、Google、クラウドビッグ3が提供するサーバレス機能のスケーラビリティとは

多くのIT部門にとってスケーラビリティの実現は大きな目標だ。サーバレスアプリケーションは、この目標実現の一助となる。ただし、そのためには負荷分散など対処しなければならない課題が存在する。

[Tom Nolle,ITmedia]

 サーバレスアプリケーションは、クラウドで注目を集めるトピックの1つだ。その理由は、ビジネスの状況が変化しても、サーバレスアプリケーションが負荷に応じたスケーラビリティを備えていることにある。ただし、スケーラビリティを確保するには、クラウドチームがサーバレスアプリケーションを適切に設計、開発、導入することが条件となる。

 一般的なアプリケーションは、必要に応じて処理リソースを要求できれば拡張できる。また、スケーラブルなアプリケーションは、負荷が高くなったときに増やせるコンポーネントで構成されていなければならない。つまりクラウドチームは、オンデマンドでアプリケーションの追加インスタンスを作成し、負荷が低下したら追加のインスタンスを破棄できる。

サーバレスアプリケーションのスケーラビリティに関する問題

 サーバレスアプリケーションのスケーラビリティに関する課題の1つ目は、ソフトウェアに起因する。ATM(現金自動預払機)での引き出しを担うアプリケーションにスケーラビリティを持たせるとしよう。まず、増加した負荷をサポートするためにアプリケーションのコピーを作成する。だがそのコピーは、どのようにしてATMからの引き出し処理に結び付くだろうか。この場合に利用するのは、大手クラウドベンダーがサービスとして提供しているような負荷分散機能だ。ぜひ、このサービスを活用してほしい。

 2つ目の問題はもっと複雑だ。増加した負荷に対処するためにアプリケーションのコピーを作成した場合、ユーザーが一方のアプリケーションで開始したATMの操作を途中でもう一方のアプリケーションに切り替えたらどうなるだろう。実社会で行われる取引の大半にはコンテキスト(状態)がある。つまり、取引を行うには幾つかの手順を踏まなければならない。残念ながら、このようなコンテキストに依存するアプリケーションにスケーラビリティを持たせることはできない。というのも、一方のアプリケーションのコピーは、もう一方のコピーでこれまでに行われた操作を把握していないためだ。

 大半のビジネスアプリケーションは、このようなコンテキストを持っている。スケーラブルなサーバレスアプリケーションを作成するには、モノリシックなアプリケーションの全機能を集約しなければならない。モノリシックなアプリケーションとは、ステートフルではない状態で記述可能か、状態やコンテキストを外部から取得できるアプリケーションのことをいう。

 3大大手クラウドベンダーのAmazon Web Services、Microsoft、Googleが提供するクラウドサービスでは、完全にスケーラブルなステートレスまたはコンテキストを持たないソフトウェアを作成するサンプルを提供している。そのアプローチは次の3つだ。

注目テーマ

ITmedia マーケティング新着記事

news017.jpg

RPAを活用したWebサイト運用の生産性向上サービス、メンバーズが提供開始
メンバーズは、RPAなどを活用してWebサイトの運用コストを最大50%削減する「生産性向上...

news059.jpg

「スマホなしで外出するよりも公共の場で服を着ない方がまし」が4分の1――カスペルスキー調べ
世界15カ国1万人超を対象にした意識調査で浮かび上がったインターネットユーザーの本音と...

news012.jpg

Criteo CEOが語る「フルファネル」「AI」「日本市場」
パフォーマンスマーケティング企業としてEC事業者を中心に支持されるCriteo。CEOに復帰し...