SlideShare a Scribd company logo
1 of 46
Serverless Framework使ってる話
@tnaototo
Naoto Teruya
RyukyuInteractive, Inc.
Developer
- 琉球インタラクティブ所属
- エンジニアやってます
- インフラも見てます
- マネジメントも(ちょっと)やってます
- めんどくさがり
- ビール大好き
- スプラトゥーン大好き
- Ingressやってます(が、ルールわかってない)
自己紹介
Naoto Teruya (@tnaototo)
- なんでServerless Framework?
- v0.5.6の使い方
- 失敗したこと
話すこと
- AWS Lambda + Node.jsでの開発
- v1.0について
話さないこと
- AWS Lambda + Node.jsでの開発
- v1.0について
話さないこと
本スライド及びDemoは
Serverless Framework v0.5.6
で記載しています
注意点
- 導入経緯
- Serverless Frameworkとは
- Demo
- 失敗したことなどなど
- まとめ
アジェンダ
導入経緯
- 行動履歴を取得したい
導入経緯
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
導入経緯
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
導入経緯
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
- API Gateway + AWS Lambdaで動
作確認はできている(手動)
導入経緯
イメージ
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
- API Gateway + AWS Lambdaで動
作確認はできている(手動)
- 手動でポチポチしたくない
導入経緯
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
- API Gateway + AWS Lambdaで動
作確認はできている(手動)
- 手動でポチポチしたくない
- コードで管理したい(簡単に・・)
導入経緯
ググる
ありました
Serverless Framework
https://github.com/serverless/serverless
- API Gateway、Lambdaのデプロイ
- Lambdaの実行
- Lambdaのログ表示
- ステージでの管理
- IAM Roleの作成
などなど
Serverless Frameworkでできること
- API Gateway、Lambdaのデプロイ
- Lambdaの実行
- Lambdaのログ表示
- ステージでの管理
- IAM Roleの作成
などなど
Serverless Frameworkでできること
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
- API Gateway + AWS Lambdaで動
作確認はできている(手動)
- 手動でポチポチしたくない
- コードで管理したい(簡単に・・)
導入経緯
- 行動履歴を取得したい
- リアルタイムじゃないからSQSに
- EC2で受け口作るのはちょっと・・
- API Gateway + AWS Lambdaで動
作確認はできている(手動)
- 手動でポチポチしたくない
- コードで管理したい
導入経緯
解消できた
ステキすぎる・・
Demo
- インストール
- Lambdaファンクション作成
- Lambdaデプロイ
- API Gatewayにデプロイ
※事前に実行用IAM Userを作る必要あり
Demo
$ npm install serverless@0.5.6 -g
$ sls -v
$ sls project create -s dev
$ tree
$ sls function create functions/demo
$ tree
$ sls function deploy -s dev
$ sls endpoint deploy -s dev
Demo
ステキさが伝わりました?
Demo その2
- API + 簡易フォーム
- もちろんサーバーレス!
- G◯◯gle F◯rmでもいいけど、
独自デザインで(ry
- 落ちてると面倒なことに
- クレームになりやすい
Demo その2 – お問い合わせAPI
Demo その2 – お問い合わせAPI
Demo その2 – お問い合わせAPI
ソース
https://github.com/naotty/contact-api
※不具合があっても自己責任でお願いします
Demo その2 – お問い合わせAPI
事前準備
- Serverless Framework用IAM User
- SNS Topic
- SubscriptionはEmail
Demo その2 – お問い合わせAPI
デプロイ・動作確認
(Readmeの内容をなぞります・・)
Demo その2 – お問い合わせAPI
ステキですね
失敗したことなどなど
- _metaにあるファイルはデフォルト
で.gitignore されているので、作り直し
で消える
失敗したことなどなど
- プロジェクトを消す
失敗したことなどなど
- $ sls project remove で消えることは
消えるが、全ステージが消える・・
- _metaの中身は消えるので、ちゃん
とステージを指定する
- $ sls project remove -s dev
- API Gatewayデプロイ時の -a オプション
失敗したことなどなど
- このオプションを付けないとOPTIONS
メソッドが生成されず、CORSやx-api-
keyカスタムヘッダーを使う時に403エ
ラーになる
- 新しくステージを作る
失敗したことなどなど
- 変数ファイルが作成時に作られるため、
それを見る箇所があるとエラーで止まる
- 対策
CloudFormation無しで作る
$ sls project create -c true
変数セットしてから
$ sls resources deploy -s dev
- 付与しないといけない権限が強い
- APIキーの設定は手動
- API Gateway、Lambdaの削除は手動
- 消えゆくv0.5・・
その他
- Serverless Framework使えば
API Gateway・Lambdaをコード管理可能
- デプロイも簡単
- サーバーレス最高
まとめ
質問ありますか?
ご清聴ありがとうございました
焦るんじゃない、
俺は開発に集中したいだけなんだ

More Related Content

What's hot

Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Terui Masashi
 
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)真吾 吉田
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜真吾 吉田
 
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するAWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するmizugokoro
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪真吾 吉田
 
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia TalkJAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk真吾 吉田
 
Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化kuro kuro
 
