マイクロサービスアーキテクチャとの親和性抜群!開発フェーズの管理コストを最小化するFaaSAWS Lambdaとは?概要やメリット、導入事例を紹介

最終更新日:2021年4月27日

レバテックキャリアは
ITエンジニア・Webクリエイター専門の転職エージェントです

新たなクラウドサービスとして「FaaS (Function as a Service)」が注目される中、その代表格ともいえる「AWS Lambda」を採用する企業が増えています。AWS Lambdaはサーバーレス環境でプログラムの単体稼働が可能なことから、開発・運用効率の向上が期待できるサービスです。ここでは、FaaSおよびAWS Lambdaの概要やメリット、具体的な導入事例などを紹介しています。

1. 話題のFaaS「AWS Lambda」とは?

まず、FaaSとAWS Lambdaの概要について解説します。

FaaS(Function as a Service)とは?

FaaSは、サーバーレスコンピューティングの一種であり、プログラム実行に必要な環境や前後の処理をクラウド上から提供するサービスです。少しわかりにくいかもしれませんので、まずサーバーレスコンピューティングから順に解説していきます。

サーバーレスコンピューティングとは、サーバーを管理することなく、特定の処理を実行できる環境を表しています。つまり「サーバーレス」とは、「サーバー自体が不要」という意味ではなく「サーバーの管理が不要」という意味で使われているわけです。

サーバーレスコンピューティングでは、物理的なサーバー筐体のみならず、ミドルウェアの管理も不要です。したがって、ユーザーはプログラムの開発と実行のみを担当すれば良く、極めて小さいコストで開発が進められます。

FaaSはサーバーレスコンピューティングの一形態です。サーバーレスコンピューティングをさらに細かく突き詰め、純粋な処理実行以外のすべてをサービスとして提供しています。一般的にプログラムは、「1.何らかのリクエストを受信」「2.プログラムにリクエストが渡される」「3.プログラムがリクエストを受信して処理を実行する」「4.実行結果をレスポンスとして返信する」といった動きをします。FaaSならば、1および2をサービスとして提供し、3以降はユーザー側が担うといった形態が多いでしょう。

一方、FaaSでは3以外のすべてをクラウドサービスとして提供します。つまりユーザー側は、純粋な処理の実行のみを負担すればよく、環境構築・管理・運用の手間から解放されるというわけです。

FaaSは、マイクロサービスサービスアーキテクチャをサポートするサービスとして広まりました。マイクロサービスアーキテクチャでは、必要最小限の機能のみを持つマイクロサービスをいくつも作成し、これらを相互に通信させることでより大きなサービスを構築します。重厚長大な単体のプログラムを作るのではなく、関数レベルの機能のみを持ったマイクロサービスをいくつも組み合わせることで、開発・保守作業を単純化しようという狙いがあるからです。

ただし、マイクロサービスは使用頻度にばらつきがあり、個別に管理・運用するためには相応のコストが必要です。そこで、FaaSによるマイクロサービスの管理が普及していきました。FaaSを使用すれば、開発者は単純に機能の中身だけを実装すればよく、起動・レスポンスなど前後の処理はFaaSにすべて委託することができます。

AWS Lambdaとは

AWS Lambdaは、Amazonが提供しているFaaSです。FaaSの中でも特にメジャーなサービスとして知られています。

AWS Lambdaは、任意のプログラムを定義しておき、インターネットを通じてクラウド上からプログラムを実行できるようになっています。プログラムの実行は、Lambda上から設定する「実行トリガー」によって開始されます。実行トリガーにはさまざまな関数が登録できるようになっており、この関数の豊富さがAWS Lambdaの特徴のひとつです。

2. AWS Lambdaができることとメリット

次に、AWS Lambdaができること・メリットについて解説していきます。

AWS Lambdaができること

AWS Lambdaは、サーバーやミドルウェアなどを管理することなく、純粋にプログラムのみを実行することができます。定義した機能、関数からリクエストがあったときだけ実行されるため、「常時起動するプログラム」よりも「頻繁には使われないが必ず備えておくべきプログラム」に適しているでしょう。

