【AWS】Lambda ~ 基礎知識編 ~

■ はじめに

AWS Lambda の前に、サーバレス を学んでいく。

 ■ サーバレス アーキテクチャ(Serverless Architecture)

 * ユーザは、サーバを意識せずに、利用可能なサービスを活用できるアーキテクチャ
  => サーバを必要としないわけではないらしい

 主なサービス名

 * AWS Lambda(アマゾン)
 * Azure Functions(マイクロソフト)
 * Google Cloud Functions(グーグル)
 * OpenWhisk(IBM)

 補足

Amazon AWS には、他にも、「サーバレス」なサービスがある 
 * Amazon Athena (アテナ)
  => Lambdaが、サーバレスに、プログラム実行環境を提供するなら、
     Athenaは、サーバレスに、SQLクエリ発行できる版?
  => Athena に関する詳細は、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2020/06/17/173717

 ■ 関連用語

 PaaS(Platform as a Service)

 * リクエストリプライ方式(リクエストごとにアプリケーション全体を起動・終了)

 FaaS(Function as a Service)

AWS Lambdaが該当 
 * イベントドリンブン方式(必要なサービス毎に起動・終了)

 AWS SAM(AWS Serverless Application Model)

AWS Lambdaが該当 
 * AWS サーバーレスアプリケーションモデル
 * AWS CloudFormation を拡張して、サーバーレスアプリに必要な AWS Lambda などを定義する簡略化できる

https://aws.amazon.com/jp/about-aws/whats-new/2016/11/introducing-the-aws-serverless-application-model/
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/deploying-lambda-apps.html
https://aws.amazon.com/jp/blogs/news/new-for-aws-lambda-environment-variables-and-serverless-application-model/

 ■ AWS Lambda

* サーバレスのプログラム実行環境
* Lambda:ラムダ

 利点

* サーバー/インフラ管理が不要
* スケールについて、運用者が考える必要がない

 料金体系

 * プログラムを実行した「時間(100ミリ秒単位)」×「回数」で課金
  => 使わなかったら、お金は掛からない(使った分だけ払えばいい)
 * 詳しくは、以下の公式サイトを参照のこと

https://aws.amazon.com/jp/lambda/pricing/
 公式サイト
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html

 ■ 今後に役立ちそうなこと

 EC2をScheduleイベントで自動起動/停止
 * EC2 を24時間起動しなくてもいい場合(【例】平日 8:00〜19:00、土日終日停止)に、
   LambdaのScheduleイベントを使うと、月々の料金を節約できる模様

http://dev.classmethod.jp/cloud/aws/lambda-scheduled-event-updown/
http://tech.machiiro.jp/entry/2016/08/29/152844
https://geeknavi.net/aws/ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E8%87%AA%E5%8B%95%E8%B5%B7%E5%8B%95%E3%83%BB%E8%87%AA%E5%8B%95
http://takemikami.com/archives/1326/
公式サイト
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/java-programming-model.html
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/get-started-step4-optional.html
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/create-deployment-pkg-zip-java.html#create-deployment-pkg-zip-java-without-central-repository

 参考文献

http://www.itmedia.co.jp/enterprise/articles/1701/16/news026.html
http://www.atmarkit.co.jp/ait/articles/1702/22/news016.html
http://dev.classmethod.jp/cloud/aws/lambda-function-in-java/
http://qiita.com/toshihirock/items/d37ee8a41a11f2c4ffb2
http://qiita.com/yokobonbon/items/64baf815f000bcb8abec
http://ochi-lab.blogspot.jp/2015/07/eclipseaws-lambda-functionjava.html

関連記事

Lambda ~ Python / 入門編 ~
https://dk521123.hatenablog.com/entry/2021/10/07/103317
Lambda ~ Python / S3トリガー ~
https://dk521123.hatenablog.com/entry/2024/05/23/162229
Lambda ~ Python / 外部モジュール追加 ~
https://dk521123.hatenablog.com/entry/2024/05/25/005456
Lambda ~ Java / サーバサイド編 ~
https://dk521123.hatenablog.com/entry/2017/05/22/233340
Lambda ~ JavaScript / クライアントサイド編 ~
https://dk521123.hatenablog.com/entry/2017/05/25/233100
Lambda ~ Java / EC2 を操作する ~
https://dk521123.hatenablog.com/entry/2017/12/11/225605
Lambda ~ Java / EC2 を取得する ~
https://dk521123.hatenablog.com/entry/2017/12/24/232542
Lambda ~ Lambda で気を付ける事項 ~
https://dk521123.hatenablog.com/entry/2018/02/04/233700
Lambda のトラブルシュート
https://dk521123.hatenablog.com/entry/2017/12/16/231714
Serverless Framework ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/11/02/000200
Serverless Framework ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/11/03/234825
Amazon API Gateway ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/09/06/131820