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
あなたってどんな方(型)?/ kamakura.go#4
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Konboi
May 25, 2018
Technology
1
640
あなたってどんな方(型)?/ kamakura.go#4
kamakura.go#4の発表資料
Konboi
May 25, 2018
Tweet
Share
More Decks by Konboi
See All by Konboi
Java's OOM and k8s' OOM 遭遇した2つのOOMと対策 ~ Launchableでの事例 ~ / JJUG 2025 Spring
konboi
1
340
非同期開発体制を支えるドキュメント文化 / YAPC::Hiroshima 2024
konboi
28
12k
様々な環境へコマンドラインツールを提供する上での苦労とその対策 / YAPC::Kyoto 2023
konboi
0
3k
煩雑な運用を Goを使って楽にする / Go Conference 2019 Spring
konboi
4
4.6k
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
konboi
8
9.8k
golang tokyo #6 / ゲーム開発には欠かせない?! あれをシュッと見る
konboi
1
7.7k
git-schemlexとddl-makerを使ったDB migrationの紹介 / git-schemalex and ddl-maker migration #golangtokyo
konboi
1
10k
Redisの調査についてとrmlp
konboi
5
4.7k
カヤックの新卒研修 #師弟登壇2015
konboi
0
3.9k
Other Decks in Technology
See All in Technology
意外と知ってそうでしらない、Reserved Instances の世界
mappie_kochi
0
110
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
230
Cosmos World Foundation Model Platform for Physical AI
takmin
0
1k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
260
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
140
AI駆動開発を事業のコアに置く
tasukuonizawa
1
1.4k
配列に見る bash と zsh の違い
kazzpapa3
3
190
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
1k
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
440
30分でわかる「ネットワーク図の描き方入門」/infraengbooks56
corestate55
0
300
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
5
740
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2.3k
My Coaching Mixtape
mlcsv
0
55
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
350
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Speed Design
sergeychernyshev
33
1.5k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Unsuck your backbone
ammeep
671
58k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
Transcript
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ 2018/05/25 kamakura.go#4
ࣗݾհ • ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • SGࣄۀ෦ •
αʔόʔαΠυΤϯδχΞ/ ΤϯδχΞϦϯάϚωʔδϟʔ • Go/Perl/AWS
ࠓͷ͓
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
δϣϒΩϡʔ • a.k.a ϝοηʔδΩϡʔ/λεΫΩϡʔ • Perl • Gearman • Q4M
• Rails • ActiveJob • Sidekiq • Shoryuken
δϣϒΩϡʔ • ඇಉظʹॲཧΛߦ͍͍ͨ • ϩδοΫͷॲཧΛ͚͍ͨ • ex) • ϢʔβʔొޙϝʔϧΛૹΔ •
ΫΤετΫϦΞ࣌ͷΫΤετΫϦΞνϟϨϯδͷୡ • ϑϨϯυΛΫΤετʹ࿈Εͯߦͬͨ࣌ʹ ϑϨϯυϙΠϯτ༩
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
None
Amazon SQS • Simple Queue Service ͷུ • ϚωʔδυͷΩϡʔΠϯάαʔϏε •
ඪ४ΩϡʔͱFIFO(First In First Out)Ωϡʔͷ2ͭ • ͨͩ͠ɺFIFO౦ژϦʔδϣϯະରԠ
Amazon SQS • String,Number,BinaryͷσʔλΛ ϝοηʔδຊจʹ֨ೲՄೳ • AttributeͱݺΕΔϑΟʔϧυʹ ຊจͱผʹใ͕֨ೲՄೳ • Ұఆ࣌ؒܦͭͱ
࠶ϝοηʔδ͕औಘͰ͖Δ • ϝοηʔδࣗͰআ͢Δඞཁ͕༗Δ
ͦͦͳΜͰ Amazon SQSΛ͏ͷ͔ʁ
Amazon SQSΛ͏ཧ༝ • ϑϧϚωʔδυ • ཧίετμϯ • ଞͷϓϩδΣΫτͰ࠾༻ࡁΈ • ͨͩ͠
• SQSಠࣗͷΫηΛߟྀ͢Δඞཁ͕͋Δ • ࠓճ͜ͷ෦͞ͳ͍ͷͰڵຯ͋Δਓ ࠙ձͰ
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
GoͷϓϩδΣΫτ • ొਓ • Job • ඇಉظʹ࣮ߦ͍ͨ͠ॲཧ • Queue •
JobΛग़͠ೖΕ͢ΔͷΠϝʔδ • JobQueue • JobΛQueue͔ΒऔΓग़࣮ͯ͠ߦ͢Δ
GoͷϓϩδΣΫτ • ίʔυͩͱ͜Μͳײ͡
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC 3VO
ͨͱ͑Queue͕ channelͷ߹
Queue͕channelͷ߹ • channelΛ༻͍ͨQueueͷίʔυ
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF DIBOOFM +PC 3VO
ͨͱ͑Queue͕ Amazon SQSͷ߹
ͨͱ͑Queue͕Amazon SQSͷ߹ • amazon sqsΛ༻͍ͨQueueͷίʔυ
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 2VFVF +PC
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZʹ +PCͷใΛ+40/ʹͯ͠ૹΔ 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZͷ +40/Λ+PCʹ6ONBSTIBM 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 3VO 2VFVF
͋Ε...
ͪΐͬͱͯΑ…✋
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠
લஔ͖͕͍ͯ͘͢·ͤΜ
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠ Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ
Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ • Job͕1छྨͩͬͨΒͳ͍ • ͔࣮͠͠ࡍ • ΫΤετΫϦΞϛογϣϯͷδϣϒ • QuestClearJob
• ϑϨϯυʹϙΠϯτΛ༩͢Δδϣϒ • SendFriendPointJob • Unmarshalઌͷܕ͕ҟͳΔ
SQS͔ΒऔΓग़ͨ͠ϝοηʔδΛ దʹUnmarshal͢Δඞཁ͕͋Δ
None
औΓग़ͨ͠λΠϛϯάͰ ͋ͳͨͲΜͳํ(ܕ)͔͍ͬͯͯ structΛ࡞Δඞཁ͕͋Δ
Ͳ͏ͬͯղܾ͔ͨ͠
reflect
reflect • reflect.New(reflect.Type) • reflect.Value͕ฦͬͯ͘Δ • reflect.Value.Interface() • Interface{}͕ฦͬͯ͘Δ •
͜ΕͰstructΛੜ(?)͢Δࣄ͕Ͱ͖Δ
reflect
reflect
͜ΕΛઌఔͷSQS Queueʹ ө͢Δͱ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
SQS Queueʹө͢Δ
ิ • ͳΜͰJobຖʹQueueΛ༻ҙ͠ͳ͔ͬͨͷʁ • طʹJobͷ͕10ݸ͋Γ ࠓޙ૿͑Δ༧ఆ • ৽نͰJobΛ࡞Δʹ։ൃڥ/ຊ൪ͱ QueueΛ࡞ΔͷΦϖϨʔγϣϯ͕ࡶ
ิ
ิ • Queueଆ͕ԿͷJob͕ग़ೖΓ͢Δ ͔Δඞཁ͕ͳ͘ɺ ґଘ͠ͳ͍ํ͕Α͍ͱ͍͏݁ʹ
·ͱΊ • GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠ • reflect.New/reflect.Value/r.V.Interface() ͔ΒಈతʹܕΛੜͯ͠ղܾ
Ҏ্ ͋ͳͨͬͯͲΜͳํ?(ܕ)
Q&A
ࢀߟURL • https://aws.amazon.com/jp/sqs/ • http://awsdocs.s3.amazonaws.com/SQS/ latest/sqs-gsg.pdf • https://golang.org/pkg/reflect/ • ΈΜͳͷGoݴޠ