AWSのLambdaとは?どんな事が出来るのか徹底解説してみた
- AWS Lambdaって聞いたことはあるけどイマイチよくわからない
- 詳しい仕組みと何ができるのか知りたい!
最近注目を集めているAWS Lambdaをご存じでしょうか?
AWSと調べると頻繁に見かけるキーワードです。Lambdaが発表されたのは2014年で注目の最新技術というわけではないのですが、システムの調整や使い方に関する法律が整備され、以前より誰でも使いやすい技術となってきました。
そんな「AWS Lambdaとは?」の部分を実際の実用例などを挙げてわかりやすく説明できればと思います。
- AWS Lambdaの仕組みを理解できる
- 導入事例を通して何ができるのかを具体的に知ることができる
それでは解説していきます。
目次
AWS Lambdaとは
- AWS製品サービスの中の一部で、サーバーレスカテゴリーに属するサービス
- ハードウェア、ミドルウェアの管理を行わずに必要なコードだけを実行できる
簡単に概要を説明すると上記の通りです。
サーバーレスという聞きなれない単語が出てきましたね。サーバーレスについて簡単に解説していきましょう。
サーバーレスとは
サーバーレスの仕組みを理解するうえで大事な点は以下の2点です。
- 従来のシステム構築で必須だったハードウェア・ミドルウェアなどの構築をすべてインターネット経由で利用することが可能
- 実際にはアプリケーションが稼働サーバーが存在するものの、利用者はサーバーの存在を意識せずにソフトウェアの部分のプログラムのみに集中することができる
今まで自社で環境構築をする必要があった物理サーバーやネットワーク構築などは必要ありません。
また、サーバーを用意せずにクラウドに処理を登録することで適切なサーバーを自動で割り当て実行・処理をするという仕組みです。
結果的に初期費用、構築工数、セキュリティ導入費を抑えることにつながります。
サーバーレスとは自社のサーバーと切り離した環境でプログラムを作成・実行できるという仕組みです。
では、「AWS Lambda」はどのようなことができるのかを詳しく見ていきましょう。
AWS Lambda はどんなことができるのか
AWS Lambdaでできることを処理のイメージ例と併せて解説していきます。
イベントに応じたデータ処理を自動的に起動できる

Lambdaの特徴として、何かしらのイベントを受け、それをトリガーとしてあらかじめ設定しておいた処理を自動実行するという仕組みがあります。
では、2通りの例を通して処理のイメージをしてみましょう
SNSを使った例
<SNSが更新されたことをトリガーに自動的にデータを処理・分析を実行>
「Lambda」というキーワードが入るSNSが投稿された場合にその投稿を自動で集計し、まとめるプログラムを書いたとします。
オンプレミス環境では、対象の投稿が一度に大量更新されると、サーバーに負荷がかかり、処理に時間がかかる可能性があります。
一方、AWS Lambda環境では、対象の投稿が一度に大量更新されたとしても、適切なサーバーを自動で割り当て実行・処理してくれるため、処理にかかる時間がとても短く済みます。
システム障害に備えておく場合の例
<システムに障害が発生したことをトリガーに自動的にログの吸い取り作業を行う>
システム障害が起きた場合に備え、あらかじめAWS Lambdaで処理を登録しておきます。
システム障害発生時には登録された処理が自動的に呼び出され、ログデータから対象のログに検索をかけ、収集することができます。
自社サーバーからは切り離された環境で処理を行うため、大量のログデータであってもサーバーに負荷をかけることはありません。
また、本来ログデータ収集作業を行う予定だったエンジニアの作業を省くことができるため、とても効率的です。
実際に何ができるかのイメージをつかむことができたでしょうか?
それでは次にAWS Lambdaを導入するメリットを紹介していきます。
AWS Lambdaを導入するメリット
AWS Lambdaを導入するメリットは大きく2つあります。

