irodimazak

!= '主に日々学んだ事を書き留めます。'

AWS Lamdaについて

AWSのLamdaについて調べていこうと思う。
そもそもLamdaとは何か?
あるブログの筆者からの引用です。

Lamdaとはサーバレスを実現する為のサービスである。
サーバレスとはプログラムを実行する為のサーバーがいらないと言う事らしい。前半はまあ良しとしても後半は絶対違う!😤

まずこのような概念を理解する事が大事なのでもう少し丁寧に調べる、

qiita.com

この方の記事はわかりやすかった。

サーバレスアーキテクチャーの概念

  • サーバーを常時起動しない
  • 何らかのトリガー=イベントの発生により動的にリソースが割り当てられ、事前に登録しておいたコードが実行される

ここで言う、事前に登録しておいたコード、この部分がLamdaにあたるのではないかなと私は思っている。 つまり

Lamdaとはサーバレスアーキテクチャーの構成の一部であり、何らかのトリガーが発火した時に実行される関数の事

であると自分は解釈しました。
脱線しますが、サーバレスって以下のようなメリット、デメリットがあるみたいです。

メリット

Functionごとの粒度による分割統治と、
ステートレスな設計(そうせざるを得ない)により、必然的に機能間の依存関係が極少化されます。
したがって、上手く設計できれば、変更に対して非常に柔軟な構造になります。

デメリット

コード実行後はインスタンスが消滅するため、ステートレスで機能間の依存性がない設計が必要となります。

Railsのようなフレームワークをばらした物を組み合わせてアプリケーションを作るからそうなるんだろうな🤔

以下はAWSからの引用です。

AWS Lambda はイベント発生時にお客様のコードを実行し、基盤となるコンピューティングリソースをお客様に代わって管理する、サーバーレスコンピューティングサービスです。AWS Lambda を使用すると、カスタムロジックを使って AWS の他のサービスを拡張することや、AWS の規模、パフォーマンス、セキュリティを活用して運用する自社のバックエンドサービスを作成することができます。AWS Lambda では、複数のイベント (Amazon API Gateway 経由の HTTP リクエスト、Amazon S3 バケット内のオブジェクト変更、Amazon DynamoDB 内のテーブル更新、AWS Step Functions 内の状態遷移など) に応答して、自動的にコードが実行されます。

概念がわかってくると読みづらい公式の説明も理解しやすくなってくるよね!
これからはこういったPaasやFaasなどのサービスを使ってWebアプリケーションを作って行く事が主流になっていくと思うので少しづつ進めていかなくては。