AWSの人気サービスとして頻繁に名前の挙がる「Lambda」ですが、どういったことが出来るのか機能を把握出来ていない方も多いのではないでしょうか。
本記事では、AWS Lambdaのサービス概要から機能や特徴について、AWS初心者の方向けにご紹介いていきます。
目次
AWS Lambdaとは
AWS Lambdaはサーバーやクラスターについて検討することなくコードを実行出来るサーバーレスコンピューティングサービスです。
サーバーレスコンピューティング
サーバーレスコンピューティングは、文字通りサーバーを用意することなく、実行させたいプログラムを利用することが出来ます。
AWSがサーバーとミドルウェアの環境を提供することにより、利用者は実行したいプログラムさえ用意すればすぐにシステムを稼働させることが出来るようになっています。
またサーバーの運用自体もAWSが管理者として適切な対応を実施してくれるため、文字通りサーバーに関する対応が一切不要でサービスを使用することが可能です。
AWS Lambdaの料金
AWS Lambdaの料金体系は従量課金制が採用されています。
使用するリージョンなどにより料金は変わりますが、東京リージョンではリクエスト100万件あたり0.20USD(22.03円※記事執筆時点)で利用可能です。
無料利用枠にも1 か月ごとに 100 万件の無料リクエスト、および 40 万 GB-秒のコンピューティング時間がそれぞれ含まれます。
サポートされている言語
AWS Lambdaでサポートされている言語は以下の通りです。
- Java
- Go
- PowerShell
- Node.js
- C#
- Python
- Ruby
AWS Lambdaで出来ること
AWS Lambdaを利用するとどういったことが実現出来るのか確認しておきましょう。
データ加工処理
データ加工はLambdaが得意とする分野で、ログ関連の処理や画像加工処理などで頻繁に利用されています。
Lambdaではイベントをトリガーとして、プログラムを起動出来るため、例えばファイルをS3にアップロードしたタイミングで画像データを加工するなどの処理を実施することが可能です。
各種バックエンド処理
AWS Lambdaを利用すると、WebはもちろんモバイルやIoTといったバックエンド処理をサーバーレスで実現出来ます。
同じくAWSから提供されているAPI Gatewayのサービスを通してLambdaを起動し、ビジネスロジックの実行やデータベースへの読み書き処理を実施することが可能です。
AWS Lambdaを利用するメリット
AWS Lambdaを利用するメリットは様々ですが、代表的なものには下記のようなものが挙げられます。
環境構築が不要
サーバーレス環境でプログラムを実行出来るため、環境構築作業をする手間がありません。
従来の方法であれば、サーバーの設定からミドルウェアの導入など時間も費用も掛かりましたが、AWS Lambdaを利用することでプログラム開発だけに集中することが出来るようになります。
サーバー管理も不要
AWS Lambdaはサーバーレスのサービスということで、環境構築だけでなく、サーバー管理も当然不要となります。
しかもソフトウェアのアップデートや物理サーバーのメンテナンスなどは、AWS側で全て対応してもらえるため、管理不要で常に最適な環境でプログラムを実行させることが可能です。
コスト削減
AWS Lambdaでは従量課金制が採用されており、リクエストの回数や実行時間に応じて料金が掛かる仕組みとなっています。
しかし、待機時間には費用は一切発生しないため、実行した分の費用しか掛かりません。
ユーザー側の利用方法にもよりますが、コスト削減に繋がることが多い点もメリットです。
自動スケーリング
AWS Lambdaには、アクセス数や負荷に応じて自動でサーバーのスケーリングを実施する機能が提供されています。
アクセスが少ない場合には、最小構成の設定でプログラムを実行出来ますし、瞬間的にアクセス数が増加する場合でもAWS側で自動でスケーリングを行ってくれるため、ユーザー側は一切サーバーの設定を気にすることなくシステムを運用することが可能です。
セキュリティ性の高さ
LambdaはAWS内部で完結しているため、インターネット上にサーバーが公開されておらず、どのような構成で構築されているのかも分からないため、安全性の高いサービスであると言えます。
ただし、AWSのサイトでも謳われているようにセキュリティはAWSとユーザーの共有責任であるため、ユーザー側でもセキュリティ面を意識したプログラムの作成を行う必要があります。
AWS Lambdaを使ってみよう
AWS Lambdaの基本となる使い方について確認しておきましょう。
AWS Lambdaを起動
AWSのコンソール画面でLambdaを起動するには、ヘッダー部分の「サービス」をクリックし、「コンピューティング」カテゴリに表示されている「Lambda」をクリックします。
ヘッダー部分の検索窓に「Lambda」と入力して起動することも可能です。
関数の作成
Lambdaのコンソール画面が開くと、既に作成済みの関数が一覧形式で表示されています。
新規で関数を作成する場合、「関数の作成」ボタンをクリックします。
次の画面では、関数を作成する上で利用するテンプレートや関数名、使用する言語などを設定することが出来ます。
今回はテンプレートの使用なし(一から作成)、関数名を「potepan-sample1」、使用する言語は「Node.js 14.x」で進めていきます。
実行ロールの変更なども出来ますが、今回はサンプルなのでデフォルトのままで「関数の作成」ボタンを実行します。
画像のように「正常に作成しました」と表示されれば、Lambdaの利用環境が整ったことになります。
Node.jsを実行するプログラミング言語として選択した場合、初期状態のindex.jsファイルが画像のように設定されています。
「Test」ボタンをクリックして、動作確認をしてみましょう。
イベントとして登録する必要があるので、初期状態から変更せず、イベント名に任意の値を設定し、「作成」ボタンをクリックします。
再度「Test」ボタンを実行すると、先程の登録したイベントでLambdaを実行することが出来ます。
今回のサンプルの場合、イベントで設定していた引数は処理に関係ないので、初期処理として記述されていた「Hello from Lambda!」が出力されていることをご確認頂けます。
さいごに: AWS Lambdaを活用してサーバーレスのプログラム開発に挑戦しよう
本記事では、AWS Lambdaの基本的な情報から実際の利用方法やメリットについてご紹介してきました。
記事内でもご紹介した通り、AWS Lambdaを利用することで、環境構築や運用の手間がなくなり、利用した分だけの料金しか掛からないためコスト削減も期待出来ます。
サーバーレスでのシステム開発は注目されており、今後も利用する機会が増えていくことも予想出来るため、まだAWS Lambdaを利用したことがない方は、この機会に一度試してみてはいかがでしょうか。
AWSのコンソール画面にログインした状態からの解説となるため、AWSのアカウントをお持ちでない方はあらかじめアカウントを作成しておく必要があります。