自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWS 初めてのLambda(本当の初心者向け1)

AWSでサーバレスを実装しようとした際の代表的なサービスにLambda(らむだ)があります。
今回は、本当に初心者向けの記事を書きたいと思います。
というのも、私も「Lambdaとは何ぞや?」ってところの基本中の基本が中々イメージがつかめず苦戦したので、備忘も兼ね記載しております。

 

■Lambdaとは?

AWS Lambda はサーバーをプロビジョニングしたり管理する必要なくコードを実行できるコンピューティングサービスです。 AWS Lambda は必要時にのみてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケーリングします。使用したコンピューティング時間に対してのみお支払いいただきます-

 

AWS Lambda とは - AWS Lambda


いきなりLambdaの説明したのは「上記サイトだけをみてLambdaのイメージをつかめる人」用です。
私は残念ながらイメージすら掴めなかったので。笑

とうことで、まずは用語の説明をしたいと思います。

■サーバレスとは?

言葉通りにはなりますが、「サーバを用意しない」ことです。
もう少し詳細を話すと、本来何かしらの処理を行うためにはサーバが必要です。
「サーバ上でプログラムを書いて、実行して」というのが一般的でした。

この際、大変になるのはサーバを用意/運用/保守することです。
用意・・・CPU、メモリ、ディスク設計等、サーバを用意するにも考慮すべきことが多々あります。
運用/保守・・・スペック不足やパッチ適用等のメンテナンスが発生し、それが重荷になることが多々あります。

といった具合に、サーバがあることによる負担、弊害があります。
この負担、弊害から解放されるための概念が「サーバレス」です。

■ランタイムとは?

「プログラミング言語」のことです。「プラグラムを実行する環境」と読み替えてもらって差し支えないかと思います。
例としては、「ランタイムにPythonを選択する」というような使い方をします。
※PythonじゃなくてもNode.jsやJavaやC#等、Lambdaで使用できる言語は複数あります。

■トリガーとは?

トリガーとは、「Lambdaが受け取ったイベント」のことです。
流れは以下の感じです。

①とあるイベント発生
②Lambdaが受け取る
③lambdaに設定した処理が自動的に実行される

この際の上記①のことをトリガーと言います。
トリガーにはAWSサービスとして複数をサポートしており、
S3、SQS、SNS等色々あります。

■イベントとは?

トリガーのところでシレっと用語を出していますが、
イベントとは、「何かしらの状態」のことです。
例えば、
・S3にオブジェクトを登録した時
・CloudWatchEventに登録したスケジュール(ルール)を迎えた時
・SQSにキューが投入された時
等、何かしらの状態になった時にLambdaを動かしたい!みたいなときに使う用語です。
言葉を定義しようとすると混乱するのですが、例を見てもらうとわかりやすいかと思います。

■Lambdaの実体は?

少しLambdaの深い部分になりますが、サーバレスとはいえ、
Lambdaを動かしているサーバ自体は存在しています。
ユーザが意識する必要がないってだけです。
使用するプログラミング言語(やバージョン)によってサーバの種類が変わりますが、
主に、AmazonLinux、AmazonLinux2が利用されています。

AWS Lambda ランタイム - AWS Lambda

■Lambdaのユースケースは?

Lambda を使用すると、画像のサムネイル作成、ビデオのコード変換、ファイルのインデックス作成、ログの処理、コンテンツの検証、およびデータの収集とフィルタリングをリアルタイムで実行できます。

 

f:id:guri2o1667:20200702134805p:plain


このように、何かしらの状態になった時(=上記の場合、S3に画像がアップロードされた時)、Lambdaがそれを検知して、指定していた処理を実行する(=上記の場合、画像リサイズ)のように使用することができます。

■参考サイト

サーバーレスって何が便利なの ? AWS でサーバーレスを構築するためのサービスをグラレコで解説 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

 

AWS Lambda(イベント発生時にコードを実行)| AWS


以上です。次回はLambdaを実際に使ってみたいと思います。 

 

www.guri2o1667.work

www.guri2o1667.work

 

www.guri2o1667.work