Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Goで作るAWSツール
Search
shiro seike
PRO
April 22, 2018
Programming
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goで作るAWSツール
shiro seike
PRO
April 22, 2018
More Decks by shiro seike
See All by shiro seike
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
610
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
160
Seeing Through Serverless: ADOT と CloudWatch Application Signals で実現する AWS Lambda のオブザーバビリティ(日本語版)/ Seeing Through Serverless (Japanese Edition)
seike460
PRO
1
31
モノレポの型は、そのままつながる 〜Hono RPCで型を素通しする開発体験〜 / Monorepo Types Connect As-Is: Passing Types Through with Hono RPC
seike460
PRO
1
39
OSSのコンセプトを知る / Understanding the Concept Behind an OSS
seike460
PRO
1
38
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
660
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
490
実行委員長目線で振り返る JAWS DAYS 2026 / JAWS DAYS 2026 from the Chair's Perspective
seike460
PRO
1
38
SLO から始める SRE / Starting SRE with SLO
seike460
PRO
1
120
Other Decks in Programming
See All in Programming
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
410
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
1
690
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
190
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
400
iOSDCのペンライトを自動制御したい!
akkeylab
0
260
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.2k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
280
Workers Cache を知る
syumai
0
310
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
setup-vp GitLab対応の裏側
naokihaba
0
140
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Into the Great Unknown - MozCon
thekraken
41
2.7k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
890
Typedesign – Prime Four
hannesfritz
42
3.2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Technical Leadership for Architectural Decision Making
baasie
3
580
Raft: Consensus for Rubyists
vanstee
142
7.7k
Accessibility Awareness
sabderemane
1
220
Building a Scalable Design System with Sketch
lauravandoore
464
34k
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は技術の大好きなエンジニアを募集してます!