miyaz
勉強会
AWS Lambdaとは
簡単に言うと、
「サーバレス(サーバ不要)で、何かの
イベントをトリガとして、予め登録した
関数を実行するサービス」です
→最近流行りの
「Serverless Architecture」
を実現する手段の代表格
使用例
AWS 公式のLambda紹介ページ抜粋
引用: http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
➢S3 バケットまたは DynamoDB テーブルのデータ
変更などのイベントに対応して AWS Lambda がコー
ドを実行するイベント駆動型コンピューティングサ
ービスとして。
➢API Gateway を使用した HTTP リクエストまたは
AWS SDK を使用した API 呼び出しに対応してコード
を実行するコンピューティングサービスとして。
メリット
➢サーバ管理不要
➢継続的スケーリング
➢100msごとの処理時間で課金
✓ めっちゃ安い
料金例
➢512MBのメモリを割り当て、3,000,000回実
行し、毎回の実行時間が1秒間だった場合
✓ 月額 $18.74
➢128MBのメモリ量を割り当てて30,000,000
回実行し、毎回の実行時間が200ミリ秒間
だった場合
✓ 月額 $11.63
参考: http://qiita.com/Keisuke69/items/e3f79b50b6039175401b
作り方
➢ lambda関数に使用できる言語は、
Python、Java、nodejsの3つ
➢ Blueprintと呼ばれる、イベントソース
設定とLambda関数、のサンプルが多
数あり、それを使うと簡単
slackで絞ると4つでてきた。
全部で61ありました
作ってみた
➢ Slack IncomingWebhook作成
➢ KMS(IAM暗号化キー)でキー作成
➢ lambda関数作成
➢ blueprint[cloudwatch-alarm-to-slack]が近い
➢ CloudWatch Events作成
➢ lambda関数書き換え
➢ KMS暗号化文字列、通知先チャンネル名
↑下記サイト通りにやって少しだけコード修正しただけ
参考)https://gist.github.com/rantav/c096294f6f35c45155b4
使えそうな用途
➢ さくっと構築の起動イベントをトリガとして
DNS(Route53)設定
➢ 定時にEBSスナップショット取得
➢ 定時にインスタンス起動/停止&ELBへ追加/削除
→日中帯起動、夜間停止など
➢ AutoScalingによるインスタンス増減をSlack通知
➢ 本番環境コンソールログインをSlack通知
➢ SlackのSlashコマンドで情報取得→表示
おわり

Lambda勉強会