AWS、MS、Google、クラウドビッグ3が提供するサーバレス機能のスケーラビリティとは:クラウドの負荷分散機能が鍵
多くのIT部門にとってスケーラビリティの実現は大きな目標だ。サーバレスアプリケーションは、この目標実現の一助となる。ただし、そのためには負荷分散など対処しなければならない課題が存在する。
サーバレスアプリケーションは、クラウドで注目を集めるトピックの1つだ。その理由は、ビジネスの状況が変化しても、サーバレスアプリケーションが負荷に応じたスケーラビリティを備えていることにある。ただし、スケーラビリティを確保するには、クラウドチームがサーバレスアプリケーションを適切に設計、開発、導入することが条件となる。
一般的なアプリケーションは、必要に応じて処理リソースを要求できれば拡張できる。また、スケーラブルなアプリケーションは、負荷が高くなったときに増やせるコンポーネントで構成されていなければならない。つまりクラウドチームは、オンデマンドでアプリケーションの追加インスタンスを作成し、負荷が低下したら追加のインスタンスを破棄できる。
併せて読みたいお薦めの記事
サーバレスのサービス比較
サーバレスを適用するポイント
- サーバレス vs. PaaS アプリ開発プラットフォームを比較する
- 「サーバレス」に“向く作業”と“向かない作業”の見分け方
- 「サーバレス」でクラウド運用チームの仕事はどう変わるのか
- IaaS、PaaSとはどう違う? 「サーバレスコンピューティング」の特徴とは
サーバレスを活用した事例
サーバレスアプリケーションのスケーラビリティに関する問題
サーバレスアプリケーションのスケーラビリティに関する課題の1つ目は、ソフトウェアに起因する。ATM(現金自動預払機)での引き出しを担うアプリケーションにスケーラビリティを持たせるとしよう。まず、増加した負荷をサポートするためにアプリケーションのコピーを作成する。だがそのコピーは、どのようにしてATMからの引き出し処理に結び付くだろうか。この場合に利用するのは、大手クラウドベンダーがサービスとして提供しているような負荷分散機能だ。ぜひ、このサービスを活用してほしい。
2つ目の問題はもっと複雑だ。増加した負荷に対処するためにアプリケーションのコピーを作成した場合、ユーザーが一方のアプリケーションで開始したATMの操作を途中でもう一方のアプリケーションに切り替えたらどうなるだろう。実社会で行われる取引の大半にはコンテキスト(状態)がある。つまり、取引を行うには幾つかの手順を踏まなければならない。残念ながら、このようなコンテキストに依存するアプリケーションにスケーラビリティを持たせることはできない。というのも、一方のアプリケーションのコピーは、もう一方のコピーでこれまでに行われた操作を把握していないためだ。
大半のビジネスアプリケーションは、このようなコンテキストを持っている。スケーラブルなサーバレスアプリケーションを作成するには、モノリシックなアプリケーションの全機能を集約しなければならない。モノリシックなアプリケーションとは、ステートフルではない状態で記述可能か、状態やコンテキストを外部から取得できるアプリケーションのことをいう。
3大大手クラウドベンダーのAmazon Web Services、Microsoft、Googleが提供するクラウドサービスでは、完全にスケーラブルなステートレスまたはコンテキストを持たないソフトウェアを作成するサンプルを提供している。そのアプローチは次の3つだ。
Copyright © ITmedia, Inc. All Rights Reserved.