Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Goで作るAWSツール
Search
shiro seike
PRO
April 22, 2018
Programming
0
300
Goで作るAWSツール
shiro seike
PRO
April 22, 2018
Tweet
Share
More Decks by shiro seike
See All by shiro seike
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
690
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
地方のPHPerもクラウドを使う理由 ~コストの最適化とチームに向き合う~ / Why even local PHPers use the cloud ~optimize costs and face the team
seike460
PRO
0
62
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
PRO
0
160
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
1k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
630
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
300
Amazon Aurora DSQLパフォーマンスチェック / Amazon Aurora DSQL Performance Check
seike460
PRO
0
10
(再)ひとり技術広報からの脱却 / Re:Breaking away from one-man technical public relations
seike460
PRO
1
220
Other Decks in Programming
See All in Programming
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
410
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
320
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
460
すべてのコンテキストを、 ユーザー価値に変える
applism118
2
810
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
120
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
240
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
210
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
110
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
340
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
810
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
A Tale of Four Properties
chriscoyier
160
23k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
RailsConf 2023
tenderlove
30
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
Into the Great Unknown - MozCon
thekraken
39
1.9k
Building Applications with DynamoDB
mza
95
6.5k
How GitHub (no longer) Works
holman
314
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
YesSQL, Process and Tooling at Scale
rocio
173
14k
A better future with KSS
kneath
239
17k
Transcript
Goで作るAWSツール JAWS-UG福岡 6度目もちょっと濃い目にAWSの話をしてみよう !1 株式会社Fusic @seike460
seike460 seike460 seike460 seike460 株式会社Fusic 清家史郎 (@seike460) !2 # 得意な技術
- PHP - Server - AWS - Backend # 得意になりたい技術 - golang - Serverless
皆さん、AWS使ってますか? !3
最高ですよね! !4
でもたまにもっと自分色に染めたい って思うことありませんか? !5
私の体験例を少し… !6
!7 みんな大好き
!8 こんなサーバレス作りました • API Gatewayで送信データを受け取る • Lambdaでデータをバリデーション、問題なければS3に保存
バグってるっポイとの報告 ↓ S3データの調査 (結果バグでは無くて勘違い !9 運用中…
!10 バケット選んで
!11 ディレクトリ選んで
!12 ディレクトリ選んで × 階層分(メンドイ)
!13 ファイルを選んで 多い…検索だ!
!14 プレフィックス。。。部分一致がイイな ҎԼ༷ʹϑΝΠϧ໊ΛΧςΰϥΠζͯͨ͠ JEUZQFBDUJPOKTPO ॊೈʹݕࡧ͍ͨ͠ɻɻɻ
CLI | grepでも解決出来る 何度も実行しなければならない リアルタイム検索あったらなー… !15
作りました !16
s3ry !17
• Go製のAWS S3 操作CLI • https://github.com/seike460/s3ry • アップロード • ダウンロード
• 削除 • ファイルリスト作成 !18 s3ry(エスリー)
デモ !19
• Go製のAWS S3 操作CLI • https://github.com/seike460/s3ry • アップロード • ダウンロード
• 削除 • ファイルリスト作成 • 凄くコンパクトにCLIツールが作れた Goはミニマム利用しやすいパッケージが多い ▪プロンプトツール https://github.com/manifoldco/promptui ▪みんな大好きSDK https://github.com/aws/aws-sdk-go ※https://github.com/aws/aws-sdk-go-v2もあります • 鋭意機能追加中(現在東京region固定、syncが無い等… !20 s3ry(エスリー)
次の体験例 !21
• 弊社、Slack無いと生きてきません。常に開いています • Todoは無料アプリ スケジュールはicalで出力出来るグループウェアで管理してました • 僕の頭にはこの情報を保持できるメモリ容量はありませんでした (内部MTGスッポカシた事あります • 記憶も大事ですよ?でも時代はpollingではなくてpushですよね
(僕は悪くない • Slackが通知してくれる事で業務中にコードに集中出来る (むしろ予定を忘れていた方が効率的なんだ • この課題を解決するServerlessで作ろう(お金は書けたくない (嘘です、本当にごめんなさい !22
AWS S3で運用するSPA !23
utakata !24
!25 utakata Architecture
なに使ってるの? !26
react-redux !27
• React • Facebook社製のViewライブラリ • Redux • 状態管理を行なうライブラリ • React+Reduxすると何が良いのか?
• Reduxが状態管理してReactは描画だけに集中出来る !28 react-redux
!29 人気 + α(後述)
AWS Amplify !30
• AWS製のJavaScriptライブラリ • Amazon Cognitoと連携した認証部分を行なってくれる • React用のComponentを利用するだけでログイン画面が完成 !31 AWS Amplify
lestrrat-go/ical !32
• @lestrratさんが作成しているical読み込みライブラリ 面倒なicalをmapに展開してくれる為、凄く助かった !33 lestrrat-go/ical
Serverless Framework !34
• 主にAWS LambdaとAWS API Gatewayを使った いわゆるServerlessを作成出来るFramework • AWS LambdaがGo対応したら即Go対応取り込んでくれた(最高) •
npmを利用してインストールすることができます • 簡単にServerless Architectureを作成して、 Serverlessすることが可能 !35 Serverless Framework
serverless.ymlを設定 • runtimeをgo1.xにする • handlerをコンパイルした Goバイナリを指定する !36
go buildする時の注意点 • Serverless Frameworkが指定するバイナリをbuildする時は GOOS=linuxをつける事を忘れずに! • build用のシェルを npm run
deploy時に実行するようにしました (もっと良い方法あれば是非教えてください!) !37
!38 npm run deploy
デモ !39
• Go製のAWS S3 SPA • https://github.com/seike460/utakata • react-reduxを使ったSPA • AWS
Amplifyを使った認証機構 • Serverless Frameworkを使ったデプロイ • α版 鋭意作成中 諸事情によりプログラムは最新ではないです(主にセキュry) • WEBUIを利用しなくても利用できる様に Slack通知部分等は別パッケージにしようと構想中 !40 utakata(泡沫)
これで俺のスケジュール 管理は完璧だ!!!!! !41
待てよ… システムが止まったら… !42
エラーに怯える日々は嫌だ… !43
Fusicではある エラートラッキングツール を使ってます !44
!45 Faultline
!46 faultline Architecture • @k1LoWさんが作っているエラートラッキングツール • Error発生時にそのエラー情報をDynamoDBに保存 (WEBUI有 • Slackにも通知してくれ、即座にWEBUIから状況分析、対応が可能
Go版を使おう! !47
!48 なるほど…
OSSの借りはOSSで返すんだ! !49
faultline-go !50
• Go製のfaultline sender エラー発生時にfaultlineにデータを送付 • Slackにもデータ送付 • …を作ってたのですが発表駆動開発に失敗… Go力不足でした。。。 !51
faultline-go
• AWS Lambdaが golang 対応したことをきっかけに AWS + golangを試したが相性が良い • コンパクトにAWSツールを作成出来る
• AWSにこんな機能があれば…と思っているあなた →作っちゃいましょう • 一緒に AWS + golang 盛り上げて行きましょう!!!! !52 まとめ
ご清聴ありがとうございました! !53 株式会社Fusicは技術の大好きなエンジニアを募集してます!