クラウドの負荷分散機能が鍵
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
-
製品資料
SNS認証や多要素認証も数分で実装、IDaaS基盤でデジタルビジネスはどう変わる? -
製品レビュー
「電子帳簿保存法対応」実践術:タイムスタンプ付与などの要件の手軽な実現方法 -
事例
「大企業のデジタル化」成功事例集【コクヨ、九州電力、ヨネックスなど21社】 -
製品資料
“顧客管理の課題”を簡単に解決する方法とは? -
製品資料
契約管理の“あるある課題”をノーコード開発で解決するためのポイント
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
2
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
3
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
4
Synologyがエンタープライズ向けユニファイドストレージを投入 その実力は
-
5
「Windows派」「Linux派」を分ける決定的な違い
-
6
脱VMwareの最適解 NTTデータと日立製作所が示す国産仮想化基盤
-
7
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
8
「技術屋」で終わらないために 情シスが今取るべき認定資格5選
-
9
継続利用は4割どまり M365 Copilotが「効く業務」と期待外れの境界
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
7
PostgreSQLの「機能」「性能」「運用」「拡張性」に関する悩みの解消法
-
8
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
9
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー