クラウドの負荷分散機能が鍵
AWS、MS、Google、クラウドビッグ3が提供するサーバレス機能のスケーラビリティとは
多くのIT部門にとってスケーラビリティの実現は大きな目標だ。サーバレスアプリケーションは、この目標実現の一助となる。ただし、そのためには負荷分散など対処しなければならない課題が存在する。
サーバレスアプリケーションは、クラウドで注目を集めるトピックの1つだ。その理由は、ビジネスの状況が変化しても、サーバレスアプリケーションが負荷に応じたスケーラビリティを備えていることにある。ただし、スケーラビリティを確保するには、クラウドチームがサーバレスアプリケーションを適切に設計、開発、導入することが条件となる。
一般的なアプリケーションは、必要に応じて処理リソースを要求できれば拡張できる。また、スケーラブルなアプリケーションは、負荷が高くなったときに増やせるコンポーネントで構成されていなければならない。つまりクラウドチームは、オンデマンドでアプリケーションの追加インスタンスを作成し、負荷が低下したら追加のインスタンスを破棄できる。
サーバレスアプリケーションのスケーラビリティに関する問題
サーバレスアプリケーションのスケーラビリティに関する課題の1つ目は、ソフトウェアに起因する。ATM(現金自動預払機)での引き出しを担うアプリケーションにスケーラビリティを持たせるとしよう。まず、増加した負荷をサポートするためにアプリケーションのコピーを作成する。だがそのコピーは、どのようにしてATMからの引き出し処理に結び付くだろうか。この場合に利用するのは、大手クラウドベンダーがサービスとして提供しているような負荷分散機能だ。ぜひ、このサービスを活用してほしい。
2つ目の問題はもっと複雑だ。増加した負荷に対処するためにアプリケーションのコピーを作成した場合、ユーザーが一方のアプリケーションで開始したATMの操作を途中でもう一方のアプリケーションに切り替えたらどうなるだろう。実社会で行われる取引の大半にはコンテキスト(状態)がある。つまり、取引を行うには幾つかの手順を踏まなければならない。残念ながら、このようなコンテキストに依存するアプリケーションにスケーラビリティを持たせることはできない。というのも、一方のアプリケーションのコピーは、もう一方のコピーでこれまでに行われた操作を把握していないためだ。
大半のビジネスアプリケーションは、このようなコンテキストを持っている。スケーラブルなサーバレスアプリケーションを作成するには、モノリシックなアプリケーションの全機能を集約しなければならない。モノリシックなアプリケーションとは、ステートフルではない状態で記述可能か、状態やコンテキストを外部から取得できるアプリケーションのことをいう。
3大大手クラウドベンダーのAmazon Web Services、Microsoft、Googleが提供するクラウドサービスでは、完全にスケーラブルなステートレスまたはコンテキストを持たないソフトウェアを作成するサンプルを提供している。そのアプローチは次の3つだ。
3大クラウドベンダーが提供するスケーラビリティに関する3つのアプローチ
1.関数またはLambdaプログラミング手法を使用してスケーラブルなコンポーネントを作成する。このアプローチでは、非常にスケーラビリティの高いアプリケーションを作成できる。だが、プログラミングの慣例を大きく変えなければならない可能性がある
2.「Apache ZooKeeper」や「Apache Curator」など、アプリケーションの分散コピーを管理できるツールキットを使用してアプリケーションプログラムを作成する
3.データベースから状態を取得するか、ユーザーが状態を渡すアプリケーションコンポーネントを作成する
どれも問題なく機能するが、最も簡単なのは2つ目のアプローチだ。ただし、スケーラブルなアプリケーションコンポーネントがあれば全ての問題が解決するわけではない。上述のATMアプリケーションの例では、どの時点においても口座の残高データは1つであることが重要だ。つまり口座の残高データは、1つの場所で更新されるか、更新内容が同期できる場所に保存されている必要がある。サーバレスアプリケーションを作成する際には、分散型トランザクション処理のベストプラクティスを適用されたい。
スケーラビリティを確保する導入上のヒント
上述の通り、サーバレスアプリケーションにとって負荷分散機能は重要である。負荷分散機能はサーバレスアプリケーションの開発と導入の両方に影響する。同じアプリケーションのコンポーネントのコピーが複数ある場合、管理者は、どのようにして適切なコピーにトラフィックをルーティングできるのだろう。負荷分散機能を備えたサーバレスコンポーネントを作成することは可能だ。また、市場にはソフトウェアベースのロードバランサーも出回っている。ただし、このようなコンポーネントは高負荷になり、単一障害点になり得る。クラウドベンダーは分散型の負荷分散機能を提供している。サーバレスアプリケーションのスケーラビリティ戦略の最適化には、この機能を使うことをお勧めする。
開発に関しては、管理者がスケーラビリティのプロセスを制御する必要がある。例えばクラウドベンダーは使用量に基づいてサーバレスアプリケーションの課金を行うため、スケーラビリティについては厳しい制限を設けることが重要だ。アプリケーションのコピーに上限を設定し、ユーザーがアプリケーションの新しいコピーを生成できる条件も制限されたい。需要が低下したらサーバレスアプリケーションを縮小することもお忘れなく。
際限のないコスト上昇を避けるためには、コストの監視も重要だ。クラウドベンダーはサーバレスコンピューティングの請求明細を提供している。この明細はスケーラビリティの制御が機能しているかどうかの評価に使用できる。クラウドベンダーから直接、またはコスト分析アプリケーションを使って、サーバレスアプリケーションの使用状況に関するデータを入手することをお勧めする。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
「Microsoft 365のセキュリティ運用」に関するアンケート
-
3
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
8
「データストレージの活用方法」に関するアンケート
-
9
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー