クラウドの負荷分散機能が鍵
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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
技術文書・技術解説
[Jamf Japan 合同会社] MDMだけでモバイルセキュリティは十分? 不足する対策を16項目でチェック -
製品資料
[株式会社ウェーブスプリッタ・ジャパン] 100Gbps対応の光トランシーバーはどう選ぶ? 10分で分かる選定のポイント -
製品資料
[株式会社フィックスターズ] 組み込み開発の生産性と機密性を両立、自社環境で構築する「セキュアAI」活用術 -
製品レビュー
[ServiceNow Japan合同会社] 問い合わせの約9割を自動で解決、AI主導の自律型CRMがもたらす業務変革の全貌 -
市場調査・トレンド
[ServiceNow Japan合同会社] AI活用が業務自動化で止まる理由は何か? 調査で判明した課題と変革への道筋
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
AI全部入り「Microsoft 365 E7」に企業が二の足を踏む訳 移行意向はわずか4%
-
2
なぜOpenAIやAnthropicのAIは「脱走」したのか 情シスが迫られるエージェント統制
-
3
【基本情報技術者試験】「デュプレックスシステム」と「デュアルシステム」の違いは?
-
4
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
5
Anthropicが明かす AIは入力データを「どこまで覚えているのか」
-
6
GitHubが指摘 AIが書いた「おそらく動くコード」が招くシステム崩壊
-
7
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
8
「Microsoft一択」で本当にいいのか 知らぬ間にライセンス費用が膨らむ真相
-
9
ただなのに「12時間以内の復旧」も要求 無償OSSに商用レベルを求める企業の末路
-
10
「にゃんこ大戦争」がAWSを脱出した理由 無停止移行に潜む“わな”
ホワイトペーパーランキング PR
-
1
生成AIのハルシネーションを防止 回答精度を高めるセマンティックレイヤーとは
-
2
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
3
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
4
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
7
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
8
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
-
9
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
10
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー