サーバーレスとは?クラウドコンピューティングにおけるサーバーレスの説明

サーバーレスとは?クラウドコンピューティングに欠かせないサーバーレスについて解説!

目次

はじめに

「サーバーレス」についてご存知でしょうか?「サーバーレス」はさまざまな業界に革命を起こしているクラウドコンピューティングの大きなメリットの一つです。

「サーバーレス」により、企業はクラウドインフラを気にせずアプリケーションの構築に集中することができます。さらに、スケーリングやランタイム、セキュリティ、リソースの割り当てなど、その他のすべてのことは基盤となる「サーバーレス」プラットフォームが処理します。

それでは、サーバーレスとは具体的にどのような技術なのでしょうか。このコラムでは、サーバーレスの概要やメリット・デメリット、実際の事例について解説します。

サーバーレスとは?

サーバーレスとは、クラウドコンピューティングにおける実行モデルの一つで、スケーリング、スケジューリング、パッチ適用、プロビジョニングなどのインフラ管理をすべてクラウドプロバイダーやツールに任せることです。

そのため、開発・運用者はインフラ管理の負担が軽減され、アプリケーションに最適なビジネスロジックやコードの開発に時間と労力を割くことができます。

サーバーレスには、以下のような特徴があります。

  • サーバーレスモデルでは、インフラの管理・運用が一切不要なため、開発者はコードの最適化や新機能の開発に時間を割くことができる
  • サーバーレスは、オンデマンドでコンピューティングリソースを提供。つまり、コードはオンデマンドでのみ実行され、処理されるリクエストの数に応じてスケールアップ
  • サーバーレスの料金体系は、「従量課金制(pay-as-you-go)」であることがほとんど。*従量課金=使った分だけ料金を支払う

「従量課金制」であるサーバーレス・コンピューティングは、2014年にAmazon Web Services(AWS)が初めて提供したサービスで、そのサービスをAWS Lambdaと名付けました。現在では、すべての主要なクラウドサービスプロバイダーが、サーバーレスプラットフォームを提供しています(Microsoft Azureには「Azure Functions」、Google Cloudには「Google Cloud Functions」、IBM Cloudには「IBM Cloud Code Engine」があります)。

こういったサービスを「Function as a Service(FaaS)」と呼ぶこともあります。

「サーバーレス」にサーバーはあるのか

実際、サーバーレス(Server Less)は、サーバーがないわけではなく、サーバー自体は存在します。「レス」=サーバーの管理や運用が不要になるというイメージです。ユーザーはサーバーの存在を気にすることなく、開発や運用できるため、「ない」ように感じます。

サーバーレスと従来のホスティングとの比較

サーバーレスのメリットとデメリット

ここでは、サーバーレス・コンピューティングのさまざまなメリットとデメリットを紹介します。

サーバーレスのメリット

運用コストの削減

サーバーレスでは、インフラの管理をクラウド事業者に任せることができるため、ハードウェアの故障やネットワークの問題、システムの保守のための人手が不要となり、運用コストを削減することができます。

また、特に予算が限られているスタートアップ企業の場合、リスクの軽減にもつながります。新しいサービスを導入して失敗しても、ハードウェアを売却して資金を回収する必要がありません。

ビジネスに集中できる

大規模なインフラの設定は、費用と時間のかかる作業です。サーバーレスを利用すれば、これらのコストを削減できます。これは、MVP(Minimum Viable Product)でアイデアをテストする必要がある新規スタートアップにとって有益です。既存の企業にとっては、サーバーレスを使用することで、開発者はインフラについて心配する必要がなくなり、アプリケーションのビジネスロジック側に集中することができます。

システムセキュリティが強固

先進的なクラウドプロバイダーは、サイバー攻撃から顧客を守るために、クラウド基盤上に様々なセキュリティの層を構築しています。自社でセキュリティ対策を行う必要がある従来のアーキテクチャとは異なり、サーバーレスでは、OS、ランタイム、物理的なアクセス、ネットワークなど、プラットフォームを稼働させるための関連技術のセキュリティをクラウド事業者がすべて行っています。

クラウドプロバイダーは、何千もの顧客にサービスを提供するため、最高のセキュリティ対策を実施し、バグを継続的に修正することに専念している大規模な専門家チームを有しています。これはサーバーレスを採用している企業にとって大きなメリットとなります。

継続的な配信

サーバーレスは、大規模なアプリケーションを、異なるリクエストを処理する小さなマイクロサービスに分割することで成り立っています。この環境で新規または更新された機能を展開することは、アプリケーション全体ではなく、個々のマイクロサービスに対して取り組むことを意味します。これにより、他の機能の動作を妨げることなく機能を更新することができるため、新機能を継続的に提供することができます。

これは、アプリケーション全体が1つの緊密に接続されたスタックとして開発され、機能を更新するたびにそのシステム全体に対処しなければならないモノリシック・アーキテクチャと比較した場合の、サーバーレスの大きなメリットと言えます。

