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
TechBullLT_気軽にはじめる自宅サーバーを支える技術
Search
inamuu
June 07, 2025
670
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TechBullLT_気軽にはじめる自宅サーバーを支える技術
inamuu
June 07, 2025
More Decks by inamuu
See All by inamuu
メインサービスのDBを1年でAurora1から段階的にAurora3へアップグレードした話
kzm0211
1
250
エンジニアの副業のすゝめ / engineer-sidejob-20200130
kzm0211
0
960
ランサーズのSendGrid活用事例
kzm0211
0
1.6k
元ドラッグストア店員の転職LT
kzm0211
0
1.7k
AmazonConnectで作るサーバレス電話確認システム
kzm0211
1
1.2k
さよならBIND
kzm0211
3
310
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
Building Adaptive Systems
keathley
44
3.1k
The Cult of Friendly URLs
andyhume
79
6.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Paper Plane
katiecoart
PRO
1
51k
Balancing Empowerment & Direction
lara
6
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Transcript
2025/06/04ʢਫʣTechBull LT&ަྲྀձ ʲྩ࠷৽൛ʳ ؾܰʹ͡ΊΔࣗαʔόʔΛࢧ͑Δٕज़
resource “human” “this” { name = “Kazuma Inamura”ɹ company =
“Medley, Inc.” role = “SRE” hobbies = [ “ride a motor bike”, “camping”, “playng the guitar” ] tags = { sns_x = “kzm0211” github = “inamuu” } }
ࠓࣗαʔόʔʹؔ͢ΔΛ͠·͢
ࠓͷΰʔϧ 👉ࣗαʔόʔະܦݧͷਓʹɺࣗαʔόʔʹڵຯ ΛͬͯΒ͏͜ͱ 👉طʹ͍ͬͯΔਓʹ͍ͬͯΔٕज़ͷڞ༗
ࣗαʔόʔมભ 2010ࠒɿϊʔτPCͰLAMP →ɹΠϯϑϥΤϯδχΞΛࢦͨ͢Ίʹ 2012ࠒɿλϫʔܕαʔόʔͰKVMɹ→ɹKVMΛཧղ͢ΔͨΊʹ 2016ࠒɿλϫʔܕαʔόʔͰγϯϓϧͳLinuxڥɹ→ɹIaCΛษڧ͢ΔͨΊʹ 2018ࠒɿλϫʔܕαʔόʔͰHyper−Vɹ→ɹ͜ͷลΓ͔Βͪΐͬͱ͕ྫྷΊΔʢAWS͕ϝΠϯʣ 2020ࠒɿ͘͞ΒͷVPS→Conohaɹ→ɹলྗԽ͢ΔͨΊʹVPS 2025ࠓɿϛχPCͰࣗαʔόʔΛӡ༻
20256݄ݱࡏͷࣗαʔόʔߏ ASRock X300ϕΞϘʔϯΩοτ Router(10Gps), WiFi AccessPoint NAS x 2ʢ8TB, 2TBʣ
ެ։ʹ͚ͨ࠷ݶͷ࡞ۀʢNWʣ • άϩʔόϧIPΞυϨεͷݻఆ • ༗ঈ • Ξαώωοτੲ880ԁͩͬͨʢࠓ1980ԁͰ্ ͛ʣ • ·ͨɺDDNSͳͲͷΈͷಋೖ
• ͔ͭͯDynDNSͱ͍͏αʔϏεͰແঈͰ͕͑ͯͨࠓ ༗ঈ • BuffaloͳͲઐ༻ͷDDNSαʔϏε͕͋Δ • ແྉͰؤுΔํ๏͋Δʢࠓճͪ͜ΒΛઆ໌͠·͢ʣ
ެ։ʹ͚ͨ࠷ݶͷ࡞ۀʢNWʣ • ϧʔλʔʹΑΔ੩తIPϚεΧϨʔυ • ଟ͘ͷίϯγϡʔϚʔػͰઃఆՄೳ • ը໘ͰϓϥΠϕʔτIPͱϙʔτΛඥ͚ͭΔ͚ͩ
ެ։ʹ͚ͨ࠷ݶͷ࡞ۀʢυϝΠϯʣ • υϝΠϯΛͲ͔͜Ͱऔಘ • DNSAPI͕͑Δͱ͜Ζ͕͍͍ʢGUI ͚ͩͩͱ৭ʑΓͮΒ͍, ޙड़ʣ • Amazon Route53
ஈ͕҆Ձͩ ͠ɺIaCͰ͖ΔͷͰΦεεϝ
ASRock X300 ࣗαʔόʔߏ
VMཧ • VMཧCockpitͱ͍͏OSSʢLGPLϥΠηϯεʣ • VNCίϯιʔϧ͋Δɺ͋ͱͰεϖοΫετϨʔδΛม͑Δͷ؆୯ • ը໘ϙνϙνͰOK
Kubernets Cluster • SingleMaster, Controle Plane x 2 • Metallb
→ IP ΞυϨεͷࣗಈׂΓͯ • nginx ingress controller → ෳHostʢυϝΠϯʣͷཧ • cert manager → ূ໌ॻཧ • cronjob → AWS ECR ΞΫηε͢ΔͨΊͷSessionTokenͷऔಘɺάϩʔόϧIPͷߋ৽ΛRoute53
Deploy 1. هࣄϑΝΠϧͷ࡞ 2. GitHubPush 3. GitHub ActionsͰbuildͯ͠ECRPush 4. Deployʢࠓͷͱ͜ΖखಈͰkubectlΛ࣮ߦ
→ FluxCDΛ ݕ౼தʣ
IPΞυϨεͷߋ৽ 1. ConfigMapʹ ShellScriptΛه ड़ 2. CronJobͰRoute53 ͷϨίʔυΛఆظత ʹߋ৽ #!/bin/bash
set -euo pipefail IP=$(curl -s https://checkip.amazonaws.com) aws route53 change-resource-record-sets --hosted- zone-id "XXXXXXX" --change-batch "{ \"Comment\": \"Auto update DDNS\", \"Changes\": [{ \"Action\": \"UPSERT\", \"ResourceRecordSet\": { \"Name\": \"inamuu.com.\", \"Type\": \"A\", \"TTL\": 300, \"ResourceRecords\": [{\"Value\": \"$IP\"}] } }] }"
ࣗαʔόʔͷϝϦοτ w ҆Ձʢ࠷ۙͩͱߴੑೳͳϛχ1$͕ࢁചͬͯΔ ͷͰಋೖ͍͢͠ʣ w "843PVUFͱ&$3͚ͩͳΒ݄ʑඦԁఔ ʢࠓͷͱ͜Ζԁ͘Β͍ʣ w ࣗͷ͖ͳڥγεςϜ͕࡞ΕΔʢ(16ͭ ΑͭΑʹͯ͠--.Ϛγϯʹͯ͠ྑ͠ɺϫʔΫ
ϑϩʔϚγϯʹͯ͠ྑ͠ɺ/"4Ͱେࣄͳσʔλ Λཧͯ͠ྑ͠ʣ
ࣗαʔόʔͷϝϦοτ w ٕज़ͷ্ʹͭͳ͕Γ͍͢ʢյ͠ ͯ୭ʹౖΒΕͳ͍ͷͰτϥΠ͠ ͍͢ʣ w ࣗݾߠఆײ͕͕͋ΔʢԿ͔ݏͳ͜ͱ ͕͋ͬͯ·͊ࣗʹΫϥελʔ͋ Δ͠ʣ
ࣗαʔόʔͷσϝϦοτ ಛʹ͋Γ·ͤΜʢݸਓͷݟղʣ ిؾ͕ͪΐͬͱ͔͔Δ͘Β͍ ˞աڈɺࢠͲ͕খ͍࣌͞ʹɺޫΔ-&%ʢిݯϘ λϯʣ͕ؾʹͳΓɺԡͯ͠͠ڧ੍γϟοτμϯ ͯ͠͠·͍ɺαΠτ͕ఀࢭ͢Δͱ͍͏Πϯγσϯτ ͕͋ͬͨͷͰ͝Ո͕͍Δ߹ҙ͕ඞཁ😇
ϩʔΧϧ։ൃڥͱҟͳΓɺΠϯλʔωο τʹ໘ͨ͠ڥ͕͋Δ͜ͱͰɺΑΓֶͼͷ෯ ͕͕Δ
ͥͻࣗαʔόʔΛ࡞ͬͯɺ αʔόʔͱࣗͷٕज़Λҭ͍͖ͯͯ·͠ΐ͏ ʢαʔόʔΛຍͷΑ͏ʹҭͯΔͷਤʣ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