見出し画像

社内向けAWS勉強会コンテンツ紹介 Lambda編

この7月から週1回、社内向けAWS勉強会を開いています。
クラウドインフラ技術に触れる経験の少ないメンバー向けに、学習機会を提供する目的ではじめました。
基本的にはもくもくとハンズオンをやってもらう自学自習スタイルです。

第3回の今回は、Lambdaをつかってサーバーレスでのプログラム実行をもくもくする会を開催しました。
具体的にどんなことをやったか紹介します。


S3への画像アップロードをトリガーにLambda蹴ってサムネイル画像を作るハンズオン@Python



こんなものを作る

1. ユーザーがS3バケットにファイルをアップロード
2. S3オブジェクト生成をトリガーにLambda起動
3. Lambda関数内でサムネイル画像を作成
4. Lambda関数内で別バケットにアップロード


ハンズオンでやること

- S3バケット作成
- Lambda関数作成
- テスト用トリガー作成
- 実行モニタリング、ログ参照



個人的に思うLambdaのいいとこ/わるいとこ


いいとこ

・インフラ環境用意せずに気軽にリモートでプログラム実行できる
・実際に関数動いてる時間に応じての従量課金なので、インスタンス落とし忘れとかでうっかり請求されない
・AWSサービス内の様々なイベント(S3オブジェクト生成やCodeCommit、DynamoDBレコード追加など)をトリガーに発火できる


わるいとこ

・Lambda環境じゃないと出ないエラーに遭遇する
・デバッグしづらい、ローカルに環境作るの大変
・Webアプリのバックエンドとして利用したいけどコールドスタートが遅い
・RDBと相性悪い
・Javaだと起動が遅い


ひとこと

サーバレスはWebアプリとしてだと使いどころが難しいけれど、かんたんなバッチ処理とかは向いてるんじゃないですかね〜
Pythonも複数人での大規模開発とかは絶対やりたくないけど、こういう単純なバッチとかキカイガクシューとかには向いてると思います


前にPythonで簡単なバッチを作って遊ん…楽しんだ例


この記事が気に入ったらサポートをしてみませんか?