正確なコストモデル

サーバーレスでは、ビジネスのための正確なコストモデルを構築することができます。仮に、サーバーレスでオンラインアプリケーションを構築したとすると、そのアプリケーションでは、平均的なユーザーが商品を見るためにいくつかのリクエストを行い、注文をするまでにさらにいくつかのリクエストを行います。

 

サーバーレスでは、与えられた入力に対して、1つのコードユニットが実行される時間が予測可能です。このため、データを収集した後に、一人のユーザーにかかる平均的なコストを予測することができ、この単価は、アプリケーションの使用量が増えてもほとんど変わりません。

これはビジネスにとって重要なことです。なぜなら、1人のユーザーにかかるコストを知り、その数字を固定化することで、利益を得るために必要なサービスや広告の料金を決めることができるからです。

サーバーレスのデメリット

遅延時間が長い

サーバーレスはイベントドリブンな動作をするため、コードは常に実行されているわけではありません。ユーザーがリクエストをすると、システム内の一連のステップを経て、該当の機能が起動します。ここで問題となるのは、これらのステップに時間がかかることです。その時間は、最大で数百ミリ秒です。(コンピューティングの速度との関係では大きな意味を持ちます)。

 

この問題はコールドスタート遅延と呼ばれ、サーバーレスの利点と従来のホスティングの低遅延の利点との間で二者択一を行う必要があります。サーバーレスの高いレイテンシーがビジネスクリティカルな業務に支障をきたす場合、多くの企業はこの問題を解決するために、クラウド移行における柔軟な実行モデルであるハイブリッドクラウドを採用しています。

ベンダーによって利用できる機能に制限がある

どのクラウド・プロバイダーも完璧ではなく、それぞれ独自の制約があり、サーバーレスにする場合はその制約がどんなものであるかを知っておく必要があります。

例えば、AWSではLambda関数を5分以上実行することはできないので、この要件を満たすように関数をコーディングする必要があります。AWSはこれを意図的に行っていますが、サーバーレスは短時間でのコスト効率を重視して設計されているため、常に予測可能な処理を行うとコストがかかります。

コードの実行に時間がかかったり、実行に時間をかけなければならない場合は、サーバーレスの使い方が間違っています。

ベンダーロックインによって乗り換えが難しい

ベンダーロックインは、サーバーレスの大きな問題です。クラウドプロバイダーは、企業が必要としているある特定のサービスに関して、他のベンダーとは全く異なる実装をしている可能性があります。そのため、移行するには、アプリケーションに変更を加える必要があり、時にはリファクタリングも必要になります。これはとても面倒な作業です。

多くの企業は、ベンダーロックインのリスクを軽減するために、クラウド移行のもう一つの柔軟な実行モデルであるマルチクラウドを利用しています。

短期間に多くのことを学ぶ

サーバーレスは新しいテクノロジーなので、組織がサーバーレスに慣れるためには、急な学習曲線が必要になります。サーバーレス環境では、新しい種類の課題に直面する可能性があります。サーバーレス機能は、既存のプロセスでは管理やデバッグが困難な場合があり、コードをローカルでテストするのが難しい場合もあるため、開発者は新しいツール群に早く適応する必要があります。

 

組織によっては、サーバーレスをクラウドへの道と見なしているところもありますが、経験則としては、マイクロサービスへの準備ができていなければ、サーバーレスへの準備もできていないと言えるでしょう。

サーバーレスのユースケース

サーバーレスにはさまざまなユースケースがあり、基本的にはイベント・ドリブンなものに適しています。このユースケースには、IoT、モバイルアプリケーション、ウェブベースのアプリケーション、チャットボットなどの例が含まれます。イベントは、ユーザーのアクション(インターフェースのボタンをクリックする)、センサーの作動、システムの特定のポイントを流れるデータなど、さまざまなソースから得られることに注目します。

Thomson Reuters社では、AWS Lambdaを使用して、サーバーのプロビジョニングや管理をすることなく、データストリーミングの読み込みと処理を行っていることが一例として挙げられます。同社はサーバーレスソリューションを構築し、同社の提供するサービスで生成されたデータの取得、分析、可視化を可能にしています。この機能は、同社の製品チームがユーザーエクスペリエンスを継続的に改善するためのインサイトを提供します。AWS Lambdaは、KinesisおよびAmazon S3との統合により、新しいデータの入力がトリガーされたときにのみReutersのコードを実行します。

 

イベント・ドリブンであるということは、コードが実行されているときにのみユーザーに計算処理の料金が発生するということであり、非常にコスト効率が良いです。

サーバーレスが苦手なものとは?

前述のとおり、サーバーレスはイベントドリブンなので、常時稼働が必要なアプリケーションはサーバーレスの恩恵を受けることができません。サーバーレスはイベントの発生回数に応じて課金されるため、常時処理を行うためにサーバーレスを利用すると、あっという間に課金額が膨れ上がってしまいます。

