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
260
Goで作るAWSツール
shiro seike
PRO
April 22, 2018
Tweet
Share
More Decks by shiro seike
See All by shiro seike
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
フルサーバーレスアーキテクチャの運用を重ねた先に見える価値 / The value that can be seen beyond the operation of a full serverless architecture
seike460
PRO
0
23
決断するための勇気、そのためのBacklog / Courage to make decisions, Backlog for that.
seike460
PRO
4
2k
Backlog API x Generative AI
seike460
PRO
0
83
「サーバーレス」ってなんだろう みんなでワイガヤ談義 / What is "serverless?" Wigaya discussion with everyone
seike460
PRO
0
32
とにかくHTTP3をライトニングに話す / Anyway, I'll talk to Lightning about HTTP3.
seike460
PRO
0
130
PHP Serverless Pattern
seike460
PRO
0
12
こまけぇこたぁいいんだよ!! PHPWebアプリケーションを早くする、それだけだ / It doesn't matter how small it is! Make PHPWeb applications faster, that's all!
seike460
PRO
0
7
Other Decks in Programming
See All in Programming
Rethinking UI building strategies @ SFI 2024
letelete
0
270
Java 22 Overview
kishida
1
180
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
270
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
410
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.2k
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
530
Git Lint
bkuhlmann
4
750
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
130
SIMD Parallel Programming with the Vector API
josepaumard
0
160
ゆるい個人開発のススメ
kuroppe1819
10
990
Git Rebase
bkuhlmann
11
1.6k
Featured
See All Featured
Gamification - CAS2011
davidbonilla
76
4.6k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Code Review Best Practice
trishagee
55
15k
How to Ace a Technical Interview
jacobian
272
22k
Building an army of robots
kneath
300
41k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Faster Mobile Websites
deanohume
299
30k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Designing Experiences People Love
moore
136
23k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
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は技術の大好きなエンジニアを募集してます!