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
golang.tokyo #12 LT, Kushi
Search
cnosuke
January 30, 2018
Technology
2.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
golang.tokyo #12 LT, Kushi
cnosuke
January 30, 2018
More Decks by cnosuke
See All by cnosuke
FintechとRailsとgRPCと
cnosuke
15
6.2k
Other Decks in Technology
See All in Technology
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
640
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
140
Chainlitで作るお手軽チャットUI
ynt0485
0
240
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
680
RAG を使わないという選択肢
tatsutaka
1
230
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
MCP Appsを作ってみよう
iwamot
PRO
4
640
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
400
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
150
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
660
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
250
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
250
GraphQLとの向き合い方2022年版
quramy
50
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
GitHub's CSS Performance
jonrohan
1033
470k
Transcript
golang.tokyo #12 LT Shinnosuke Takeda a.k.a. @cnosuke
@cnosuke ͠Μͷ͚͢/͠ʔͷ͚͢ • SRE at ͓ۚͷσβΠϯ • KubernetesΫϥελ࡞ͬͨΓͦͷӡ༻ • ࣾαʔϏεͱ͔πʔϧ࡞ͬͨΓ…
• Slack͔ΒσϓϩΠग़དྷΔΑ͏ʹ͢Δͭͱ͔ • ͍ΖΜͳϑΝΠϧΛS3ʹόοΫΞοϓ͍ͯͭ͘͠ͱ͔ ͪͳΈʹɺ4MBDL͔ΒσϓϩΠ͢Δͭɺ4MBDL͔$IBUCPUʹ͛ͯɺEJHEBH 5%ۘͷXPSLqPXΤϯδϯ ʹஔ͔Εͨɺ σϓϩΠͷKPCΛ3&45"1*ͰΩοΫ͢Δͱ͍͏ߏʹ͍ͯ͠·͢ɻ͜Εɺϩά͕อશͯ͘͢͠ΈΜͳݟ͍͢ͱ͍͏ͷͱɺ Կ͔͋ͬͯKPC͕ࢮΜͩͱ͖ͱ͔ͷ੍ޚ ϦτϥΠͱ͔ ͍͢͠ɺͱ͍͏ར͕͋ΔͨΊͰ͢ɻ વଞͷ௨ৗͷKPC͍Ζ͍ΖEJHEBHʹ͓͍ͯ͋Γ·͢
None
ʰελʔτΞοϓɾ৽نࣄۀ ʹ͓͚ΔGoʱ ࠓճͷςʔϚελʔτΞοϓɾ৽نࣄۀʹ͓͚Δ(PͰ͕͢ɺ ࢲୡ5)&0ͦΖͦΖͱ͍͏ײ͡Ͱɺ·ͩ·ͩΤϯδχΞਓऑͱ͍͏ײ͡Ͱ͢ɻ
Go ὑ THEO • Go + gRPC • ͍͔ͭ͘ͷΞϓϦ͚ͷAPI •
͍͔ͭ͘ͷ͚ࣾAPI • Kubernetes • GKE … ։ൃ༻Ϋϥελ • AWS … ຊ൪༻Ϋϥελ (PͱͷؔΘΓͰ͍͏ͱɺJ04ΞϓϦΛࡢʹϦϦʔεͨ͠ͷͰ͕͢ɺ͜ͷΞϓϦͱ"1*αʔόؒH31$Λશ໘తʹ࠾༻͍ͯͯ͠ɺ Ұ෦ͷ"1*Ͱαʔόଆ(PͰॻ͔Ε͍ͯ·͢ɻ શͯͰ͋Γ·ͤΜ ·ͨɺͪΐ͏ͲҰ΄Ͳલ͔Β5)&0,VCFSOFUFTͰಈ͍͍ͯ·͢ɻ ։ൃ༻ͷLTΫϥελ(,&Λར༻͍ͯ͠·͕͢ɺຊ൪༻Ϋϥελ"84্ʹLVCFBXTͰߏஙͨ͠LTͰ͢ɻ ͳͥ(,&"84྆ํΛ͍ͬͯΔ͔ͱ͍͏ͱɺকདྷ(,&ʹҠΔՄೳੑΛ͍ͨ͠ͷͰɺ։ൃΫϥελ(,&ͱ͍͏͜ͱʹ͠·ͨ͠ɻ LTࣗମͷϙʔλϏϦςΟ͋ΔͷͰɺ·͊྆ํͪΌΜͱ͓͚ͬͯকདྷͷબࢶ͕͘ͳΔͷͰΑ͍͔ͱɻ
։ൃ༻Ϋϥελ (on GKE) • Alphaαʔό܈ • API, DB, App …
• ΤϯδχΞ͕खݩͰ։ൃ͢Δ࣌ɺجຊతʹґଘ ͢ΔAPI, DBɺશһڞ௨Ͱ͜ͷAlphaڥʹܨ͙ (,&ʹ͋Δ։ൃ༻Ϋϥελʹ͍ͭͯͰ͕͢ɺ͍ΘΏΔBMQIBαʔό܈ͱ͍͏ײ͡Ͱɺຊ൪ڥͱ΄ͱΜͲಉ͡αʔϏεߏʹ͍ͯ͠·͢ɻ ϦϦʔεॳ͔Βɺ8FCͷϑϩϯτଆαʔϏεͱཪଆͷސ٬ɾূ݊ཧαʔϏεɺߋʹূ݊ӡ༻ͷαʔϏεׂ͞Ε͍ͯͨͷͰ͕͢ɺ ͋·Γ៉ྷʹڥք͕ΒΕ͍ͯͨΘ͚Ͱແ͍ͷͰɺ΄Ͳલ͔Β͍͔ͭ͘ͷαʔϏεΛ৽ͨʹΓग़͠͡Ί͍ͯͯɺϚΠΫϩͱ͍͏΄Ͳ খ͘͞͠ͳ͍ͱࢥ͍·͕͢ɺҙຯͷ͋Δ୯ҐͰαʔϏεׂΛਐΊ͍ͯ·͢ɻͦͷ͍͔ͭ͘ͷΓग़͞Εͨ"1*αʔόɺґଘ͢Δ%#ͷ ߏ͕ɺຊ൪ͱ΄΅ಉ͡ײ͡ͰBMQIBʹ࡞ΒΕ͍ͯ·͢ɻ͜ͷBMQIBڥɺΤϯδχΞશһ͕͖ʹΞΫηεͰ͖ΔΑ͏ʹͳ͍ͬͯͯɺ खݩͷͰ։ൃ͢Δ࣌ɺ։ൃ͍ͯ͠ΔͷҎ֎ͷ"1*αʔόґଘ͢Δ%#ɺ͜ͷBMQIBڥͷͷʹଓ͢ΔΑ͏ʹ͍ͯ͠·͢ɻ ͜Εɺશͯͷ"1*αʔό%#ΛϩʔΧϧͰಈ͔͢ͱɺ୯ʹॏ͍͠ඇޮͰ͢͠ɺશͯͷ"1*αʔόΛ࠷৽ͷঢ়ଶʹಉظͯ͠खݩͰ։ൃ ͢Δͷ͕݁ߏ໘͔ͩΒͰ͢ɻ
SSH Port fowarding ͯ͞ɺͰBMQIBڥʹͲ͏ଓ͍ͯ͠Δ͔ɺͱ͍͏Ͱ͕͢ɺ ࢲୡͷͱ͜ΖͰશ෦44)1PSUGPXBSEJOHͰͬͯ·͢ɻ
SSH Port fowarding ͏ΑͶ • ·͊खܰ • DBͱ͔ܨ͙ͷʹTCPͰΞϨ͢Δඞཁ͋Δ͠… αʔϏεΛׂͯ͠%#͍͔ͭ͋ͬͯ͘ɺΈ͍ͨͳॴͩͱׂͱ͍ͬͯΔͱ͜Ζଟ͍ͱࢥ͏ΜͰ͕͢ɺ ͍͔͕Ͱ͠ΐ͏ʁ
ձͰগͳͦ͏Ͱ͕ͨ͠ʜ ͬͺΓखܰͩ͠ɺ࠷ॳͷ%#ͻͱͭ͋ͨΓ͔Β44)1PSUGPXBSEJOHͰ͡Ίͯɺ ͦͷޙͲΜͲΜର͕૿͍͑ͯͬͯɺͱ͍͏έʔε͕ଟ͍Μ͡Όͳ͍͔ͱࢥ͍·͕͢ɻ ͏ͪͦ͏Ͱ͢ ͪͳΈʹɺલఏͱͯ͠ฐࣾͷΤϯδχΞશࡋྔ࿑ಇ ϦϞʔτϫʔΫࣗ༝ͳͷͰɺͲ͔͜ΒͰ։ൃͰ͖ΔΑ͏ʹ͢Δඞཁ͕͋Γɺ ୯७ʹ%#ΛΫϥελ֎ʹ࿐ग़ͯ͠ଓݩ*1Ͱ੍ݶ͢Δɺͱ͍͏ख๏͑·ͤΜɻΦϑΟεʹ71/ڌ͋Γ·͕͢ɺ શͯͷ௨৴Λ71/ܦ༝ʹ͢Δͱ͍͏ͷɺඞཁແ͍௨৴·Ͱ71/௨͢ͱ·͍͊Ζ͍Ζॏͯ͋͘·Γྑ͍ମݧͰແ͍Ͱ͢͠ɺ ಛఆͷϓϥΠϕʔτ*1ͱ͔͚ͩΛ71/௨͢ͱ͍͏ͷɺωοτϫʔΫڥʹΑͬͯɺϋϚΔΠϝʔδ͋Γ·͢ɻ ͪͳΈʹࣾαʔϏεྨBMQIBαʔόͷϒϥβදࣔͷΞΫηε੍ޚ5-4વඞਢͰ ͦΕʹOHJOY@PNOJBVUI@BEBQUFSΛΈ߹Θͤͯ·͢ɻ ͋ͱ5XJUUFSͰࢦఠ͕͋ͬͨͷͰ͕͢ɺ͜Ε։ൃڥʹݶͬͨͰɺຊ൪ڥશʹผ ͦͦ"84 ʹͳ͍ͬͯͯɺΞΫηεͰ͖Δͷ 43&ͷΈ͕࠷ݶʹඞཁͳ࣌ʹݶఆ͞Ε͍ͯ·͢ɻࣾنఆྨʑۚ༥ͳͷͰΧονϦඋ͞Ε͍ͯΔͷͰ͢
Α͘ݟΔޫܠ
ϠόΠ .ssh/config ࠷ॳͻͱͭͩͬͨQPSUGPXBSEJOH͕ɺαʔϏεͷʹͬͯͲΜͲΜ૿͍͑ͯͬͯɺ ؾ͕͍ͭͨΒݸ͑ͯΔɺͳΜͯ͜ͱແ͍Ͱ͔͢ɻ
ϠόΠ .ssh/config
ͳΜͱ͔͢Δͭ ࡞ͬͨ
github.com/cnosuke/kushi
kushiͱ • S3ͱ͔ʹஔ͍ͯ͋ΔYAMLͰهड़͞ΕͨPortfowardingͷϦετΛ औಘ͖ͯͯ͠ɺखݩͰSSHτϯωϧΛͬͯ͘ΕΔͭɻ • Ϧετͷߋ৽Λఆظతʹݟʹߦͬͯɺมߋ͕͋ΕมߋΛखݩʹ өͯ͘͠ΕΔɻ • ωοτϫʔΫڥͷมߋ(e.g. ձࣾͷωοτϫʔΫ͔ΒՈͷωοτ
ϫʔΫʹม͑ͨɺ)ʹΑͬͯSSHτϯωϧࣗମ͕յΕͨΒɺͦΕ ΛࣗಈͰுΓͯ͘͠ΕΔɻ • SSHτϯωϧແ௨৴ঢ়ଶͰͪΌΜͱkeepaliveͰɺग़དྷΔ͚ͩ ଓΛҡ࣋ͯ͘͠ΕΔɻ ͪͳΈʹ࡞ͬͨͷࡢ݄͘Β͍Ͱ͕͢ɺͦΕ͔Βࢲͱ͔ਓͰࡉʑͱ·ͩࢼ͍ͯ͠Δͱ͜ΖͰɺࠓͷͱ͜Ζ͔ͳΓ҆ఆͯ͠·͢ɻ QPSUGPXBSEJOHͷϦετΛऔΔͱ͜Ζʹೝূػߏ͚ͭͨΒ ޙड़ ࣾͰશ໘తʹల։͢ΔͭΓͰ͢ɻ
[How to] 1. forwardingͷઃఆΛS3ͱ͔ʹॻ͍ͯஔ͘ ઃఆϑΝΠϧ4ͱ͔ʹஔ͘ΠϝʔδͰ͢ɻGPSXBSEJOHઃఆϑΝΠϧͷߋ৽ͷ֬ೝɺFUBHͷมԽΛݟ͍ͯͯFUBHʹมԽ͕ͳ͍ ͭ·Γ*G/POF.BUDIͰϚον͠ͳ͍ͱ͖ ʹϑΝΠϧࣗମΛऔ͖ͬͯͯஔ͖͑ΔΑ͏ʹ͍ͯ͠ΔͷͰɺͦͷล͕ݡ͍αʔόʹ͓͍ͯԼ͍͞ɻ ·ͨɺݱ࣌ͰೝূػߏΛೖΕͯͳ͍ͷͰɺ63-ࣗମΛଞͷਓ͔Βਪଌ͠ʹ͍͘Α͏ʹͨ͠΄͏͕Α͍͔ͱࢥ͍·͢ɻ ͜ͷϑΝΠϧ͚͕ͩ֎෦ʹ࿙Εͯ44)伴͕ແ͍ݶΓવΞΫηε͠Α͏͕ແ͍Ͱ͢͠ɺ44)αʔό͕Ͳ͔͜͜Εʹॻ͔Ε·ͤΜ͕ɺ ·͊αʔόߏ͕֎෦ʹΒΕΔ͜ͱආ͚ͨ΄͏͕͍͍ͩΖ͏ͱࢥ͍·͢ɻ"84ͷ*".ͰΞΫηε੍ݶ͢Δͷߟ͍͑ͯΔΜͰ͕͢ɺ
·͊ϕϯμʔϩοΫΠϯ͞ΕΔ͠Ͳ͏͠Α͏͔ͳ͊ʜͱ͍͏ײ͡Ͱ͢ɻ"84*".͏ͷͱ($1*".͏ͭ༻ҙ͢Δͱ͔͔ͳ͊
[How to] 2. kushiͷઃఆΛॻ͘
[How to] 3. ΒͤΔ σϑΥϧτͩͱϩά)0.&DPOpHLVTIJMPHTʹॻ͖ग़͞Ε·͢ͷͰɺඪ४ग़ྗʹϩάΛग़ͯ͠ઌͣࢼ͍ͨ͠ͱ͍͏ͱ͖ʹ TUEPVUΛ͚࣮ͯߦ͠·͢ɻπʔϧͱͯͬ͠ͺΓσʔϞϯతʹ͍͍ͨͣͰɺͦ͏͍͏ͱ͖ʹ OPIVQLVTIJEFWOVMM ͱ͍͏ײ͡ʹ͍ͯͩ͘͠͞ɻDPOpHҾͰࢦఆͰ͖·͕͢ɺ·͊LVTIJIͰ֬ೝ͍ͩ͘͞ɻ
github.com/cnosuke/kushi We’re hiring! www.money-design.com/jobs