Slide 1

Slide 1 text

AWS Lambda Go で SPA試してみた Fukuoka.go#10 1 株式会社Fusic @seike460

Slide 2

Slide 2 text

seike460 seike460 seike460 seike460 株式会社Fusic 清家史郎 (@seike460) 2 # 得意な技術 - PHP - Server - AWS # 得意になりたい技術 - golang - Serverless # 作っているプロダクト - s3ry

Slide 3

Slide 3 text

s3ry 3

Slide 4

Slide 4 text

• Go製のAWS S3 操作CLI • https://github.com/seike460/s3ry • fileのアップロード、ダウンロード、ファイルリスト作成 4 s3ry(エスリー)

Slide 5

Slide 5 text

本題 5

Slide 6

Slide 6 text

何をつくってるのか? 6

Slide 7

Slide 7 text

AWS S3で運用するSPA Todo utakata 7

Slide 8

Slide 8 text

• AWS S3で運用するSPA Todo(本運用はAmazon CloudFront) • 泡沫にした理由は和名のかっこよさげな名前付けたいだけ • 巷の無料TodoアプリはSlackに通知してくれない
 (webhookありそうだけど少し開発) • Slack通知してくれないとミーティングすっぽかしちゃう • Slackが通知してくれる事で、業務中にコードに集中出来る • もうServerlessで作っちゃおう 8 utakata

Slide 9

Slide 9 text

なに使ってるの? 9

Slide 10

Slide 10 text

react-redux 10

Slide 11

Slide 11 text

• React • Facebook社製のViewライブラリ • Redux • 状態管理を行なうライブラリ • React+Reduxすると何が良いのか? • Reduxが状態管理してReactは描画だけに集中出来る 11 react-redux

Slide 12

Slide 12 text

12 人気 + α(後述)

Slide 13

Slide 13 text

AWS Amplify 13

Slide 14

Slide 14 text

• AWS製のJavaScriptライブラリ • Amazon Cognitoと連携した認証部分を行なってくれる • React用のComponentを利用するだけでログイン画面が完成 14 AWS Amplify

Slide 15

Slide 15 text

Serverless Framework 15

Slide 16

Slide 16 text

• 主にAWS LambdaとAWS API Gatewayを使った
 いわゆるServerlessを作成出来るFramework • AWS LambdaがGo対応したら即Go対応取り込んでくれた(最高) • npmを利用してインストールすることができます • 簡単にServerless Architectureを作成して、
 Serverlessすることが可能 16 Serverless Framework

Slide 17

Slide 17 text

serverless.ymlを設定 • runtimeをgo1.xにする • handlerをコンパイルした
 Goバイナリを指定する 17

Slide 18

Slide 18 text

go buildする時の注意点 • Serverless Frameworkが指定するバイナリをbuildする時は
 GOOS=linuxをつける事を忘れずに! • build用のシェルを npm run deploy時に実行するようにしました
 (もっと良い方法あれば是非教えてください!) 18

Slide 19

Slide 19 text

19 npm run deploy

Slide 20

Slide 20 text

デモ 20

Slide 21

Slide 21 text

• Serverless Frameworkとgolangを使って簡単にServerless
 →API Gatewayが面倒な方オススメです。 • SPAの認証が辛い場合はAWS Amplifyを使って認証作成
 →利用するだけなので非常に簡単でオススメです。 • react-redux
 →誰か教えてください • 簡単そうじゃん?と思った方、
 フロントエンド弱者の僕でも出来ました。
 
 一緒にServerlesssしましょう! 21 まとめ

Slide 22

Slide 22 text

ご清聴ありがとうございました! 22