クラウドの負荷分散機能が鍵
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
-
製品資料
[スパイスファクトリー株式会社] レガシーに消えるIT予算8割 「刷新か延命か」をAIと人で見極めるための手順 -
製品資料
[JetBrains s.r.o.] ソフトウェア開発は「コーディングエージェント」でどう変わるのか? -
事例
[テクバン株式会社] 太陽ホールディングスは国内外拠点の端末5000台をどう管理しているのか? -
事例
[株式会社キーエンス] PCが苦手でも自動化できる ポポラマーマなど4事例に学ぶ「ナビ搭載型RPA」活用 -
製品資料
[株式会社キーエンス] 自分ひとりでデスクワークを効率化 「AI&ナビ搭載RPA」で実践する業務自動化
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHPはそもそも必要か? 脆弱性で問われる自社サイト安全性と保守負担のバランス
-
2
Microsoft 365侵害企業の9割はMFA導入済み 1002人調査で見えた盲点
-
3
「Copilot」がIT予算を食いつぶす? 高額請求を招く課金体系と節約術
-
4
PHP2Shellの「事前の情報流出」でパニックに パッチ公開を巡る“混乱劇”
-
5
Microsoft 365導入後も稟議は「Excelをメールで回覧」 承認が止まる理由
-
6
米国防総省で300万人分の個人情報が流出 その「意外な原因」と教訓
-
7
京王電鉄・東京メトロの被害から学ぶ境界防衛 ITの侵害はどこまで波及するか
-
8
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
9
MS&ADグループの目指す「AX」の全貌 本山CDOが語る変革の本質
-
10
「データ活用とAI活用の実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
3
「IT史に名を残すシステム障害」8選
-
4
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
5
SCS評価制度時代の「SASE選定」ガイド
-
6
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
7
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
8
「EDR」選定ガイド:比較・検討フェーズで整理すべきポイントを解説
-
9
MDMだけでは防げない? Appleデバイスに潜む5つのセキュリティギャップ
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー