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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shiro seike
PRO
April 22, 2018
Programming
300
0
Share
Goで作るAWSツール
shiro seike
PRO
April 22, 2018
More Decks by shiro seike
See All by shiro seike
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
200
AI-DLC 入門 〜AIコーディングの本質は「コード」ではなく「構造」〜 / Introduction to AI-DLC: The Essence of AI Coding Is Not “Code” but “Structure”
seike460
PRO
0
130
今さら聞けないサーバーレスのいいところ 〜運用から解放される世界を目指して〜 / The Benefits of Serverless You Might Be Too Embarrassed to Ask About Now — Aiming for a World Free from Operational Burdens
seike460
PRO
0
11
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
420
Team-First Serverless Platform Engineering Approach to PHP Applications with Laravel and Bref
seike460
PRO
1
67
地方で実現!九州、福岡近郊のAWS活用事例 / Success Stories from the Regions! AWS Use Cases in Kyushu and the Fukuoka Area
seike460
PRO
0
10
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
1k
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
500
地方のPHPerもクラウドを使う理由 ~コストの最適化とチームに向き合う~ / Why even local PHPers use the cloud ~optimize costs and face the team
seike460
PRO
0
110
Other Decks in Programming
See All in Programming
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
350
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
20260315 AWSなんもわからん🥲
chiilog
2
180
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
170
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
260
Claude Code Skill入門
mayahoney
0
450
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
480
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
3.7k
Tamach-sre-3_ANDPAD-shimaison93
mane12yurks38
0
220
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
200
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Ethics towards AI in product and experience design
skipperchong
2
240
Test your architecture with Archunit
thirion
1
2.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
510
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
330
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
96
Scaling GitHub
holman
464
140k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
470
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
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は技術の大好きなエンジニアを募集してます!