VRディープ座談会 introduction ojima
VRディープ座談会 introduction ojimaVRディープ座談会 introduction ojima
VRディープ座談会 introduction ojimaHideki Ojima
 
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
サーバレスアーキテクチャを実戦投入するにあたって知るべきことサーバレスアーキテクチャを実戦投入するにあたって知るべきこと
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと暁 三宅
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API GatewayTakuro Sasaki
 
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニングServerless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング真吾 吉田
 
Serverless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニングServerless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニング真吾 吉田
 
Serverless Meetup Osaka #2 Intro
Serverless Meetup Osaka #2 IntroServerless Meetup Osaka #2 Intro
Serverless Meetup Osaka #2 Intro真吾 吉田
 
AWS CAF & Well-Architected Framework
AWS CAF & Well-Architected FrameworkAWS CAF & Well-Architected Framework
AWS CAF & Well-Architected Framework真吾 吉田
 
MySQL→Aurora移行セミナー
MySQL→Aurora移行セミナーMySQL→Aurora移行セミナー
MySQL→Aurora移行セミナー真吾 吉田
 

What's hot (20)

Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
 
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
 
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化するAWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
 
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia TalkJAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk
 
Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化Scalaプロダクトのビルド高速化
Scalaプロダクトのビルド高速化
 
VRディープ座談会 introduction ojima
VRディープ座談会 introduction ojimaVRディープ座談会 introduction ojima
VRディープ座談会 introduction ojima
 
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
サーバレスアーキテクチャを実戦投入するにあたって知るべきことサーバレスアーキテクチャを実戦投入するにあたって知るべきこと
サーバレスアーキテクチャを実戦投入するにあたって知るべきこと
 
Jawsug chiba API Gateway
Jawsug chiba API GatewayJawsug chiba API Gateway
Jawsug chiba API Gateway
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニングServerless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング
 
AWS Serverless++
AWS Serverless++AWS Serverless++
AWS Serverless++
 
Serverless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニングServerless Meetup Tokyo #1 オープニング
Serverless Meetup Tokyo #1 オープニング
 
Serverless Meetup Osaka #2 Intro
Serverless Meetup Osaka #2 IntroServerless Meetup Osaka #2 Intro
Serverless Meetup Osaka #2 Intro
 
AWS CAF & Well-Architected Framework
AWS CAF & Well-Architected FrameworkAWS CAF & Well-Architected Framework
AWS CAF & Well-Architected Framework
 
Serverless Anti-Patterns
Serverless Anti-PatternsServerless Anti-Patterns
Serverless Anti-Patterns
 
What's new with Serverless
What's new with ServerlessWhat's new with Serverless
What's new with Serverless
 
MySQL→Aurora移行セミナー
MySQL→Aurora移行セミナーMySQL→Aurora移行セミナー
MySQL→Aurora移行セミナー
 

Similar to Serverless Framework 使ってる話(node.js)

Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクションTakahiro Okumura
 
Ansible の CI を drone/Dokcker で試してみた
Ansible の CI を drone/Dokcker で試してみたAnsible の CI を drone/Dokcker で試してみた
Ansible の CI を drone/Dokcker で試してみたKenta Nishimura
 
Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90ko ty
 
RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssemblyceres-inc
 
