サーバーレスとは? サーバーレスコンピューティングは、開発者がサーバーを管理することなくアプリケーションを構築・実行するクラウドネイティブの実行モデルです。クラウドプロバイダーがプロビジョニング、拡張、インフラストラクチャのメンテナンスを担うため、開発者はコードの作成と展開に集中することができます。 デモを依頼
サーバーレスについて知っておくべきこと
バックエンドサービスの種類 サーバーレスとその他のタイプの違い サーバーレスの課題 サーバーレスのメリット サーバーレスのユースケース サーバーレスの仕組み サーバーレスに関する見通し ServiceNow によるサーバーレス

従来、サーバーの管理は、アプリケーション開発において複雑で時間のかかる要素の 1 つでした。開発者は、インフラストラクチャの構成、オペレーティングシステムへのパッチ適用、トラフィック急増時のリソース拡張、パフォーマンスのモニタリングなどを求められることも多く、もちろん中心業務であるコードの作成・改善とのバランスを取りながら行わなければなりません。このような業務上の負担によって、開発サイクルに遅れが生じるだけでなく、イノベーションやビジネス価値の提供に注力できなくなります。チームの負担が重すぎる組織では、サーバー管理の課題がボトルネックを生み、コストが増大し、非効率性を招く可能性があります。 

サーバーレスコンピューティングは、こうした懸念に対する答えです。サーバー管理を抽象化することで、サーバーレスコンピューティングは、開発者がインフラストラクチャを気にすることなく、アプリケーションの構築と展開に集中できるようにします。このコンセプトは、2008 年に Google App Engine で Web アプリケーションを展開するための管理環境が導入されたことで具体化され始めました。しかし、「サーバーレス」という用語が一般化し、最新のクラウドコンピューティングにおけるその位置づけが確立されたのは、2014 年の AWS Lambda の立ち上げからです。このアプローチは、開発者がクラウドインフラストラクチャをどのように使用するかを再定義するものとなり、イベント駆動型の実行、自動スケーリング、コスト効率の高い価格モデルのすべてをクラウドサービスプロバイダーが完全に管理できるようになりました。

簡単に言うと、サーバーレスコンピューティングは運用上の負担を軽減します。同時に、迅速かつスケーラブルで、効率的なアプリケーション開発の新たな可能性を拓きます。 

すべて展開 すべて折りたたみ サーバーレスコンピューティングが提供できるバックエンドサービスの種類

サーバーレスコンピューティングは、コードを実行するだけでなく、アプリケーション開発を簡素化し、インフラストラクチャ管理の必要性を排除します。これは、最新のクラウドネイティブアプリケーションを構築するための基盤を形成するさまざまなバックエンドサービスを通じて実現されています。

  • Function as a Service (FaaS)
    FaaS はサーバーレスコンピューティングの中核的サービスであり、開発者はイベントによってトリガーされる個別の関数を記述できます。これらの関数はステートレスであり、実行間にデータを保持しません。これにより、スケーリングが簡素化され、これらの関数が非常に効率的に個々のタスクを処理できるようになります。クラウドプロバイダーが基盤となるコンテナを完全に管理し、リソースが動的に割り当てられるようにします。クライアントは使用した時間とリソースに対してのみ料金が請求されます。 

  • Backend as a service (BaaS)
    BaaS は、認証、プッシュ通知、データベース管理、ファイルストレージなど、事前設定されたバックエンド機能を提供します。API 統合を介してこれらのサービスを組み込むことができるため、開発者は一から作り直す必要なく、モジュール型アプリケーションを迅速に構築できます。このアプローチは、他のクラウドネイティブサービスとの相互運用性と柔軟性を維持しながら、開発タイムラインを加速させるために特に役立ちます。 

  • サーバーレスデータベースとストレージ
    サーバーレスプラットフォームは、手動による介入を必要とせずに、ワークロードの需要に合わせて動的に調整する、拡張性の高い SQL データベースと NoSQL データベースを提供します。これらのデータベースは、イベント駆動型のワークフローをサポートするように設計されているため、データトラフィックが予測不能なアプリケーションに最適です。

  • イベント駆動型アーキテクチャ
    サーバーレスコンピューティングは、リアルタイムのデータやシステムイベントによってワークフローがトリガーされるイベント駆動型アーキテクチャの実現において優れています。多くのプラットフォームでは、開発者がデータストリームを処理したり、データベースの更新や API 呼び出しなど外部システムの変更に対応したりすることを可能にしています。これにより応答性が向上し、リアルタイムアナリティクスや IoT 統合、自動ビジネスロジック実行が必要なアプリケーションに最適です。

DevOps、可観測性、AIOps の連携 このホワイトペーパーでは、DevOps、可観測性、AIOps の連携によるアプリケーションデリバリの改善とそれを可能にする ServiceNow のソリューションをご紹介します。 詳しくはこちら
サーバーレスとその他タイプのクラウドコンピューティングの違い

