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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
360
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
150
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
2
1.4k
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
190
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2.1k
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
160
Baseline対応のDOMの型定義を作った
uhyo
3
720
NDIAS CTF 2026 問題解説会資料
bata_24
0
180
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
650
Claude Codeとハーネスについて考えてみる
oikon48
18
8.9k
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
2.8k
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
140
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Evolving SEO for Evolving Search Engines
ryanjones
0
240
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
A Soul's Torment
seathinner
6
3k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Curse of the Amulet
leimatthew05
2
13k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
250
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
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