SlideShare a Scribd company logo
serverless frameworkで
お手軽Lambda運用
2017.10.14 nseg #93 於 GEEKLAB.NAGANO
自己紹介
にしざわこういち
@koty
GEEKLAB.NAGANO 管理人見習い
SIer(Javaとか.NETとか)→現職(Python/Django/AWS)
FaaS: Function as a Service
● 関数実行基盤
● 最近よく耳にする
AWS Lambda
● AWSのFaaS
● node/Java/C#(.NET Core)/Python を使用可能
● サーバーレス≒デーモンレス
● 状態を持たず、callされるたびにプロセスが上がっては落ちる(実際にはちょっと違う)
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
AWS Lambda
● https://aws.amazon.com/jp/lambda/pricing/
○ “リクエストのうち毎月最初の 1,000,000 件は無料”
○ “その後は 0.20 USD/1,000,000 件のリクエスト(0.0000002 USD/リクエスト)”
○ 安い
● http経由でcallしたい場合は、API-Gatewayを通す必要がある
AWS Lambda
● API Gatewayの他にも様々な起動トリガーを使える
● CloudWatch Eventsによるcron実行が便利
○ ちょっとした定期実行処理のための EC2が不要に
● RDBとの相性の悪さが言われていたが、最近は良く
なってきている
運用しているLambda
● http://b-sw.co/hokuto/index.html
○ 一日一回各サイトをクロールしてスクレイピング ←これがLambda関数
○ 結果をjsonでS3に保存
○ 上記静的サイトでjsonを読み取り
○ https://github.com/koty/hokuto_program_scraper
● https://twitter.com/glnagano/
○ GEEKLAB.NAGANO関連のイベント情報を定期的に tweet
○ https://github.com/geeklabnagano/glnagano-lambda-bot
● 社内で使っているシステムと Slackとの連携いろいろ
deployが面倒
● 簡単な処理(EC2を起動するとか)であれば、AWS管理コンソールに直接処理を書
けば良いが、、、
● 外部パッケージを使うときは、当該パッケージを含むzipを作る必要がある
● →面倒。herokuのようにrequirements.txt(rubyで言うgemfile)をプラットフォーム
側でダウンロードしてほしい
deployツールを使う
https://serverless.com
“The Serverless Framework is a CLI tool that
allows users to build & deploy auto-scaling,
pay-per-execution, event-driven functions.”
install〜deploy
npm install -g serverless
serverless create -t aws-python3 -p serverless-test
vim ~/.aws/credentials
serverless deploy --aws-profile koty
実行してみる
serverless invoke -f hello --aws-profile koty
/tmp に書き込んでみる
サーバーはあった
Amazon Linux ベースのコンテナ上で動くホストプロセスがいるらしい
requirements.txt を含むアプリのdeploy
● pip install時にコンパイルが走るパッケージはAmazon Linux上でzipを作る必
要がある
● Serverless Python Requirementsというプラグインを使うとlambdaのdockerコ
ンテナ上でzipを作ってくれる
参考:https://qiita.com/mkisono/items/f04297775275c6b50774
5275c6b50774
dockerコンテナ上でzipを作ってくれる利点
● プラグイン内で以下のdockerイメージを利用
  https://github.com/lambci/docker-lambda
pip install時にビルドが行われるパッケージ(lxmlとか)も安心。これまではEC2上で
Lambdaにdeployするzipを作る必要があった。
5275c6b50774
cronの登録
serverless.yml
functions:
hello:
handler: handler.handle
- schedule: cron(50 * ? * * *)
参考:https://github.com/geeklabnagano/glnagano-lambda-bot/blob/master/serverless.yml
環境変数の設定
serverless.yml
provider:
environment:
CONSUMER_KEY: ${file(./serverless.env.yml):CONSUMER_KEY}
CONSUMER_SECRET: ${file(./serverless.env.yml):CONSUMER_SECRET}
ACCESS_TOKEN: ${file(./serverless.env.yml):ACCESS_TOKEN}
ACCESS_TOKEN_SECRET: ${file(./serverless.env.yml):ACCESS_TOKEN_SECRET}
DOCO_API_KEY: ${file(./serverless.env.yml):DOCO_API_KEY}
AWS_S3_BUCKET_NAME: ${file(./serverless.env.yml):AWS_S3_BUCKET_NAME}
参考:https://github.com/geeklabnagano/glnagano-lambda-bot/blob/master/serverless.yml
ヒミツの値はGit管理外のファイルから読み込み
(もっとスマートな書き方あれば教えてください。。)
API Gateway の設定
serverless.yml
functions:
create:
handler: todos/create.create
events:
- http:
path: todos
method: post
cors: true
参考: https://github.com/serverless/examples/blob/master/aws-python-rest-api-with-dynamodb/serverless.yml
Djangoを動かしてみる
● serverless-wsgi というプラグインを利用
https://github.com/logandk/serverless-wsgi
functions:
api:
handler: wsgi.handler
events:
- http: ANY /
- http: ANY {proxy+}
参考:https://github.com/koty/dj-lambda-sample
ルーティングはDjango側に委譲
Djangoを動かしてみる
● ↓進捗。。。
ここまでできればまあ動きそう。
おしまい
● いろんな事例を聞きたい

More Related Content

