適したアプリケーションは?
「サーバレスコンピューティング」活用法、パブリッククラウドのコスト削減効果とは
サーバレスコンピューティングはパブリッククラウドでアプリケーションを実行するコストを削減できる。ただしコスト削減をはじめとする各種のメリットを享受するには、適切なスキルセットが必要だ。
「サーバレスコンピューティング」によって、企業はクラウドアプリケーションをより細かい単位で設計し、導入できる。従来のモノリシックなアプリケーションとは異なり、サーバレスアプリケーションはワークロードを複数の関数に分割し、トリガーとなるイベントに呼び出された場合にのみ実行する。
名前に“サーバレス”とあるが、サーバレスコンピューティングはサーバが全く不要なわけではなく、関数をロードして実行するときにのみ使用する。こうしてリソースの使用を最小限に抑えることで、パブリッククラウドの利用料金を抑えようというわけだ。
主要なパブリッククラウド事業者は現在、何かしらの形でサーバレスコンピューティングを提供している。Amazon Web Services(AWS)の「AWS Lambda」、Microsoftの「Microsoft Azure Functions」、Googleの「Google Cloud Functions」などだ。本稿ではサーバレスコンピューティングとは何かを説明し、この最新技術を最大限に活用するための留意点を紹介する。
併せて読みたいお薦めの記事
サーバレスコンピューティングについて
「AWS Lambda」「Azure Functions」を比較
AWS Lambdaに関する記事
サーバレスコンピューティングに必要なスキル
サーバレスコンピューティングは、アプリケーションの設計と管理方法が従来とは根本的に異なる。そのため、この技術を最大限に活用するには、開発者にもクラウド管理者にも軌道修正が必要だ。
開発者にとって最大の違いは、アプリケーションの構造だ。従来型のモノリシックなアプリケーションは多くの場合、変数を介してデータをやりとりするルーチンに依存する。この方法を進化させたのがマイクロサービスだ。マイクロサービスはソフトウェアを小さな機能要素に分割した上で、機能要素を個別にスケーリングし、APIを介してデータをやりとりする。これをさらに極端にしたのがサーバレスコンピューティングだ。サーバレスコンピューティングはソフトウェアの機能を個別の関数に分割し、必要なときにだけ起動する。こうして核となるアプリケーションを小さくすることで、クラウドコンピューティングのインスタンスを小さくし、コストを抑えることが可能だ。
サーバレスコンピューティングの影響はクラウド管理者にも及ぶ。クラウド管理者は例えば、何十もの関数のアベイラビリティとパフォーマンスを監視しなければならない。各関数について、パフォーマンスを監視し、トラブルシューティングを実施し、利用状況とコストを追跡して、そうしたコストをアプリケーション全体のコストとして集計する必要がある。関数の分析と評価には、Azure Functionsの「モニター」タブなど、パブリッククラウド事業者が提供する監視機能を利用できる。
さらにクラウド管理者は、継続的な管理データを開発者と共有するためのメカニズムも構築しなければならない。こうすることで、サーバレスアプリケーションを継続的に改善し、パフォーマンスとコストの最適化を図ることができる。
サーバレスコンピューティングに適したアプリケーションとは
サーバレスコンピューティングが最も適しているのは、多くのリソースを必要とせず、依存関係が最小限で、実行に長時間を要さない、小さくてステートレスな関数だ。関数はできる限り素早く、始動、実行、終了する必要がある。実行に大量のリソースや長い時間を必要とするタスクは、従来型の仮想マシン(VM)やコンテナ導入の方が向いている。
関数は通常、リソースと同時処理数と導入規模に制限がある。クラウド事業者はインスタンスを迅速にスピンアップ(起動処理)し、関数のコードをロードして実行するためのリソースを提供する必要があるからだ。例えば、AWS Lambdaのリソース制限は現在、一時ディスク容量が512MB、ファイル記述子の数が1024個、プロセスとスレッドの数は合わせて1024個、リクエスト当たりの最大実行時間は300秒となっている。
パブリッククラウドのコストを削減
サーバレスコンピューティングの強みの1つは、パブリッククラウドにおいてオンデマンドで仮想マシン(VM)インスタンスを使う場合と比べて、アプリケーションの設計によってはコストを削減できる点だ。コスト削減の規模はアプリケーションの性質によって異なる他、アプリケーションがどの程度イベント駆動型の関数として設計、導入されているかや、関数を呼び出す頻度によっても異なる。イベントが発生したとき以外、アプリケーションの大半がアイドル状態にあるようなら、コストの削減を見込める。
ただしパブリッククラウドにおいてオンデマンドでVMインスタンスを使用する場合と比べて、コストを常に削減できるわけではない。無料層を除けば、関数の呼び出しは常に料金が発生する。関数ベースのアプリケーションのコストはおおよそ各関数のコストの合計となる。各関数のコストは基本的には、呼び出し回数に呼び出し1回当たりのコストを掛けた数字だ。
例えば50~100個程度の関数で構成されるサーバレスアプリケーションを、数万あるいは数十万という規模のモバイルユーザーベースが利用するとする。このような場合、クラウドの利用料金が請求されるころには、関数の呼び出し回数が膨大な数にふくれ上がっている可能性もある。そうなれば、従来型のアーキテクチャで設計した場合よりもコストがかさむ。ここでの問題は、一部には利用予測が不明確なことにある。大半の開発者は、関数がどのくらいの頻度で呼び出されることになるかを把握していない。そのためコスト分析が難しくなる。
サーバレスアプリケーションのコストを予測するには、関数の使用規模とユーザーベースの規模を慎重に評価する必要がある。アプリケーションの設計の違いが運転コストにどのような影響を及ぼすかについての検討も重要だ。アプリケーションの設計に変更を加え、一部の関数の多用を回避することで、コストを減らせる場合もある。
導入前の留意点
サーバレスコンピューティングは説得力のある概念だが、考慮すべき重要な点が幾つかある。導入前に慎重に検討すべき項目を以下に示す。
パフォーマンス
関数のレイテンシとパフォーマンスが及ぼす影響を考慮する。関数は実行時にその都度ロードするので、レスポンスタイムには小さいながらも確実にレイテンシが生じる。レイテンシはトラフィックの需要によっても変わる。レイテンシに敏感なアプリケーションの場合、こうした点がサーバレスコンピューティングの魅力を損なう可能性がある。
複雑さ
関数はアプリケーションの設計やパフォーマンスの監視、トラブルシューティングを複雑にする可能性がある。クラウド管理者は何十あるいは何百種類もの関数を監視しなければならないからだ。現在よりも細かい管理が可能なツールとポリシーの使用を検討するといい。
ステートレスな設計
関数はその都度素早く実行する必要があるので、ステートレスなソフトウェア設計が向いている。関数間でステートをやりとりするなら、関数ではなくデータにステートを割り当てること。ただし関数間で受け渡すメッセージのサイズには通常、厳しい制限がある。
エラー対策
関数は多くの場合、他の関数やストレージ、バックエンドアプリケーション、ネットワークアベイラビリティなどに依存するが、これらの要素はいずれもエラー発生の可能性がある。関数はエラーに対処できる設計にすべきだ。エラー後の実行時に未完のタスクを完了することで、できるだけエラーに強い関数を目指す。
移植性
関数は通常、パブリッククラウド事業者間で移行することはできない。AWS Lambdaの関数はAzureやGoogleでは動かず、その逆も同様だ。この状況はベンダーのロックインを引き起こし、マルチクラウド戦略を複雑なものにする可能性がある。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社うるる] 「入札市場」攻略ガイド:効率的に落札するためのポイントを徹底解説 -
製品資料
[株式会社うるる] 入札情報に特化した「販路拡大」「効率化」のためのサポートツールとは? -
市場調査・トレンド
[株式会社うるる] 公共入札に成功する企業と失敗する企業の「5つの違い」 -
製品資料
[日本ビジネスシステムズ株式会社] 専門家が教える、Microsoft 365の「テナント統合/分離」を成功に導く秘訣 -
製品資料
[rakumo株式会社] Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
2
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
3
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
4
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
5
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
「テザリング依存」に潜む落とし穴 “遅いVPN”を解消するネット構築術
-
8
積水化学工業が「SAP S/4HANA Cloud」の“全グループ導入”に踏み切った訳
-
9
データセンター事業者が「脱VMware」をした“例のライセンス問題”じゃない理由
-
10
OpenAIやAnthropicでさえ制御不能 2026年夏「3大サイバー攻撃」の衝撃
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
7
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
8
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
9
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
10
「標的型攻撃メール」事例・サンプル集
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー