Lambda * XXX
アウトライン
- Lambdaってなに
- VPC対応したね
- 使い道は?
- 他AWSサービスとの相性は?
- まとめ
Lambdaってなに
ご存知イベント駆動のAWSサービス
前提:Python + boto3以外つかったことない
VPC対応したね
VPC対応した = RDSつなげられるやん!
ENI起動時間かかりすぎ(1分くらい見といたほうがいい)
公式でENI起動時間に対しての言及はなし
使い道は?
- ソース管理の仕組みに難儀してる = Gitでヒョイってしたいときに手間
- なんか起きたらなんか起こしたいって時は真っ先に導入してみるとよさげ
他AWSサービスとの相性は?
- EC2
- AMIバックアップ用途で使ってる
- cronつかってなんかするのとトレードオフ関係(要試算)
- 1回/1dayとかならLambda
- 1回/5minとかならcron
- RDS
- 問題なし
- RDS + Lambdaってなんかしっくりこない感ある
- RDSのパフォーマンスチューニング必須感のせい?
- S3
- なんかしらをS3にぶっこむのは楽
- リアルタイム系はちょっとつらみある
- リアルタイム系はKinesis Firehoseつかえば、S3にデータ流し込んでくれる。(ただし東京Regionまだ無いし、Kinesisよりもお高い。)
- API Gateway
- API Gateway自身の10秒縛りが結構ネック
- VPC対応すると初回アクセスで死ぬ
- 寝そうなLambda叩き起こす(ポーリングさせる)Lambdaを別で作らないといけない
- Webアプリのモック作るのとかは楽勝
- DynamoDB
- 今のところ特に問題なし
- SES
- メール受信駆動でなんかやるときも楽勝
- Java版じゃないとメール保存にS3使うときの暗号化死んでるから注意
- CloudWatch Logs
- CloudWatch Logs自体のUIにつらみある
- ちゃんとInvocation CountとかInvocation durationとかは出てるので、動作確認は容易
- Cognito
- 超未来ひろがる系
- クライアントストレージ使いたい、同期したい時にそれ用の設計ちゃんとできれば強そう
- Kinesis
- Kinesisを経由させるとJSONの縛りがなくなるので便利。(Pyhon 2.7の場合。ほかはわかんねーっす)
- パフォーマンスがKinesisに依存してしまうのでチューニング時に注意が必要
- Redshift
- Python2.7使ってアクセスしたい場合はpsycopg2をソースからコンパイルしないといけないのでちょっとめんどくさい
まとめ
- デプロイもテストも楽チンすぎて、仕事してない感ある
- なんかやりたいとき、すぐに試せるお手軽感はたまらない
- 速度求めてメモリあげてパフォーマンスチューニングしてーっていう謎の方向に進みがちなので、そうなるくらいなら別の選択肢にすぐうつったほうがいい
余談
スライドネタのアウトラインをそのまま公開する試みでした。
- MarkDownでアウトライン書く
- 中身を太らせる
- テンプレパワポ(GooglePresentation)にペタペタコピペ
の手順でいつも登壇資料つくるので、上記の 2.
の段階でござるよ。
無許可の丸パクリはやーよ。
feat. aoike