Golang on AWS
#Shizuoka.go
2019.11.23
Kazuhisa KawashimaRenée French
アジェンダ
● 自己紹介
● 今日やること
● システム構成
● 開発環境
● Demo
● まとめ
自己紹介
自己紹介:川嶋一寿
● 2019年6月株式会社ゆめみに入社(3社目)
● フルリモート勤務(静岡)
● Golangの経験
勉強会用に簡単なREST APIを作ったことがある程
度 (発表資料)
● 好きな言語
Scala, TypeScript (型 Love!)
参考:Shizuoka.jsでのLT資料
● Twitter : @cupperservice
● E-mail : cupper@mac.com
今日やること
今日やること
メッセージを受信し、受信したメッセージをストレージに
保管すると同時に、Slackのチャネルに通知するREST
APIを作成する。
ストレージ
Slack チェネル
処理
保管
通知
メッセージ受信
システム構成
システム構成
AWS LambdaAmazon API Gateway
Amazon Simple Storage
Service
Slack
Golang
使用するサービス
● Amazon API Gateway
● AWS Lambda
● Amazon S3 (Amazon Simple Storage Service)
● AWS CloudFormation
● Slack(Web hook)
Amazon API Gateway
REST or WebSocketのAPIを構築するサービス
AWSまたは、他のサービスにアクセスするAPIを作成
することができる
参照 : Amazon API Gatewayとは
AWS Lambda
サーバを管理する必要なく、コードを実行できるサー
ビス
利用者は、自身が作成したコードのみに責任を負う。
メモリ、CPU、ネットワーク等のリソースはAWSが管理
する
参照 : AWS Lambdaとは
Amazon S3
インターネット用のストレージサービス
スケーラブルで信頼性が高く高速で安価なストレージ
を利用できる
参照 : Amazon S3とは
AWS CloudFormation
AWSリソースをモデル化し、セットアップやプロビジョ
ニングを行うサービス
参照 : AWS CloudFormationとは
Slack
説明省略
開発環境
今回使用する開発環境
● golang 1.13.4
● VSCode + Remote - Containers
● Docker, Docker compose
● Centos 7
● AWS CLI
● SAM(Serverless application model)
Demo
API仕様
● Endpoint : /hello/{name}
● Query Parameters
○ key
○ value
Example : /hello/gopher?key=price&value=1000
まとめ
Golang on AWSってどう?
● Golang用のSDKが整備されている。
AWSのリソースにGolangから簡単にアクセスでき
る!
● SAMは便利
簡単にサーバレスアプリを作って、AWSに配備す
ることができる!
Github repository
aws-go-example
Thank you for listening!
Renée French

Golang on AWS