サーバーレスコンピューティングは、クラウドリソースのプロビジョニングと管理方法を再定義し、従来のモデルとは異なるアプローチを提供します。積極的な管理と構成を必要とする従来のモデルとは異なり、サーバーレスはインフラストラクチャ管理を完全に抽象化し、リソースが自動的に拡張されるイベント駆動型の完全に管理された環境を提供します。 

サーバーレスと Infrastructure as a Service (IaaS)

IaaS は、仮想マシン、ストレージ、ネットワークリソースへのオンデマンドアクセスを提供し、ユーザーが独自のインフラストラクチャを構成できる柔軟性を提供します。ただし、このモデルでは、開発者がサーバーのプロビジョニング、パッチ適用、拡張を積極的に管理しなければならない場合があり、それによってアプリケーションパフォーマンスの維持が複雑になる可能性があります。 

同様に IaaS では、ユーザーがキャパシティプランニングを担う必要があり、プロビジョニングの過剰または不足がリソースの無駄やパフォーマンス低下につながる可能性があります。サーバーレスでは、手動による介入を必要とせずに自動的に拡張が行われ、トラフィックの急増や減少をアプリケーションが確実に処理できるようにします。

サーバーレスと Platform as a Service (PaaS)

PaaS は、オペレーティングシステム、ランタイムライブラリ、開発ツールなど、事前構成済みの環境を提供することで、アプリケーション展開を簡素化します。開発者が基盤となるインフラストラクチャのセットアップやメンテナンスを行う必要はありませんが、リソース要件の定義とスケーリングポリシーの管理が必要です。一方、サーバーレスはこれらの要件を抽象化し、ユーザーによる操作を必要とすることなく、オンデマンドでリアルタイムに機能を拡張します。  

PaaS は通常、所定のランタイム環境を使用するため、複数のプログラミング言語やフレームワークを使用する開発者にとって、柔軟性が制限される可能性があります。サーバーレスプラットフォームは多言語開発をサポートしているため、開発者は自由に各機能に希望の言語を使用できます。

コンテナと Kubernetes

コンテナは、アプリケーションとそれらの依存関係をまとめてパッケージ化することで移植性と一貫性を提供し、環境を問わず一貫して動作するようにします。ただし、コンテナでは、スケーリング、ロードバランシング、リソース割り当てなどのタスクを管理するために Kubernetes のようなオーケストレーションツールが必要です。一方、サーバーレスコンピューティングでは、これら運用上の複雑さを抽象化して自動的に管理します。 

サーバーレスとは異なり、コンテナではユーザーがあまり活用されていないリソースもあらかじめ割り当ててしまうことが多いため、アイドル状態のリソースコストがよく発生します。サーバーレスでは、リソースが動的にプロビジョニングされ、実行後すぐにシャットダウンされるため、こういったコストの発生を回避し、100% の効率を実現します。さらに、コンテナは長時間実行されるアプリケーションに適していますが、サーバーレスの機能は短時間のイベント駆動型タスクの処理に優れており、API 呼び出し、データ処理、イベント処理など、特定のユースケースに重点を置いたソリューションを提供します。 

サーバーレスコンピューティングに関連する課題

サーバーレスコンピューティングは、アプリケーション開発を簡素化するように設計されていますが、この利便性にはさまざまな潜在的課題が伴います。サーバーレスの実行可能性を評価するには、これらの課題を理解することが不可欠です。

新しいテクノロジー

比較的最近のイノベーションとして、サーバーレスコンピューティングはまだ成熟の途上にあり、導入に際して課題に直面する可能性があります。限定的なベストプラクティス、ツールセットの進化、経験豊富な開発者の不足などにより、特に複雑あるいは大規模なアプリケーションを使用している組織では、習得が難しくなる可能性があります。また、サーバーレスとレガシーシステムやワークフローの統合に際して、互換性の問題に遭遇する可能性もあります。 

トレーニングプログラムに投資したり、サーバーレスの専門知識を持つ開発者を (見つかれば) 雇い入れたりすることで、組織は知識不足を補うことができます。同様に、互換性の課題に対処するには、オープンソースコミュニティやベンダー固有のサポートチャネルが提供するガイダンスやツールを利用できます。また、組織は従来のアーキテクチャと並行してサーバーレスを段階的に適用し、導入時の中断リスクを軽減できるハイブリッドモデルの使用を検討することもできます。 

すべての用途に適しているわけではない

サーバーレスは、短時間のステートレスなタスクに最適ですが、長時間実行されるプロセスや、持続的な状態を必要とするアプリケーションには不向きです。一貫して低遅延を必要とするワークロードでは、コールドスタート (サーバーレス機能が初めて呼び出されたときやアイドル状態であった後に発生する遅延) により、パフォーマンスのボトルネックが生じる可能性があります。さらに、長い処理時間を必要とするアプリケーションは、サーバーレスプラットフォームが課すランタイム制限を超えてしまい、中断につながる可能性があります。

