COLUMN
サーバーレスでプログラムを実行できる「AWS Lambda」とは
通常、プログラムを実行するためには、サーバーOSやアプリケーションサーバーソフトウェアと環境設定が必要です。こうした実行環境の準備の手間を大幅に削減してくれるのが、「AWS Lambda(ラムダ)」です。今回は、AWS Lambdaについて解説します。
AWS Lambdaとは
AWS Lambdaとは、サーバーレスでプログラムを実行できる環境を提供するAWSのサービスのことです。通常、プログラムを開発・実行するためには、サーバーOSやアプリケーションサーバーソフトウェアを準備し、実行するためにサーバーやインスタンスを起動し続ける必要があります。こうした環境がすべてあらかじめ準備されているのが、AWS Lambdaです。セキュリティの設定、モニタリングといったサービスもAWS Lambdaに含まれているため、ユーザーは実行するプログラムを作成して登録するだけです。開発者は、プログラムを準備してLambda関数として作成して登録しさえすればよく、実行プログラムを動作させるための環境の準備も、その環境のパッチの提供といったメンテナンスやセキュリティ管理も必要ありません。とても魅力的な AWS Lambda ですが、Amazon EC2 とは何が違うのでしょうか?
Amazon EC2が提供するのは、あくまで仮想サーバーです。ユーザーはAmazon EC2 の仮想サーバーの上にOSやミドルウエア、アプリケーションをインストールし、そのメンテナンスも自身で行う必要があります。しかしながら、仮想サーバー上で動作させるミドルウエアやアプリケーションに制限はありません。AWS Lambdaは、OSやミドルウエア、アプリケーションをインストールするといった管理の手間を省く一方で、その用途をプログラム開発に限定しているのです。
AWS Lambdaは、可用性が高く耐障害性に優れたAWSのプラットフォーム上で動作します。各リージョンの複数のアベイラビリティゾーンで動作しているため、信頼性の高い運用パフォーマンスを提供することができます。メンテナンス目的のサーバー停止や定期的なダウンタイムもなく、高品質のサービス提供を実現できます。
AWS Lambdaで実現できること
AWS Lambdaの特徴として、何らかのイベントなどをトリガーとして自動的にプログラムコードが実行されることが挙げられます。AWS Lambdaで実行するコードは「Lambda 関数」と呼ばれます。開発言語は、Node.js、Java、C#、Pythonに対応しています。AWS Lambdaを利用するからといって、新たに特別なプログラミング言語やフレームワークを習得する必要はありません。使い慣れた開発言語を使って、プログラムを作成することができます。
具体的に開発できるプログラムは、AWSに対するイベントをトリガーに実行されるものをイメージするとよいでしょう。具体的には、以下のような処理が考えられます。
Amazon S3へのファイルアップロード時にファイル処理を行う
リアルタイムにストリーミングデータを処理する
データベース内のデータ変更要求に対して、検証やフィルタリング処理を行う
IoT環境などにおけるバックエンド処理を行う
例えば、「Amazon S3」に対してファイルをアップロードした際に、これをトリガーとしてAWS Lambdaが画像リサイズ処理を実行し、Webサイトやモバイルサイト用に最適な画像に変換する仕組みが挙げられます。画像のサムネイルを作成したり、インデックス処理を施したりすることができます。
実際に、ある新聞社では新聞の電子版について、AWS Lambdaの画像処理の機能を利用しています。電子版の新聞に対するアクセスが集中すれば、AWS Lambdaには瞬間的にサーバー換算で数万台分の処理が求められます。処理能力の拡張は自動的に行われるため、スケーラビリティが高いうえに運用管理が簡単であり、開発効率も高めています。
このような画像処理の自動化は、ゲームについても応用されています。ゲームについても特定のイベントなどで一時的に負荷が大きくなる傾向がありますが、年数回のイベントのためだけにサーバーを増強することは現実的ではありません。同時に、高い処理能力も求められます。あるゲーム会社では、AWS Lambdaを使うことで、従来は数時間かかっていた処理をわずか10数秒で完了させるとともに、オンプレミスと比較してコストを1/20にまで削減できたといいます。
画像処理以外にも、POSデータ集中処理システムをAWS Lambdaで実現した小売店の例もあります。高い生産性が求められ、変化が速いビジネスの現場では、プログラム開発を伴うシステム開発を求められることが多いでしょう。サーバーレスでプログラム開発ができるAWS Lambdaを使うことで、企業の競争力を高めることにも期待が持てます。
AWS Lambdaの料金体系
AWS Lambdaの料金は、プログラムコードが実行に移されない限り発生しません。リクエスト数と実行に移されたときのコンピューティング時間に対して料金が発生する仕組みとなっています。このため、サーバーの運用コストはかからないほか、プログラムを作成するだけでは料金は発生しません。一方で、Amazon EC2の場合は、プログラムの動作に関係なく、仮想サーバーを構築した段階で、費用が発生します。プログラムが動いた場合にのみ料金がかかる仕組みになっているため、プログラム管理にかかるコストを大幅に削減することができるのです。
リクエスト数に対する金額は、100万リクエストにつき0.2USドルという低価格となっています。しかも、1か月につき100万リクエストまでは無料で使うことができます。実行に移されたときのコンピューティング時間についても、月間400,000 GB-秒のコンピューティング時間が無料です。ただし、Lambda関数に割り当てたメモリ容量によって無料で使うことができる時間は異なりますので、注意しましょう。
このように、AWS Lambdaがリクエスト数と実行に移されたときのコンピューティング時間に応じて従量課金されることは、大規模システムではコストメリットが大きくなります。負荷が集中した際などに高いスペックが求められることがありますが、割り当てたメモリの範囲内であればリソースの割り当ては自動的に行われ、追加料金は発生しないからです。
最新の料金につきましては、AWSの公式サイトをご覧ください。
サーバーレスプログラミングを実現するAWS Lambda
AWS上でシステムを構築し、効率的に運営していくためには、プログラミングの手法を使った自動化が求められることがあるでしょう。しかし、どんな小さなプログラムでもハードウエアやOSなどのプラットフォームが必要となり、そのコスト負担や運用の手間は決して小さくありません。
AWS Lambdaを使えば、サーバーレスでプログラミング環境を開発、実行することができます。しかも、提供されるプラットフォームはセキュリティ強度が高く、処理能力を左右するスケーラビリティにも優れます。AWSで提供するサービスを効率化し、拡張性を持たせたいのであればAWS Lambdaを検討してみてはいかがでしょうか。
24時間365日対応可能なクラウド監視・運用代行で、あなたをシステム運用から解放します!
やはり難しい??事例からAWS Lambda活用のヒントを得ましょう!
一歩進んだAWS Lambda活用!ローカル環境での活用方法を学びましょう。
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。