PPTX
Serverless frameworkを使ってみた話 at #nseg #90
PDF
前座Lambda
PDF
AWS Lambdaで作るクローラー/スクレイピング
PPTX
はじめてのAWS Lambda
PDF
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
PPTX
Lambda Layerの権限制御を試してみた
PDF
Alibaba Cloud Serverless
PDF
Single Command Deployのための gradle-aws-plugin講座
Serverless frameworkを使ってみた話 at #nseg #90
前座Lambda
AWS Lambdaで作るクローラー/スクレイピング
はじめてのAWS Lambda
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
Lambda Layerの権限制御を試してみた
Alibaba Cloud Serverless
Single Command Deployのための gradle-aws-plugin講座

What's hot (20)

PPTX
エンジニアのための勉強会 #4 『Serverless』
PDF
Leap MotionとLambdaで「第九」を鳴らしてみる
PDF
SQLによるDynamoDBの操作
PDF
画像処理をAWS LambdaのPythonで!
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
PDF
Lambdaによるクラウド型言語の実装
PPTX
node.jsでS3にバックアップを送り続けるコードを書いてみた話。Node s3maの紹介-jawsugさいたま
PPTX
Serverless Framework 使ってる話(node.js)
PDF
速習 AWS Lambda
PDF
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
PDF
What's new with Serverless
PDF
20140930 anything as_code
PPTX
サーバーレスアプリケーションの作り方
PDF
lambda-lgtm
PDF
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
PDF
serverless framework + AWS Lambda with Python
PPTX
AWSエンジニアが、 経理部門と仲良くなれるTips
PDF
当社のawsへの取組
PDF
DynamoDBのまえにキャッシュおく奴
PDF
コンテナで作れるFaaS
エンジニアのための勉強会 #4 『Serverless』
Leap MotionとLambdaで「第九」を鳴らしてみる
SQLによるDynamoDBの操作
画像処理をAWS LambdaのPythonで!
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
Lambdaによるクラウド型言語の実装
node.jsでS3にバックアップを送り続けるコードを書いてみた話。Node s3maの紹介-jawsugさいたま
Serverless Framework 使ってる話(node.js)
速習 AWS Lambda
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
What's new with Serverless
20140930 anything as_code
サーバーレスアプリケーションの作り方
lambda-lgtm
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
serverless framework + AWS Lambda with Python
AWSエンジニアが、 経理部門と仲良くなれるTips
当社のawsへの取組
DynamoDBのまえにキャッシュおく奴
コンテナで作れるFaaS
Ad

Similar to Serverless frameworkでお手軽lambda運用 at #nseg #93 (20)

PDF
Serverless
PPTX
サーバーレスで ガチ本番運用までやってるお話し
PDF
aws mackerel twilio_handson_public
PDF
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
PDF
Serverless Frameworkを本番環境に投入するために
PPTX
serverless
PDF
Serverlessでサイト監視
PDF
Talk: serverless-express
PDF
[20171116 三木会] AWSを利用したサーバーレス開発の実践 by アイレット株式会社 cloudpack事業部 高橋 直樹 氏
PDF
serverless
PDF
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
PDF
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
PDF
Serverless Anti-Patterns
PPTX
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
PDF
サーバーレスの今とこれから
PDF
Serverless Meetup Japan Virtual #6
PDF
20200728 AWS Black Belt Online Seminar What's New in Serverless
PPTX
20191018 AWS Lambda
PPTX
Start serverless
PPTX
Introducing C# in AWS Lambda
Serverless
サーバーレスで ガチ本番運用までやってるお話し
aws mackerel twilio_handson_public
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
Serverless Frameworkを本番環境に投入するために
serverless
Serverlessでサイト監視
Talk: serverless-express
[20171116 三木会] AWSを利用したサーバーレス開発の実践 by アイレット株式会社 cloudpack事業部 高橋 直樹 氏
serverless
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
AWS Lambdaによるサーバレスアーキテクチャの基本に触れてみよう!【kintone & AWS ハンズオン祭り2015秋 B-2】
Serverless Anti-Patterns
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
サーバーレスの今とこれから
Serverless Meetup Japan Virtual #6
20200728 AWS Black Belt Online Seminar What's New in Serverless
20191018 AWS Lambda
Start serverless
Introducing C# in AWS Lambda
Ad

More from ko ty (14)

PDF
DjangoのORMことはじめ
PDF
普段Djangoを使っている人間がruby on railsを勉強してみた話
PDF
AWS Lambda を使ってみた話 at づや会Vol.3
PDF
データベース実践入門読書会スペシャル #nseg
PDF
Open data とは in open data day
PDF
Source treeの紹介
PDF
NSEG第33回勉強会
PDF
Nseg第32回勉強会
PDF
NSEG第25回勉強会
PDF
Tddbc nagano0.1(nseg第20回勉強会)
PDF
NSEG第11回勉強会
PDF
nseg第5回勉強会
PDF
NSEG第3回勉強会
PDF
第2回nseg slideshare
DjangoのORMことはじめ
普段Djangoを使っている人間がruby on railsを勉強してみた話
AWS Lambda を使ってみた話 at づや会Vol.3
データベース実践入門読書会スペシャル #nseg
Open data とは in open data day
Source treeの紹介
NSEG第33回勉強会
Nseg第32回勉強会
NSEG第25回勉強会
Tddbc nagano0.1(nseg第20回勉強会)
NSEG第11回勉強会
nseg第5回勉強会
NSEG第3回勉強会
第2回nseg slideshare

Serverless frameworkでお手軽lambda運用 at #nseg #93