また、サーバーレスは、すでに構築されたレガシーアプリケーションに対して、必ずしもドロップインソリューションではありません。すでにモノリスとして構築されているアプリケーションをサーバーレスで実行するほとんどの場合、マイクロサービスの形でリファクタリングする必要があります。

PhotoVogueによるサーバーレスの事例

世界的に有名なファッション・美容誌である「VOGUE」が運営する「PhotoVogue」は、オンラインの写真プラットフォームです。フォトグラファーが自分の作品を展示できるようになっています。

課題

  • 約13万人のフォトグラファーがPhotoVogueで作品を紹介しています。これは、40万枚以上の写真を集めたもので、それぞれの写真のファイルサイズは最大50MBにもなります。
  • 投稿される写真の数は日に日に増加しており、PhotoVogueの課題はこの需要に対応することでした。
  • PhotoVougeの既存の社内ITインフラには限界がありました。より速くより良いエクスペリエンスをフォトグラファーと運用スタッフの両方に提供したいと考えていた同社は、十分な速さでリソースをプロビジョニングできませんでした。

AWS Lambdaが提供するサーバーレス・ソリューション

  • PhotoVogueは、3ヶ月でインフラ全体をAWSに移行し、Amazon S3(Amazon Simple Storage Service)を使ってすべての写真を保存しています。
  • Amazon S3からは、AWS Lambda関数が起動され、アップロードされた画像をGIF、JPEG、PNG、TIFなどの様々なデジタルフォーマットに自動変換し、PhotoVogueのスタッフが画像を編集できるようにしています。
  • また、REST APIのキャッシュ層としてAmazon API Gatewayを、コンテンツ配信ネットワーク(CDN)としてAmazon CloudFrontを採用しています。

成果

  • プロビジョニングの迅速化:PhotoVogue社の古い施設や設備では、新しいインフラをセットアップするのに何日もかかっていましたが、AWSでは数時間でこれを行うことができました。そのため、ITがビジネスの妨げになることはなくなりました。
  • スピードの向上:Amazon API GatewayとAWS Lambdaは、ユーザーエクスペリエンスを90%高速化しました。それは、画像をアップロードするアーティストやフォトグラファーと、それを処理する編集チームの両方にとってです。
  • コストと時間を削減:VoguePhotoは、AWSを使うことによってITコストを約30%削減しました。以前はインフラの手入れに時間を費やしていましたが、その時間を削減できたことでし、今では新しいサービスの開拓にあてることができています。
  • 安定性の向上:API GatewayとLambdaにより、サイトの安定性と予測性が向上しました。これにより、広告をベースとしたビジネスモデルを持つVoguePhotoの収益が向上しました。
  • スケーラビリティの向上:PhotoVogueは、2016年11月にミラノで、ファッション写真を祝うイベントを開催しました。このイベントでは、通常の日々のトラフィックよりも約20%多いアップロードが発生しましたが、AWSがそれをシームレスにスケールアップしたため、キャパシティに問題はありませんでした。

出典:PhotoVogue Case Study(【公式】Amazon Web Service)

まとめ

サーバーレスは、クラウド上でアプリケーションを構築・運用するための費用対効果の高い方法を提供しています。また、クラウドへの移行の道のりにおいては、アプリケーションのモダナイゼーションを行う際に、スムーズに進めることができます。

クラウド移行プロジェクトを自社で実行するための専門知識がない場合は、優秀なクラウドマイグレーションサービスプロバイダーを探すのが一番です。

弊社は、ベトナムでトップ3に入るクラウド移行サービスプロバイダーです。Amazon AWS、Microsoft Azure、Google Cloudを専門とするクラウドエンジニアの大規模な認定チームを運営しており、お客様のレガシーシステムを最も費用対効果の高い方法で、最短時間でクラウドに移行することができます。

オフショア開発に関することでご不明点やご質問がありましたらお問い合わせフォームから、お気軽にご連絡ください。

他にも、オフショア開発に役立つ資料は無料公開しています!

【ブログ】簡単解説!クラウドマイグレーションとは、なぜビジネスに必要なのか?

クラウド移行とは何か、クラウド移行はビジネスにどのようなメリットをもたらすのか、そしてクラウド移行を成功させるために知っておくべきことを詳しく説明しています。


このブログを読む

オフショアのメリットを最大限に活用した
AWS クラウド ・サービス

cloud-migration-4

当社はAWSのクラウド技術と、ベトナムオフショア開発を利用し、低コストかつ高品質な企業の競争力を高めるためのソリューションをご提供しています。


このページを読む

【動画】【2022年版】2分でわかる!オフショア開発とは?

本動画では、日本のIT開発プロジェクトと深く関係がある「オフショア開発」の概要とメリットについて、サクッとで解説しています。


この動画を見る