はじめに
こんにちは!開発部のMです。
今回はサーバーレスサービスの一つである「Lambda」についてご紹介します。
Lambdaとは
FaaSサービスの一つです。本来、アプリケーションを開発するためには自社内でサーバを準備しなければなりません。しかし、FaaSではインターネットを介してサーバを利用できるため、サーバレスな開発が実現します。
これはアプリ開発者によるサーバ管理が不要、存在を意識する必要がないということであり、サーバがなくてもアプリ開発ができるという意味ではありません。
AWS Lambdaの特徴
AWS Lambdaでは、まず実行したいアプリケーションコードをLambda関数で開発し、Lambda上にデプロイします。するとアプリケーションが実行可能になります。
サポート言語
Java、Go、PowerShell、Node.js、C#、Python、Rubyなど
その他のプログラミング言語を使用できるようにするための Runtime API も提供されています。
処理のトリガー
- ファイル処理: Amazon Simple Storage Service (Amazon S3) を使用して、アップロード後に Lambda データ処理をリアルタイムでトリガーします。
- ストリーム処理: Lambda と Amazon Kinesis を使用して、アプリケーションアクティビティの追跡、取引注文の処理、クリックストリーム分析、データクレンジング、ログのフィルタリング、インデックス作成、ソーシャルメディア分析、モノのインターネット (IoT) デバイスデータのテレメトリ、および計測のためにリアルタイムのストリーミングデータを処理します。
- ウェブアプリケーション: Lambda と他の AWS サービスを組み合わせて、自動的にスケールアップおよびスケールダウンし、複数のデータセンターにまたがる高可用性設定で実行される強力なウェブアプリケーションを構築します。
- IoT バックエンド: Lambda を使用してサーバーレスバックエンドを構築し、ウェブ、モバイル、IoT、およびサードパーティの API リクエストを処理します。
- モバイルバックエンド: Lambda と Amazon API Gateway を使用してバックエンドを構築し、API リクエストを認証して処理します。AWS Amplify を使用すると、iOS、Android、ウェブ、React Native フロントエンドと簡単に統合できます。
料金体系
関数へのリクエストの数とコードの実行時間に基づいて課金されます。Lambda は、コンソールからのテスト呼び出しを含む、イベント通知や呼び出しに応答して実行を開始するたびにリクエストを登録します。関数全体の合計リクエスト数に対して課金されます。
メリット
リクエスト数が変動的で処理の稼働時間が短時間であるシステムの場合コストパフォーマンスに優れています。
また一つのリクエストを処理している間に再度呼び出されると別のインスタンスが割り当てられ同時実行数の上限まで自動スケールアウトします。
デメリット
Lambdaの最大稼働時間は15分、メモリ容量は128MB〜10GBであるため軽量なステートレスアプリケーションには向いていますが常時稼働しているようなシステムやタイムアウトの上限15分よりも長い処理、10GBよりも多くのメモリを必要とする処理には向いていません。
最後に
AWS Lambdaは軽量なステートレスアプリケーションを求める方にはおすすめのサービスであるということがわかりました。ニーズに合わせて最適な提案ができるよう今後も様々なサービスをご紹介していきます。
はつかぜ株式会社では、IT学習や業務に役立つ情報を定期的にお届けしていきたいと思っています。
システム開発のお問い合わせ・ご相談はこちら
https://www.hatsukaze.co.jp/inquire/