AWS Lambdaは、プログラムの定義さえ完了していれば、どのようなタイプの処理も実行可能です。さらに、プログラムの実行に必要なリソースの割り当てなども必要ありません。コードをZIPファイルやコンテナイメージでAWS Lambda上にアップロードするだけで準備が整います。

AWS Lambdaを使用するメリット

AWS Lambdaを使用することで、開発・保守・運用コストなどが低減されます。具体的には次のようなメリットが発生するでしょう。

サーバー管理コストが最小化される

開発用の実行環境構築では、専用のサーバーを用意することが多いです。このサーバー管理にかかるコストは意外に大きく、開発コストの増大を招く遠因になっています。AWS Lambdaを使用することで、こうしたコストをほぼ全てカットできる点がメリットのひとつです。

開発効率の向上

サーバー管理の手間がなくなることで、コア業務(コーディングやテストなど)にリソースを集中することができます。

任意の処理を自動化できる

AWS Lambda上に定義されたプログラムは、前提となる関数などからのリクエストを受けて実行されます。また、処理が終了した後のレスポンスもLambdaから送信されるため、一連の処理を自動化することができます。さらに、実行回数に対しても自動スケールが働くため、実行回数の調節も必要ありません。

処理コストの最適化

AWS Lambdaは、「定義された処理が実行された回数」と「処理が実際に動いた時間」で料金が決定します。処理が動かない限りはコストが発生しないことから、最小限のコストで維持できるわけです。ちなみに、毎月100万リクエスト(実行回数100万回)および、40万GB/秒までの無料枠が設けられています。スモールスタートなサービスやテストフェーズ中のサービスであれば、無料枠の範囲内でも開発を進められそうですね。

3. AWS Lambdaの活用事例

最後に、AWS Lambdaの活用事例を紹介します。

電子版新聞における紙面ビューア表示処理

大手新聞社が運営している電子版サービスでは、PC・スマートフォンなどから記事を読むための「紙面ビューワ」を提供しています。この紙面ビューワに対しては、毎日膨大なアクセスがあるうえにアクセスの増減が激しく、負荷調整に手間がかかるのだそうです。そこでAWS Lambdaを導入した結果、負荷に応じたインスタンス増減の手間が小さくなり、コスト削減につながったとのことです。

オンラインゲーム内での特定の処理パフォーマンス改善

国内最大手のゲーム開発企業では、オンラインゲームの運営において、スマートフォンアプリとの連動時に発生する負荷処理への対策が課題だったそうです。具体的は、年に数回発生するスパイクアクセス(突発的なアクセス増)のために、高価なインフラ設備を投入すべきかどうか判断しかねていたとのこと。そこで、リクエストに応じて自動的に実行回数がスケールされるAWS Lambdaを導入しました。AWS Lambdaの導入後は、オンラインゲームとアプリケーションの連動にかかる時間が数時間から10数秒にまで短縮され、コストもオンプレミス比で20分の1程度にまで圧縮されたそうです。

4. まとめ

クラウドサービスの中でも、特に注目されているのが「FaaS (Function as a Service」であり、その代表格として挙げられるのが、「AWS Lambda」です。AWS Lambdaは、サーバーレス環境で迅速にプログラム単体を稼働させられることから、開発効率の向上に寄与します。今後AWS関連のプロジェクトに参画したいと考えているエンジニアは、是非仕組みを理解しておくことをおすすめします。

ITエンジニア・Webクリエイターの転職ならレバテックキャリア

レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。

転職支援サービスに申し込む

また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。

「個別相談会」に申し込む

まだ転職を迷っているあなたに情報収集から始めませんか?

プロのアドバイザーがあなたのお悩みや疑問にお答えします

- 転職個別相談会開催中 -

相談内容を選択してください

※転職活動や求人への応募を強制することはありません

人気の求人特集

内定率が高い

関連する記事

人気の記事

スキルアップ記事トップへ

AWSの求人・転職一覧