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
趣味開発のためのVPS/クラウド活用術
Search
mackee
August 30, 2014
Programming
16
13k
趣味開発のためのVPS/クラウド活用術
YAPC::Asia 2014 2014-08-30 by @mackee_w
mackee
August 30, 2014
Tweet
Share
More Decks by mackee
See All by mackee
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
73
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
390
perl for shell, awk and sed programmers
mackee
2
1.9k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
320
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
240
マイクロサービス化を利用した Goへの移行事例
mackee
0
370
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
4k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
1.9k
TinyGoで使えるORM sqllaの 紹介とTinyGoで使えるようにするための工夫
mackee
0
1.4k
Other Decks in Programming
See All in Programming
RubyKaigiで手に入れた HHKB Studioのための HIDRawドライバ
iberianpig
0
1k
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
190
Fluent UI Blazor 5 (alpha)の紹介
tomokusaba
0
140
CTFのWebにおける⾼難易度問題について
hamayanhamayan
1
970
WordPress Playground for Developers
iambherulal
0
120
requirements with math
moony
0
520
英語文法から学ぶ、クリーンな設計の秘訣
newnomad
1
270
Preact、HooksとSignalsの両立 / Preact: Harmonizing Hooks and Signals
ssssota
1
670
goにおける コネクションプールの仕組み を軽く掘って見た
aronokuyama
0
120
JavaOne 2025: Advancing Java Profiling
jbachorik
1
310
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
200
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
190
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Making Projects Easy
brettharned
116
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Writing Fast Ruby
sferik
628
61k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
Transcript
झຯ։ൃͷͨΊͷ Ϋϥυ/VPS׆༻ज़ 2014-08-30 YAPC::Asia 2014
@mackee_w a.k.a Ϛίϐʔ • ໘ന๏ਓΧϠοΫ ٕज़෦ • αʔόαΠυΤϯδχΞ(Perl) • ιʔγϟϧήʔϜͷ։ൃ/ӡ༻
• ࠓ࡞͍ͬͯΔήʔϜࣄલొडத
ࠓ͢͜ͱ • VPS/ΫϥυαʔϏεൺֱ • PaaS͠·ͤΜ • ࠓɺࣗαʔόΛ͏ཧ༝ • Raspberry PiΛࣗαʔόʹ͏
͜ͷൃදʹಠஅͱภݟ͕ ͔ͳΓؚ·Ε͍ͯΔͷͰ ͜ͷޙHUBͱ͔ͰΛ͍ͯͩ͘͠͞
ԿނPaaSͷΛ͠ͳ͍͔
େମͷझຯͰ͢ • Πϯϑϥ͔Βߏங͢Δͷ͕͖ • Perl͕ಈ͘PaaSݶΒΕ͍ͯΔ • DotCloud • Heroku •
OpenShift • PaaSׂߴͳ͜ͱ͕ଟ͍
ࠓճʹ্͛ΔαʔϏε
linodeͦͷଞVPS͕ͳ͍ͷ ͬͯͳ͍͔ΒͰ͢ʼʻ Ϩϙʔτ͓͓ͪͯ͠Γ·͢ HUBͰΛͯ͠ʢ͈́
ͱΓ֤͋͑ͣΠϯελϯεͰ ϕϯν(unixbench)औͬͯΈΔ
֤αʔϏεͷεϖοΫ • Amazon AWS - t2.micro $15.60/month(※) • Google Compute
Engine - $7.48/month(※) • ͘͞ΒͷVPS - 934ԁ(੫ൈ͖)/month • DigitalOcean - $5/month • VULTR - $5/month
͕࣌ؒͳ͍ͷͰαʔϏεͷ ಛʹ݁ՌؚΊΔ
͍ͯ͘͞Ͱ
͍͖ͳΓ෮ݖͨ͠t2.mirco είΞ:1839.5 • t1.microγϣϘΠׂ͠ߴͩͳͬͯࢥͬͯͨ ͚ΕͲࠓͳΒϝονϟ͑͑Μͬͯͳͬͯ Δ • ͨͩ͠ɺৗ࣌ىಈͰͳ͘ىಈ༻్ • AWSͷαʔϏεݸਓͰ༗༻ͳͷଟ͍
t2ܥΠϯελϯεͷBurst • t2ܥͷΠϯελϯεੑೳ͕Burst͢Δ • Ұ࣌తʹೳྗ͕Ξοϓ • ͍ͬͯͳ͍ͱஷ͕ۚஷ·Δ • WebαʔϏεͷͱ͖ʹศརʢߏங࣌ͱ͔
GCE f1-micro είΞ:437.1 • ݸਓͰ͋·ΓΘͳ͍/͑ͳ͍αʔϏε • ϩʔυόϥϯαʔ • BigQuery͍͢͝Μ͚ͩΕͲ…… •
App EngineͷDockerରԠʹظ • 1ϲ݄͍ଓ͚Δͱ҆͘ͳΔγεςϜ
ීஈ͍ͰVULTR 768MB είΞ: 2328.2 • ͔ͳΓ͓ख͍ܰͩ҆͠ ͦͦ͜͜ૣ͍ • ࠷৽OS͕͍ͪૣ͘ࢼͤΔ •
Βͳ͍͏ͪʹػೳ͕Ճ͞Ε͍ͯΔ • CDΠϯετʔϧPXEϒʔτ͕Մೳ • ౦ژϦʔδϣϯ
Vagrant࿈ܞ͕Ͱ͖ΔDO είΞ: 1460.3 • Vagrantศར࠷ߴ • Ձ֨VULTRͱಉ͙͡Β͍ • ͨͩ͠Ұ൪͍ۙͷγϯΨϙʔϧϦʔδϣ ϯ
• ͍ͬͯΔਓଟ͍ͱࢥΘΕΔ
ٙ
ͱ͜ΖͰԶҰମ ͳΜͰ͜Μͳʹ αʔόΛཱͯͯΔΜͩ
ීஈͷ༻్ • ࡞ͬͯΈͨϛυϧΣΞͷϕϯν • ྲྀߦ͍ͬͯΔΒ͍͠ϛυϧΣΞΛͬͯΈΔ • खݩͷMac͕ͿΜͿΜ໐Δͷ͕ؾʹ৯Θͳ͍ • ࣮͋Μ·ΓαʔϏεͱ͔࡞ͬͯͳ͍
kuiperbelt ωοτϫʔΫଳҬͷ૿෯ϠόΠ
ωοτϫʔΫͷ՝ۚܗଶ ͚ͬͨͩ͏ ্ݶ·Ͱ0, ແ੍ݶ
సૹྔΛؾʹ͔͚Δ͖༻్ • ಈը৴ • ಈըऔΓࠐΈ • εΫϨΠϐϯάͯ͠σΧ͍XMLͱ͔Λఆظత ʹऔΓࠐΉͱ͔ • Ξοϓϩʔμʔ
ͦ͏͍͏࣌ʹ͘͞ΒͷVPS είΞ: 2080.1(2 cores) ͪΖΜۀͰAWS S3ͩͬͨΓ CloudFrontͩͬͨΓ͍͚ΔͩΖ͏͚ΕͲ AWS՝ֹ͕ۚݟ͑ͳ͍ͷ͕झຯͰΔʹ πϥΠ
͘͞ΒͷVPS • ཱͯΔͷ͕APIͰग़དྷͳ͍ • 1ϲ݄୯Ґͷ՝ۚ • ৗ࣌ىಈͰσʔλஔ͘ͱ͜Ζͱ͔ʹ͍͑ ͍ͷͰʁ • ssig33.com
- Docker ӡ༻͠·ͬͯ͘ಘΒΕͨ ͠ΐ΅͍ࣝ
VPSىಈ͕͍ • ͍͍ͩͨͦΕͧΕ1͔Β5͙Β͍͔͔Γ ·͢ • t2.mircoͱ͔gp2Λ͚ͭΔͱएׯૣ͍ • CoreOSͰ্ཱͪ͛Δͱૣ͍ͱ͔͋Δ • εφοϓγϣοτ
ఏҊ - ͻͱͭৗཱ͓࣌ͯͯ͘ • ϓϥΠϕʔτPaaSͷΑ͏ʹCoreOSΛཱͯ ͓ͯ͘ • ͦͷCoreOSʹରͯ͠σϓϩΠ͢Δ
ϝϦοτ • (طʹϏϧυࡁΈͷίϯςφͰ͋Ε)ૣ͍ • ͓͕ۚ༨ܭʹ͔͔Βͳ͍ • ϓϥΠϕʔτPaaS࣋ͬͯΔͬͯݴ͑Δ • ϓϥΠϕʔτϏʔνΈ͍ͨͳ
σϝϦοτ • ωοτϫʔΫੑೳΪϦΪϦ·Ͱ͏ϕϯν CPUΛ͍ͬͺ͍·Ͱ͏ϕϯνʹ͑ͳ͍ • kuiperbeltͦ͏͍͏͜ͱ͋ΔͷͰෳΠϯ ελϯε্ཱͪ͛ͯϕϯνऔΓ·ͨ͠
VULTRʹCoreOSΛࡌ͚ͬΔ https://coreos.com/docs/running-coreos/cloud-providers/vultr/
͏ҰͭͷఏҊ ϨγϐΛ࣋ͭ • ͍͍ͪͪyumͱ͔aptͱ͔ͬͯΒΕͳ͍ • chefͰansibleͰγΣϧεΫϦϓτͰ ͍͍͔Βࣗ༻ͷϨγϐΛ͓࣋ͬͯ͘ • ֤ʑͷελΠϧͰྑ͍
VULTRͰͷStartup Scripts • ެ։伴ͷྲྀ͠ࠐΈ(VULTR͚͔ͩ) • github͔Β • Α͘͏ܥͷϞδϡʔϧͷΠϯετʔϧͱ͔ • build-essential
/ mosh / tmux / vim • githubͷdotfiles͔Β*rcΛऔΓࠐΉ
ࠓͷ࣌ʹࣗαʔόͷҙຯ
ࣗαʔόͷσϝϦοτ • ిؾ • Πχγϟϧίετ • ੑೳΛ্͛Δʹ·ͨॳظࢿ͕ඞཁ • ॴ •
ਭΛ͛ΒΕΔ͜ͱ͕͋Δ
ී௨ʹԿ͔࣮ݧαʔϏεΛ ΔʹVPSͳͲʹ པͬͨ΄͏͕ྑ͍
ࣗʹαʔόΛஔ͘ͱ͜͏ͳ Δ • ཕ͕མͪͯΖΖඈͿ • Ҿͬӽ͠ͱ͔͠ʹ͘͘ͳΔ • ిؾɹόΧʹͳΒͳ͍
ͦΕͰ ·ͩࣗαʔό͕ඞཁͳ༻్
ྫ͑GPGPUͷ߹ • AWSͷGPUΠϯελϯε(g2.2xlarge)Ձ ͕֨$0.898ɻ1࣌ؒ90ԁෆ҆ײ͋Δ(※) • ੑೳ͕ݻఆͳͷͰͬͱεϖοΫ͕΄͍͠ ͱ͔ͩͱબࢶ͕ͳ͍
ྫ͑TV൪ըڥͱ͔ • ը(ࠓͷͱ͜Ζ)ࣗલͰΒͳ͍ͱ͍͚ ͳ͍ • WOLλΠϚʔͰը࣌ؒʹىಈͯ͠ը ͯ͠Τϯίͯ͠γϟοτμϯͱ͔ྦ͙· ͍͠ྗ͕ඞཁ
ετϨʔδ͕ΊͬͪΌཉ͍͠ • ςϥόΠτΫϥεͷετϨʔδΛΫϥυ ʹٻΊΔͱେมͳ͜ͱʹͳΔ • S3ͰԽͰ$24.6/month + α • ԽΛ͋·Γؾʹ͠ͳͯ͘ྑ͍ͳΒHDD
ങ͖ͬͯͯͦΕͬͨ΄͏͕ྑͦ͞͏
ࣗαʔόͱͯ͠ͷ Raspberry Pi
Raspberry Pi http://commons.wikimedia.org/wiki/File:Raspberry_Pi_Photo.jpg
ϝϦοτ • ফඅిྗ(ී௨ʹ͑࠷େ0.5Wఔ) • খ͍͞ • ඞཁ࠷ݶͷػೳඋ͍͑ͯΔ • ωοτϫʔΫ •
USB
ͬͯΈͨײ • ܥτϥϒϧ͕༗Δ • έʔεʹೖΕ͍ͯΔਓʹଟ͍ • ֎͚HDDʹΨϯΨϯॻ͖ࠐΉܥͩͱΊͬ ͪΌ͍ ଳҬ͕Γͳ͍ •
͍ܰΞϓϦέʔγϣϯͳΒOK t1.microఔ
Raspberry Pi Immutable Infrastracture(ཧ)
SDΧʔυ͕ΠϝʔδҠಈʂʂ • ͦΕͧΕͷڥҰॹͳͷͰSDΧʔυΛൈ͖ ࠩ͢͠Δ͚ͩͰڥΛม͑ΕΔ • ৽͍͠SDΧʔυʹΠϝʔδॻ͖ࠐΊ͙͢ʹ ·ͬ͞Βڥ • ͍҆ͷͰ͍ͬͺ͍ങ͑Δ =
ෳͷࢼݧͱ͔
·ͱΊ • ֤αʔϏεҰҰɻ͍͚Α͏ • ࣌ΫϥυɻͦΕͰࣗαʔό͕ඞཁ ʹͳΔ߹͕͋Δ͠ɺࣗαʔόϩϚϯ • αʔόཱࣺͯͯͯΔ࣌ͳͷͰօཱࣺͯͯ ͯ·ͬͯ͘ࢼͤྑ͍ͱࢥ͏ɻౖΒΕͳ͍ •
ࠓͷYAPCRasPi͕τϨϯυͰʂʁʂʁ