2015年10月9日金曜日

サーバーレスでコード実行が可能な 「AWS Lambda」

株式会社Pro-SPIRE イノベーション推進センターの髙木です。

本日は、アマゾン ウェブ サービス(AWS)で提供されているサービス、「AWS Lambda」について
ご紹介させていただきます。



この「AWS Lambda」はサーバーレスでコードが実行ができることから、
大変注目度の高いサービスになっています。2014年11月からサービスが開始され、今年7月には、java8にも対応したことにより、更に盛り上がってきました。

特徴は下記の通りです。

・コード実行時間は最大60秒まで
・イベントに対応してミリ秒単位でコードを実行
・数件のリクエストから、数千件のリクエストまで自動でスケール
・java / Node.js / python でコード実行が可能。
・イベントトリガを他AWS(S3、SNS他)に連携することができる
・コードの実行時間により課金(EC2などのサービスを動かす必要がない)
・1ヶ月に 1,000,000 件の無料リクエスト、400,000 GB/秒のコンピューティング時間が無料利用枠で提供

詳細は、下記のページをご参照してください。
https://aws.amazon.com/jp/lambda/details/
※上記のリンクは外部サイトが別ウィンドウで開きます。

技術情報共有サービス「qiita」でも多数の投稿がストックされています。

■Lambdaに関する125件の投稿 - Qiita
※上記のリンクは外部サイトが別ウィンドウで開きます。

コード実行時間は最大60秒と短いですが、イベント発火に「Amazon SQS」や「Amazon SNS」などの通知サービスと組み合わせを行えば、大量にファイルのバッチ処理を行う事ができます。
クローラーやスクレイピングなどと相性がいいサービスといえます。

仮想環境「Amazon EC2」も当然スケールすることは可能ですが、起動時間などの待ち時間が発生してしまいますし、スクリプト程度の処理のためにEC2を動かすのはもったいないですよね。

Lambdaであれば、リクエストにより自動でスケールすることが可能なため、EC2のようにマシンを管理する必要もなく、大量のリクエストがあった場合でも、待ち時間などが発生することなくスクリプトが実行されます。

Java8、Nodejs共にスクレイピングを行う際に使用しましたが、特に問題なく使用できたため
今後はスクレイピングでEC2を使うことはなくなりそうです。

AWSにかかる費用を節約する意味でもとても重要度の高いサービスです。

Node.js、java8、pythonとともに豊富なライブラリを持っているのも魅力のひとつですね。
java8にも対応しているため、JUnitなどで、大量のテストを並列実行する際にも使用できるのではないでしょうか。

使用できる言語が3つと少ないため、「AWS Lambda」はまだまだ発展途上のサービスですが、
魅力は抜群といった感じです。今後が楽しみなサービスの一つですね。

0 件のコメント:

コメントを投稿