長時間実行されるタスクの場合、ワークロードをより小規模なイベント駆動型の関数に分割して、サーバーレスの制約に合わせることができます。コールドスタートに対処するために、「プロビジョニングされた並行処理性」を有効にすることで、遅延を最小限に抑えることができます。持続的な状態を必要とするアプリケーションの場合、サーバーレスとマネージドデータベース、あるいは従来のサービスを組み合わせたハイブリッドアーキテクチャは、よりバランスの取れたアプローチを提供することができます。 

移行

サーバーレスは、導入に際してベンダーロックインを伴うことがよくあります。これは、クラウドプロバイダーが独自の API、アーキテクチャ、管理ツールを使用しているためです。サーバーレスのワークロードを別のプロバイダーに移行したり、オンプレミス環境に戻したりするには、コストと時間がかかり、アプリケーションコードの大幅な再構成や書き換えが必要になる可能性があります。

ベンダーロックインを減らすには、複数のクラウドプラットフォームにわたって移植性を提供するオープンソースのサーバーレスフレームワークを採用することができます。可能な限り標準化されたツールと API を使用することで、将来の移行も簡素化できます。

サーバーレスコンピューティングのメリット
サーバーレスコンピューティングによって、インフラストラクチャ管理の負担をクラウドプロバイダーに委ねることで、組織は新たな効率性を引き出し、ユーザーに真の価値を提供することに集中できるようになります。具体的には、次のようなメリットを通じて、ビジネスの需要に適応できるレジリエントで動的なアプリケーションを構築できます。 
適応可能なスケーリング

サーバーレスプラットフォームは、リアルタイムの需要に基づいてアプリケーションを自動的にスケールアップまたはスケールダウンすることができ、手動でのキャパシティプランニングは必要ありません。この動的なスケーリングにより、アプリケーションはリソースを過剰にプロビジョニングすることなく、突然のトラフィック急増に対応できます。さらに、サーバーレスソリューションはアイドル状態ではゼロにスケールダウンできるため、低頻度あるいは予測不能なワークロードに対して特にコスト効率が高くなります。

迅速な展開

サーバーレスは、ソフトウェア開発ライフサイクルを加速させます。開発者は、基盤となるインフラストラクチャで何が起こっているかを気にすることなく、更新やバグ修正を本番環境に直接プッシュできます。

柔軟な価格設定

IaaS や PaaS のような従来型モデルでは、顧客は予約済みの容量に対して料金を支払う必要があることが多く、その結果、あまり使用しない期間中の過剰なプロビジョニングとコスト増加につながる可能性があります。サーバーレスプラットフォームは、真の従量制であるため、事前に割り当てられたリソースに対してではなく、実際の使用状況に応じて課金されます。このため、費用が実際のアクティビティに応じた金額となり、予測可能で効率的な予算設定を求める組織にとって、サーバーレスは理想的な選択肢となります。

生産性の向上 

サーバーレスコンピューティングにより、チームはサーバーのパッチ適用、拡張、モニタリングなどのタスクを心配する必要がなくなり、ワークフローが簡素化され、コンテキストの切り替えが削減されます。この生産性向上により、開発サイクルが加速され、開発者はより価値の高い作業を行うための自由を手にすることができます。

サーバーレスコンピューティングのユースケース

サーバーレスコンピューティングは、その柔軟性と効率性によって、特に動的なスケーリング、イベント駆動型の実行、運用経費の削減が必要なアプリケーションシナリオに最適なソリューションとなります。組織がアジャイルで費用対効果の高いソリューションを求めるようになるにつれ、潜在的なユースケースが増加しています。 

  • バッチ処理
    一括アップロードによって、画像のサイズ変更や PDF 生成、ビデオトランスコーディングなどのタスクをトリガーすることができます。サーバーレスは自動的に拡張され、アイドルコストを発生させることなく、予測不能な容量にも対応できます。 

  • データ処理
    サーバーレスコンピューティングにより、リアルタイムデータストリーム (IoT センサー読み取りなど) を効率的に処理することができます。データベースやストレージと直接統合した機能で、データの検証、強化、変換を臨機応変に行うことができます。

  • サードパーティ連携
    サーバーレスは API 主導型のワークフローをサポートしているため、外部サービスとの連携に最適です。例としては、支払い処理、認証、アナリティクスツールなどがあります。

  • Web アプリケーション
    サーバーレスプラットフォームは、スケーラブルなバックエンドサービスを提供することで、動的な Web アプリケーションやモバイルアプリケーションをサポートします。開発者は、サーバーをプロビジョニングすることなく、API の構築、ユーザー認証の管理、クラウドストレージの統合を行うことができます。

