クラウドの負荷分散機能が鍵
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
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
3
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
肥大化した「SFA」の沼 4カ月でBigQuery×AppSheetの新システムを構築した方法
-
6
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
7
次世代RPA「ハイパーオートメーション」が急成長か Gartnerが予測
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
昭和大学病院がeICUを導入、ICUの患者情報を遠隔地で一括管理
-
10
「何から始めればいい?」 情報漏えい対策で悲鳴を上げる中小企業のリアル
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
4
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
5
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
6
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
“あのファイル転送”で暗躍するノーウェアランサム
-
10
「オンプレミス回帰」せざるを得ない“合理的な理由”
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー