AWS

AWS|Lambdaについて

AWS Lambda(ラムダ)は、ソースコードさえ用意すれば、そのプログラムを実行することができるサービス。プログラムを実行するための環境を構築する必要も管理する必要もない。開発者はサーバーの管理やメンテナンスから開放され、プログラム開発に注力することができる。Lambdaの特徴としては以下。

  • サーバーの管理が不要
  • 一般的な言語のサポート
  • 並行処理/スケーリング
  • 柔軟なリソース設定
  • ミリ秒単位の無駄のない課金
  • 他のAWSサーバビスとの連携

Lambdaの特徴

サーバーの構築が不要

Lambdaでプログラムを実行するのは非常に簡単。実行したいプログラムのランタイムを選択してソースコードをアップロードすれば、もう実行できる。オペレーティングシステムの用意、実行するためのミドルウェアのインストール、環境設定は不要。サーバー構築や環境の準備をすることなく、すぐに開発を始められる。

サーバーの管理が不要

Lambdaを使用すれば、サーバーの運用から開放され、開発に注力できる。以下のようなサーバー管理が不要。

  • オペレーティングシステムの更新
  • セキュリティパッチの運用
  • ディスク容量の追加
  • オペレーティングシステム、ミドルウェアのメンテナンス
  • 冗長化、障害時の復旧
  • スケーラビリティの確保
  • 障害を考慮した設計
  • 実行エラー時のリトライ
  • ジョブが設定時間に集中することへの考慮

一般的な言語のサポート

2019年11月現在では、Lambdaでは以下の言語でコードを実行することができる。

  • C#
  • PowerShell
  • Go
  • Java
  • Node.js
  • Python
  • Ruby

並行処理/スケーリング

  • リクエストに応じて水平的にスケーリングして、並行で関数が実行される。
  • Auto Scalingを設定する必要がない。
  • リクエストやトリガーによってコードが実行されるため、従来のサーバーのようにリクエストを待っている間に稼働し続けておく必要がない。

柔軟なリソース設定

メモリを128MBから3008MBの間で、64GB刻みで設定できる。CPU性能はメモリに比例して割り当てられる。

ミリ秒単位の無駄のない課金

  • 実行されている時間に対してミリ秒単位の無駄のない課金がなされる。
  • 実行されていない待機時間には課金されない。

他のAWSサーバビスとの連携

Lambdaは、たとえば下記のようなイベントをトリガーとして実行される。

  • 特定の時間になったとき(CloudWatch Events)
  • S3にデータがアップロードされたとき
  • DynamoDBに新しいアイテムが書き込まれたとき
  • Auto Scalingアクションが実行されたとき
  • Webページでボタンが押されたとき
  • APIが呼び出されたとき
  • 「Alexa、◯◯について教えて」と言ったとき
  • AWSサービスの処理を簡単に自動化できる。
  • AWSサービスからのトリガーを使用することで、イベントからLambdaを実行できる。