サーバー運用管理が必要ない
サーバーレスのため、ハードウェアやミドルウェアの運用・管理が必要ありません。そのため、本来運用・管理をしていた人員をほかの作業に充てることができます。
結果的に人員コストの削減・業務効率の最適化につながります。
処理が動いた時間のみ課金対象
AWS Lambdaの料金体系の特徴として、処理が開始されたタイミングで課金が始まり、処理が終了した時点で課金が止まります。
常に処理を動かし続けるプログラムには向きませんが、逆にピンポイントで負荷のかかる処理をしたい場合にはとても効率的です。
しかも、毎月100万リクエストまでは無料で使用できるという驚きの価格設定です。
賢く使えば大幅なコスト削減ができそうですね。
AWS Lambdaは賢く適切なプログラムを設定してあげることで大幅なコスト・人員を削減することが可能です。
最後に、実際に活用された事例を紹介します。
AWS Lambdaの活用事例
スクウェア・エニックス
日本のゲーム業界で有名な企業のスクエア・エニックスでAWS Lambdaを使用した事例を紹介します。
人気MMO RPG「ドラゴンクエストX」でAWS Lambdaを活用した処理を組み込んでいます。
MMO RPGの特徴として、インターネットを介して数千人~数万人規模のプレイヤーが同時に参加してゲームをプレイします。
ゲーム内の機能として写真撮影を行うという機能があるのですが、クリスマスや大晦日のイベント時に大量の写真撮影が行われることで負荷がかかり、サービス提供に大きな遅延が発生していました。
改善策としてサーバー増設案が提唱されましたが、年に何度かしかない大量アクセスのためだけに高価なサーバーを導入することは難しいとされ、代わりにAWS Lambdaを使用し、自社システムから切り離したプログラムにて対処することが決定しました。
課題
- 通常時、1分間に処理する画像は2~300枚でこの規模の処理は問題ない
- クリスマスや大晦日のイベントでは1分間に6000枚のリクエストがあり、負荷による遅延が発生する。
- 遅延規模は、撮影後ゲーム内で画像を閲覧できるようになるには3~4時間かかる
従来のプロセス

- ゲーム内での写真撮影
- 自社サーバーへ画像データが送られる
- 順番に1枚ずつサムネイル画像の作成やコピーライトの追加などの加工処理が行われる。
- 画像データを自社サーバーに保存
- ゲーム内で撮影した画像が表示される
AWSサービスを使用したプロセス

- ゲーム内での写真撮影
- 自社サーバーへ画像データが送られる
- 画像データをAmazon S3へ送信
- 画像データを受け取ったことをイベントとし、それをトリガーにLambdaで設定した処理による同時並行でサムネイル画像の作成やコピーライトの追加などの加工処理が行われる。
- 画像データを自社サーバーにへ送信
- ゲーム内で撮影した画像が表示される
導入後の変化
いままでは6000枚のリクエストに対し、3~4時間の処理時間が発生していました。
AWS Lambdaへ移行後のテストで、想定される3倍の18000枚の画像データを1分間に処理するテスト検証を行ったところ、なんと数10秒で完了することができるようになりました。コスト面に関してもサーバー増設に比べ20分の1程度の削減に成功したそうです。
AWS Lambdaの特徴である、処理の規模に対する適切なサーバーを自動割り当てする機能により、大量のリクエストを同時並行処理した結果このようなスピードでの処理を実現しています。
まとめ
この記事ではAWS Lambdaについての仕組みやどんなことができるかなどを実用例をもとに説明しました。
- サーバーレスにより、利用者はサーバーの存在を意識せずにソフトウェアの部分のプログラムのみに集中することができる
- サーバー運用管理が必要ないので人員を割かなくて済む
- サーバーを動かしたときだけ課金対象なのでコストを抑えることができる
Lambdaは最近注目を集めているサービスで、今後さらに注目されることが予想されます。
無料利用枠もあるため、もし興味があれば実際にLambdaに触ってみてはいかがでしょうか?