Lambda(ラムダ)関数を利用して、AWSのサービスへの理解を深めたいと思いました。
理由は、AWS認定試験でよく出題されるのに、自分自身があまり理解できていなかった。また、サーバを立てたりせず、Pythonコードを用意すれば簡単に処理を実装できる(と思っていた。。。)からです!
相変わらず七転八倒でとても実務でいかせる内容ではないかもしれませんが、備忘も含めて共有させていただければと思います。
目次
用語理解:サーバレス・Lambda関数とは何か?
まず、基本的な用語の理解やサーバレスの背景についてまとめたいと思います。
①サーバレスとは?
サーバレスは、アプリケーションを実行する際、利用者側が準備・管理するサーバが不要。という意味の用語です。
サーバが存在しないか?というとそうではありません。
サーバ自体は、AWSが管理してくれています。
なぜ、サーバレスが注目されているか?
システム構築する際、ビジネス価値に直接繋がらない作業が多岐にわたります。
- サーバ設定
- セキュリティパッチの適用
- 耐障害性の検討。。。など
こういった作業を、AWSにお任せすることにより、自分の提供するサービスや構築したいシステムに集中することができる。というメリットがあります。
また、自動でスケールする。というところも嬉しいところです。
サーバを準備してシステムを構築しようと思うと、その分コストがかかります(サーバ維持のための電気代やシステムに人気が出てきた時のスケールなど)。
そういった時に、サーバレスなら、自動でスケールして人気が出てきたら自動でスケールアウト。アクセスが落ち着いてきたら、スケールインする。ということが容易になります。
サーバレスのデメリット
AWSのマネージドサービスであるため、自分でミドルウェアを選択したりすることができず、構築に対する自由度は低いです。
Lambda関数とは?どういったサービスか。
Lambda関数はサーバレスの中心となるサービスです。認定試験でもよく設問で登場します。
Lambda関数では、よく用いられる開発言語(Java/Python,,,など)を利用して処理を実装することができます。
コンソール画面で記述できるのでローカルに実行環境を用意する必要はありません。
Lambda関数たんといで利用することもできますが、通常はサービスを組み合わせて実行していきます。
※例えば、S3イベントをトリガーにしてLambda関数を起動して、S3内のファイルを処理する。など。
EOF
Lambda関数やサーバレスについて、基本的な用語等をまとめました。
ご参照いただければ、幸いです。