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
golang.tokyo #12 LT, Kushi
Search
cnosuke
January 30, 2018
Technology
2.5k
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
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
180
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
680
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
3
1.6k
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
6
3.7k
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
9
2.4k
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
1
410
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
420
分析作業をどこまで任せるか自分で決められる AIネイティブBI『Golden Analytics』が 良さげな話 /golden-analytics-is-ai-native-bi
shinyaa31
0
120
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
4
2.8k
Don't write the architecture only in the prompt.
neohsu
0
310
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
420
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
0
230
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
570
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Balancing Empowerment & Direction
lara
6
1.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
530
How to make the Groovebox
asonas
2
2.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
510
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
970
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