Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Go x AWSによるシンプルなサーバーレス実装
yukpiz
March 27, 2019
Technology
1
79
Go x AWSによるシンプルなサーバーレス実装
シューマイGo編の発表資料です。
登壇用とは別に読みやすいように間のスライドを省きました。
yukpiz
March 27, 2019
Tweet
Share
More Decks by yukpiz
See All by yukpiz
Go x AWSによるシンプルなサーバーレス実装
yukpiz
1
390
Golang Beginners!
yukpiz
0
86
Go言語と事例で学ぶAWS Lambda
yukpiz
3
880
Other Decks in Technology
See All in Technology
AI Builderについて
miyakemito
1
980
Kaggleシミュレーションコンペの動向
nagiss
0
280
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
oracle4engineer
PRO
0
170
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
200
NGINXENG JP#2 - 2-NGINXの動作の詳細
hiropo20
1
140
WebLogic Server for OCI 概要
oracle4engineer
PRO
3
900
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
410
書籍を書きました。 そう、VS Codeで。
takumanakagame
4
4.6k
OVN-Kubernetes-Introduction-ja-2023-01-27.pdf
orimanabu
1
450
230125 モニターマウントLT ITガジェット翁(Ryu.Cyber)さん
comucal
PRO
0
4.8k
cdk deployに必要な権限ってなんだ?
kinyok
0
190
01_ユーザーリサーチ実施の進め方
kouzoukaikaku
0
740
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
120
29k
Writing Fast Ruby
sferik
613
58k
Making Projects Easy
brettharned
102
4.8k
What’s in a name? Adding method to the madness
productmarketing
12
1.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
500
130k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
50k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
7
590
What the flash - Photography Introduction
edds
64
10k
For a Future-Friendly Web
brad_frost
166
7.8k
How to Ace a Technical Interview
jacobian
270
21k
KATA
mclloyd
12
9.7k
Transcript
Go x AWSによる シンプルなサーバーレス実装 Written by @yukpiz Mar 27, 2019
#shuuumai #golang
Who? Yuuki Zayasu(@yukpiz) リディッシュ株式会社 テックリード #golang #aws #engineers_lt(エンジニアの登壇を応援する会) 釣り スノボ
小型船舶操縦士1級 第二種電気工事士 生コン打設 養鶏 野菜栽培
Who? Please follow me! @yukpiz https://labo.yukpiz.me
Go言語への入り口 Go言語 触ったことありますか?
Go言語への入り口 Go言語に興味を持っている、もしくは普段使っている皆さんに 少しでも知らなかった事を知って欲しい AWSと簡単に組み合わせて 様々な使い方ができる事を知ってほしい 是非、持ち帰って自分でGo言語を触ってみるキッカケにして欲しい
Go言語への入り口 コマンドラインツールを作る(urfave/cli等) A Tour of Goをやる(https://go-tour-jp.appspot.com/) Webフレームワークを使ってWebサイトを作る(gin, echo等) AWSを組み合わせてサービスを作ってみる(New!) DynamoDB,
Lambda, SQS, API Gateway, ECS/EKS, EC2, etc...
Go言語への入り口 AWS Lambda
Go言語への入り口 機能を実装してクラウド上で実行可能(FaaS) Go言語(1.x Runtime)が使える 様々なAWSの各種サービスと連携が可能 API Gateway AWS IoT Alexa
Skills Kit Alexa Smart Home Application Load Balancer CloudWatch Events CloudWatch Logs CodeCommit Cognito Sync Trigger DynamoDB Kinesis S3 SNS SQS + Invoke Lambda
活用事例
活用事例 サービス内メッセージの一斉配信サービス レストランに関連するデータの収集サービス SendGridを使ったメール配信サービス ...etc
活用事例 配信予定時刻に処理を開始 SQSで一定速度でLambdaに排出 配信処理を担うLambda ユーザーの端末へ 処理に失敗した配信レコード
活用事例 各種サービスの制限について サービスごとに制限項目がある Lambdaなら実行時間や同時実行数など 他のサービスと連携させる場合、その考慮も必要 詳細は各種サービスのドキュメントに記載がある 以下はLambdaの制限事項ドキュメント https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/limits.html
Go × Lambdaへの入り口 デプロイツールの選定(Apex, Lamvery, Serverless Framework) 実装したLambda関数をツールを使ってアップロードする LambdaはApex、それ以外のサービスはterraformに一元化 関数の実装
Go × Lambdaへの入り口 必要なのは2パッケージ Lambda実行時に呼び出される関数 発火元から受け取るイベント引数 処理結果を返す errorインターフェース型
Go × Lambdaへの入り口 デプロイツールの選定(Apex, Lamvery, Serverless Framework) 実装したLambda関数をツールを使ってアップロードする LambdaはApex、それ以外のサービスはterraformに一元化 関数の実装
Handlerの引数で受け取れるイベントはgodocで確認できる https://godoc.org/github.com/aws/aws-lambda-go/events AWSの各種サービスとの連携
Go × Lambdaへの入り口 Lambdaの発火元
その他の用途 BOTを作ってみよう! Slack BOTやTwitter BOTで遊んでみる API Gatewayと連携して、Webhook駆動のBOT Cloudwatchと連携して、定期実行するBOT
最後に Go言語入門の選択肢にAWS Lambdaを! 連携できるサービスを組み合わせて、簡単に作ろう 仕事じゃなくても、まずはプライベートの簡単なツールから! こういうのも作れそうとか面白いアイデア、是非教えてください
Written by @yukpiz Mar 27, 2019 #shuuumai #golang Slides Policy
The Go gopher was designed by Renée French. #f3f3f3 #434343 #da6272