Developers Summit 2014 14E-5 Azureでターイムアタック
Developers Summit 2014 14E-5 AzureでターイムアタックDevelopers Summit 2014 14E-5 Azureでターイムアタック
Developers Summit 2014 14E-5 AzureでターイムアタックKazumi Hirose
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorockyuzorock
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。Sho Yoshida
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application祐樹 夏目
 
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptxAWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptxRyo Higashigawa
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座都元ダイスケ Miyamoto
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターンKuniteru Asami
 
温故知新ローカルに検証環境を作ろう
温故知新ローカルに検証環境を作ろう温故知新ローカルに検証環境を作ろう
温故知新ローカルに検証環境を作ろう武彦 大山
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?Masahito Zembutsu
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 

Similar to Serverless Framework 使ってる話(node.js) (20)

Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Ansible の CI を drone/Dokcker で試してみた
Ansible の CI を drone/Dokcker で試してみたAnsible の CI を drone/Dokcker で試してみた
Ansible の CI を drone/Dokcker で試してみた
 
Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkを使ってみた話 at #nseg #90
 
RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssembly
 
Developers Summit 2014 14E-5 Azureでターイムアタック
Developers Summit 2014 14E-5 AzureでターイムアタックDevelopers Summit 2014 14E-5 Azureでターイムアタック
Developers Summit 2014 14E-5 Azureでターイムアタック
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。愛せよ、さもなくば捨てよ。
愛せよ、さもなくば捨てよ。
 
転職とLaravel
転職とLaravel転職とLaravel
転職とLaravel
 
僕の Serverless web application
僕の Serverless web application僕の Serverless web application
僕の Serverless web application
 
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptxAWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptx
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
温故知新ローカルに検証環境を作ろう
温故知新ローカルに検証環境を作ろう温故知新ローカルに検証環境を作ろう
温故知新ローカルに検証環境を作ろう
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
serverless
serverlessserverless
serverless
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 

Serverless Framework 使ってる話(node.js)

Editor's Notes

  1. 今やっているプロジェクトでServerless Frameworkというサーバーレスそのものみたいな名前のフレームワークを使っています。 今日は、選定理由、デモを交えてその使い方と失敗したことなどをお話ししして、便利さをお伝えできればと思っています
  2. Node.jsって書いてますけど、そこには全く触れませんw
  3. V1.0がbetaで出ていますが、業務では使っていないので触れません。 時間が無くて話が出来るだけのネタもないので・・
  4. せっかくなのでサーバーレスでやりたい
  5. 特にAPI Gateway
  6. CloudFormationまではちょっとツライ・・
  7. サーバレスなアプリケーションサービスを構築するためのフレームワーク 元々あったJAWS Frameworkのリニューアル版
  8. これができちゃうと
  9. 実際に使ってみたらホント簡単にコードで管理できるので導入することにしました。もちろん、全部というわけでは無いのですが・・
  10. で、口頭だけだとイマイチ伝わらないと思いますので、どのぐらい簡単に使えるのかをデモします。
  11. こんな感じです IAM Userを事前に作っておく必要があります。 こんな感じですが、Role作ったりCloudFormationであれこれやったりするので、強めの権限が必要です。 公式だとAdmin権限を与えるとか。 今回はAdminでやっておきます。
  12. コマンドはこれだけです。 今回はNode.jsがインストール済みのEC2でやりたいと思います。 (画面切り替え) ログの表示もやるか
  13. ま、ですよね。ふーんって感じですよね。
  14. サンプル的なのだけやっても面白く無いので、実務で使えそうなものもやります。
  15. ちゃんと通知が飛ぶようにしておかないとまずいやつ 以外にめんどくさい
  16. S3にフォームを置いてAjaxで〜メール通知って構成です
  17. で、さくっと作りたいところですが時間があれなので、料理番組っぽく、事前に作ったソースを使って、デプロイのところだけをやっていこうと思います。 ただ、中身は大したことやってません。
  18. Githubにアップしていますので、興味を持った方はどうぞ
  19. SNSのタブを見せる
  20. ターミナルに切り替え
  21. リポジトリのreadmeに内容を書いています。 リポジトリに入っていても問題ないものは.gitignoreから外したらいいと思います。
  22. 基本はステージ指定
  23. 時間が余ったら、ステージの作成、v2-functionの作成