クラウドオブザーバビリティの価格設定 パッケージを選択して、お客様のニーズに合った ServiceNow クラウドオブザーバビリティエディションを見つけてください。 詳しくはこちら
サーバーレスの仕組み

ほとんどの場合、サーバーレスコンピューティングはイベント駆動型アーキテクチャで動作します。開発者は、関数またはサービスとしてコードを記述し、それがクラウドプロバイダーによって管理されるコンテナに展開されます。これらのコンテナはステートレスで一時的なもので、トリガーされたときにのみ実行され、実行後に自己終了します。  

プロセスは通常、次の手順に従います。 

  1. コードの作成と展開
    開発者はコードを関数またはコンテナイメージとしてパッケージ化し、クラウドプラットフォームにアップロードします。 

  2. イベントのトリガー
    API 呼び出し、ファイルアップロード、スケジュールしたタスクなどのイベントが関数を作動させます。

  3. リソースの自動割り当て
    クラウドプロバイダーは、コードを実行するために必要なリソースをプロビジョニングします。

  4. 動的にスケーリング
    手動による介入を必要とせず、需要に基づいてリソースを自動的にスケーリングします。

  5. リソースの解放
    関数の実行が完了すると、リソースが解放され、課金が停止します。

サーバーレスに関する見通し

サーバーレスコンピューティングの進化に伴い、それがクラウドネイティブ開発に変革をもたらす可能性が高まります。拡張性、効率性、コスト効率という強みを基盤に、サーバーレスは新しいユースケースに拡大し、従来の制限を打ち破りつつあります。この傾向は、今後数年間にわたって続くとみられています。新たなイノベーションとオープンソースプロジェクトがより広範な導入への道を切り拓き、サーバーレスは現代のアプリケーション開発における推進力であり続けます。

  • ステートフルアプリケーションのサポート改善
    ステート処理を統合する取り組みにより、サーバーレスに適したユースケースの範囲が拡大し、持続的なデータ要件を有するアプリケーションへの適用が可能になります。

  • オープンソースソリューション
    Knative のようなプロジェクトによって、移植性と相互運用性の向上が推進され、組織が複数のクラウドプラットフォームやオンプレミス環境にまたがりサーバーレスのワークロードを展開できるようになっています。 

  • パフォーマンスの向上
    前述したように、サーバーレスコンピューティングは未だ揺籃期にあり、パフォーマンス関連の問題がいくつかあります。この状況はまもなく変わるでしょう。イノベーションによってコールドスタートの問題が解消され、起動時間が短縮し、遅延の影響を受けやすいアプリケーションでもサーバーレスの競争力が高まります。

  • ハイブリッドクラウドの導入
    サーバーレスは、ハイブリッド環境やエッジコンピューティング環境との連携が一層進み、パブリッククラウド、プライベートクラウド、オンプレミスシステム間でワークロードのバランスを取ることが可能になります。

ServiceNow によるサーバーレス

本来、「サーバーの管理」は開発者の職務に含まれるべきものではありません。サーバーレスコンピューティングはこの負担を取り除き、開発チームはイノベーションと価値の提供に集中できるようになります。しかし、サーバーレスの効果を完全に引き出すためには、一定のサポートが必要です。これらのメリットを最大化するには、組織の IT インフラストラクチャ全体でシームレスな連携、モニタリング、運用効率を実現する必要があります。 

ServiceNow は、クラウドネイティブ環境と従来の IT 環境全体にわたってアジリティと可視性を促進するツールを提供することで、サーバーレスのアプローチを強化します。Now Platform® は、ワークフローの簡素化、コラボレーションの改善、IT とビジネスの優先事項の整合性を確保します。また、ServiceNow サービスオブザーバビリティは、サーバーレスアプリケーションでもモノリシックアプリケーションでも一様に変更の監視、検出、対応に AI を活用したインサイトを提供します。これらの機能を組み合わせることで、組織はよりレスポンシブで効率的な IT エコシステムを構築できます。 

ServiceNow がサーバーレス戦略の最適化をどのように支援できるかをご確認ください。今すぐデモをお申し込みください。

クラウドオブザーバビリティの詳細情報 ServiceNow クラウドオブザーバビリティを活用してクラウドネイティブアプリケーションへの移行を加速する方法をエキスパートがご紹介します。 クラウドオブザーバビリティの詳細を見る お問い合わせ
リソース 記事 ServiceNow とは 可観測性とは? What Is OpenTelemetry? (OpenTelemetry とは?) データシート クラウドインサイト Deliver agile multi-cloud governance with ServiceNow® ITOM Optimization (ServiceNow® ITOM 最適化でアジャイルなマルチクラウドガバナンスを実現) オーケストレーション 電子書籍 ITIL 4 による変更管理のリマスタリング