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
あなたってどんな方(型)?/ kamakura.go#4
Search
Konboi
May 25, 2018
Technology
710
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
あなたってどんな方(型)?/ kamakura.go#4
kamakura.go#4の発表資料
Konboi
May 25, 2018
More Decks by Konboi
See All by Konboi
Java's OOM and k8s' OOM 遭遇した2つのOOMと対策 ~ Launchableでの事例 ~ / JJUG 2025 Spring
konboi
1
470
非同期開発体制を支えるドキュメント文化 / YAPC::Hiroshima 2024
konboi
28
13k
様々な環境へコマンドラインツールを提供する上での苦労とその対策 / YAPC::Kyoto 2023
konboi
0
3.1k
煩雑な運用を Goを使って楽にする / Go Conference 2019 Spring
konboi
4
4.8k
中規模チームを支える自動化とノウハウ共有の仕組み/CEDEC2017
konboi
8
9.9k
golang tokyo #6 / ゲーム開発には欠かせない?! あれをシュッと見る
konboi
1
7.9k
git-schemlexとddl-makerを使ったDB migrationの紹介 / git-schemalex and ddl-maker migration #golangtokyo
konboi
1
11k
Redisの調査についてとrmlp
konboi
5
5k
カヤックの新卒研修 #師弟登壇2015
konboi
0
4k
Other Decks in Technology
See All in Technology
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.3k
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
340
Deep Data Security 機能解説
oracle4engineer
PRO
2
670
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
270
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
190
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
210
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
570
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
130
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
470
企業の現実世界をグラフで写し取る
sansantech
PRO
0
260
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.6k
IR Today: Theory, Practice, and Agents
dtunkelang
0
340
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
730
WENDY [Excerpt]
tessaabrams
14
40k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
760
Building Adaptive Systems
keathley
44
3.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Technical Leadership for Architectural Decision Making
baasie
3
590
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
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ݴޠ