Save 37% off PRO during our Black Friday Sale! »

趣味開発のためのVPS/クラウド活用術

B5582ce2d9959dfcff0384a07003e188?s=47 mackee
August 30, 2014

 趣味開発のためのVPS/クラウド活用術

YAPC::Asia 2014 2014-08-30 by @mackee_w

B5582ce2d9959dfcff0384a07003e188?s=128

mackee

August 30, 2014
Tweet

Transcript

  1. झຯ։ൃͷͨΊͷ Ϋϥ΢υ/VPS׆༻ज़ 2014-08-30 YAPC::Asia 2014

  2. @mackee_w a.k.a Ϛίϐʔ • ໘ന๏ਓΧϠοΫ ٕज़෦ • αʔόαΠυΤϯδχΞ(Perl) • ιʔγϟϧήʔϜͷ։ൃ/ӡ༻

    • ࠓ࡞͍ͬͯΔήʔϜ͸ࣄલొ࿥ड෇த
  3. ࠓ೔࿩͢͜ͱ • VPS/Ϋϥ΢υαʔϏεൺֱ • PaaS͸࿩͠·ͤΜ • ࠓɺࣗ୐αʔόΛ࢖͏ཧ༝ • Raspberry PiΛࣗ୐αʔόʹ࢖͏

  4. ͜ͷൃදʹ͸ಠஅͱภݟ͕ ͔ͳΓؚ·Ε͍ͯΔͷͰ ͜ͷޙHUBͱ͔Ͱ๻Λ౗͍ͯͩ͘͠͞

  5. ԿނPaaSͷ࿩Λ͠ͳ͍͔

  6. େମ๻ͷझຯͰ͢ • Πϯϑϥ͔Βߏங͢Δͷ͕޷͖ • Perl͕ಈ͘PaaS͸ݶΒΕ͍ͯΔ • DotCloud • Heroku •

    OpenShift • PaaS͸ׂߴͳ͜ͱ͕ଟ͍
  7. ࠓճ࿩୊ʹ্͛ΔαʔϏε

  8. linode΍ͦͷଞVPS͕ͳ͍ͷ͸ ࢖ͬͯͳ͍͔ΒͰ͢ʼʻ Ϩϙʔτ͓଴͓ͪͯ͠Γ·͢ HUBͰ๻Λ౗ͯ͠ʢ͈́

  9. ͱΓ֤͋͑ͣΠϯελϯεͰ ϕϯν(unixbench)औͬͯΈΔ

  10. ֤αʔϏεͷεϖοΫ • Amazon AWS - t2.micro $15.60/month(※) • Google Compute

    Engine - $7.48/month(※) • ͘͞ΒͷVPS - 934ԁ(੫ൈ͖)/month • DigitalOcean - $5/month • VULTR - $5/month
  11. ͕࣌ؒͳ͍ͷͰαʔϏεͷ ಛ௃ʹ݁Ռ͸ؚΊΔ

  12. ͍ͯ͘͞Ͱ

  13. ͍͖ͳΓ෮ݖͨ͠t2.mirco είΞ:1839.5 • t1.microγϣϘΠׂ͠ߴͩͳͬͯࢥͬͯͨ ͚ΕͲࠓͳΒϝονϟ͑͑΍Μͬͯͳͬͯ Δ • ͨͩ͠ɺৗ࣌ىಈͰ͸ͳ͘౎౓ىಈ༻్ • AWSͷαʔϏε͸ݸਓͰ༗༻ͳͷ΋ଟ͍

  14. t2ܥΠϯελϯεͷBurst • t2ܥͷΠϯελϯε͸ੑೳ͕Burst͢Δ • Ұ࣌తʹೳྗ͕Ξοϓ • ࢖͍ͬͯͳ͍ͱஷ͕ۚஷ·Δ • WebαʔϏεͷͱ͖ʹศརʢߏங࣌ͱ͔

  15. GCE f1-micro είΞ:437.1 • ݸਓͰ͸͋·Γ࢖Θͳ͍/࢖͑ͳ͍αʔϏε • ϩʔυόϥϯαʔ • BigQuery΋͍͢͝Μ͚ͩΕͲ…… •

    App EngineͷDockerରԠʹظ଴ • 1ϲ݄࢖͍ଓ͚Δͱ҆͘ͳΔγεςϜ
  16. ීஈ࢖͍Ͱ͸VULTR 768MB είΞ: 2328.2 • ͔ͳΓ͓ख͍ܰͩ҆͠ ͦͦ͜͜ૣ͍ • ࠷৽OS͕͍ͪૣ͘ࢼͤΔ •

    ஌Βͳ͍͏ͪʹػೳ͕௥Ճ͞Ε͍ͯΔ • CDΠϯετʔϧ΍PXEϒʔτ͕Մೳ • ౦ژϦʔδϣϯ
  17. Vagrant࿈ܞ͕Ͱ͖ΔDO είΞ: 1460.3 • Vagrantศར࠷ߴ • Ձ֨͸VULTRͱಉ͙͡Β͍ • ͨͩ͠Ұ൪͍ۙͷ͸γϯΨϙʔϧϦʔδϣ ϯ

    • ࢖͍ͬͯΔਓଟ͍ͱࢥΘΕΔ
  18. ٙ໰

  19. ͱ͜ΖͰԶ͸Ұମ ͳΜͰ͜Μͳʹ αʔόΛཱͯͯΔΜͩ

  20. ීஈͷ༻్ • ࡞ͬͯΈͨϛυϧ΢ΣΞͷϕϯν • ྲྀߦ͍ͬͯΔΒ͍͠ϛυϧ΢ΣΞΛ࢖ͬͯΈΔ • खݩͷMac͕ͿΜͿΜ໐Δͷ͕ؾʹ৯Θͳ͍ • ࣮͸͋Μ·ΓαʔϏεͱ͔࡞ͬͯͳ͍

  21. kuiperbelt ωοτϫʔΫଳҬͷ૿෯཰ϠόΠ

  22. ωοτϫʔΫͷ՝ۚܗଶ ࢖ͬͨ෼͚ͩ෷͏੎ ্ݶ·Ͱ͸0, ແ੍ݶ

  23. సૹྔΛؾʹ͔͚Δ΂͖༻్ • ಈը഑৴ • ಈըऔΓࠐΈ • εΫϨΠϐϯάͯ͠σΧ͍XMLͱ͔Λఆظత ʹऔΓࠐΉͱ͔ • Ξοϓϩʔμʔ

  24. ͦ͏͍͏࣌ʹ͸͘͞ΒͷVPS είΞ: 2080.1(2 cores) ΋ͪΖΜۀ຿Ͱ͸AWS S3ͩͬͨΓ CloudFrontͩͬͨΓ࢖͍෼͚ΔͩΖ͏͚ΕͲ AWS͸՝ֹ͕ۚݟ͑ͳ͍ͷ͕झຯͰ΍Δʹ͸ πϥΠ

  25. ͘͞ΒͷVPS • ཱͯΔͷ͕APIͰग़དྷͳ͍ • 1ϲ݄୯Ґͷ՝ۚ • ৗ࣌ىಈͰσʔλஔ͘ͱ͜Ζͱ͔ʹ࢖͑͹͍ ͍ͷͰ͸ʁ • ssig33.com

    - Docker ӡ༻͠·ͬͯ͘ಘΒΕͨ ͠ΐ΅͍஌ࣝ
  26. VPS͸ىಈ͕஗͍ • ͍͍ͩͨͦΕͧΕ1෼͔Β5෼͙Β͍͔͔Γ ·͢ • t2.mircoͱ͔͸gp2Λ͚ͭΔͱएׯૣ͍ • CoreOSͰ্ཱͪ͛Δͱૣ͍ͱ͔͋Δ • εφοϓγϣοτ

  27. ఏҊ - ͻͱͭৗཱ͓࣌ͯͯ͘ • ϓϥΠϕʔτPaaSͷΑ͏ʹCoreOSΛཱͯ ͓ͯ͘ • ͦͷCoreOSʹରͯ͠σϓϩΠ͢Δ

  28. ϝϦοτ • (طʹϏϧυࡁΈͷίϯςφͰ͋Ε͹)ૣ͍ • ͓͕ۚ༨ܭʹ͔͔Βͳ͍ • ϓϥΠϕʔτPaaS࣋ͬͯΔͬͯݴ͑Δ • ϓϥΠϕʔτϏʔνΈ͍ͨͳ

  29. σϝϦοτ • ωοτϫʔΫੑೳΪϦΪϦ·Ͱ࢖͏ϕϯν΍ CPUΛ͍ͬͺ͍·Ͱ࢖͏ϕϯνʹ͸࢖͑ͳ͍ • kuiperbelt͸ͦ͏͍͏͜ͱ͋ΔͷͰෳ਺Πϯ ελϯε্ཱͪ͛ͯϕϯνऔΓ·ͨ͠

  30. VULTRʹCoreOSΛࡌ͚ͬΔ https://coreos.com/docs/running-coreos/cloud-providers/vultr/

  31. ΋͏ҰͭͷఏҊ ϨγϐΛ࣋ͭ • ͍͍ͪͪyumͱ͔aptͱ͔΍ͬͯΒΕͳ͍ • chefͰ΋ansibleͰ΋γΣϧεΫϦϓτͰ΋ ͍͍͔Βࣗ෼༻ͷϨγϐΛ͓࣋ͬͯ͘ • ֤ʑͷελΠϧͰྑ͍

  32. VULTRͰͷStartup Scripts • ެ։伴ͷྲྀ͠ࠐΈ(VULTR͚͔ͩ΋) • github͔Β • Α͘࢖͏ܥͷϞδϡʔϧͷΠϯετʔϧͱ͔ • build-essential

    / mosh / tmux / vim • githubͷdotfiles͔Β*rcΛऔΓࠐΉ
  33. ࠓͷ࣌୅ʹࣗ୐αʔόͷҙຯ

  34. ࣗ୐αʔόͷσϝϦοτ • ిؾ୅ • Πχγϟϧίετ • ੑೳΛ্͛Δʹ͸·ͨॳظ౤ࢿ͕ඞཁ • ৔ॴ୅ •

    ਭ຾Λ๦͛ΒΕΔ͜ͱ͕͋Δ
  35. ී௨ʹԿ͔࣮ݧ΍αʔϏεΛ ΍Δ෼ʹ͸VPSͳͲʹ པͬͨ΄͏͕ྑ͍

  36. ࣗ୐ʹαʔόΛஔ͘ͱ͜͏ͳ Δ • ཕ͕མͪͯ΋Ζ΋ΖඈͿ • Ҿͬӽ͠ͱ͔͠ʹ͘͘ͳΔ • ిؾ୅ɹόΧʹͳΒͳ͍

  37. ͦΕͰ΋ ·ͩࣗ୐αʔό͕ඞཁͳ༻్

  38. ྫ͑͹GPGPUͷ৔߹ • AWSͷGPUΠϯελϯε(g2.2xlarge)͸Ձ ͕֨$0.898ɻ1࣌ؒ90ԁ͸ෆ҆ײ͋Δ(※) • ੑೳ͕ݻఆͳͷͰ΋ͬͱεϖοΫ͕΄͍͠ ͱ͔ͩͱબ୒ࢶ͕ͳ͍

  39. ྫ͑͹TV൪૊࿥ը؀ڥͱ͔ • ࿥ը͸(ࠓͷͱ͜Ζ)ࣗલͰ΍Βͳ͍ͱ͍͚ ͳ͍ • WOL΍λΠϚʔͰ࿥ը࣌ؒʹىಈͯ͠࿥ը ͯ͠Τϯίͯ͠γϟοτμ΢ϯͱ͔ྦ͙· ͍͠౒ྗ͕ඞཁ

  40. ετϨʔδ͕ΊͬͪΌཉ͍͠ • ςϥόΠτΫϥεͷετϨʔδΛΫϥ΢υ ʹٻΊΔͱେมͳ͜ͱʹͳΔ • S3Ͱ௿৑௕ԽͰ$24.6/month + α • ৑௕ԽΛ͋·Γؾʹ͠ͳͯ͘ྑ͍ͳΒHDD

    ങ͖ͬͯͯͦΕ࢖ͬͨ΄͏͕ྑͦ͞͏
  41. ࣗ୐αʔόͱͯ͠ͷ Raspberry Pi

  42. Raspberry Pi http://commons.wikimedia.org/wiki/File:Raspberry_Pi_Photo.jpg

  43. ϝϦοτ • ௿ফඅిྗ(ී௨ʹ࢖͑͹࠷େ0.5Wఔ౓) • খ͍͞ • ඞཁ࠷௿ݶͷػೳ͸උ͍͑ͯΔ • ωοτϫʔΫ •

    USB
  44. ࢖ͬͯΈͨײ૝ • ೤ܥτϥϒϧ͕༗Δ • έʔεʹೖΕ͍ͯΔਓʹଟ͍ • ֎෇͚HDDʹΨϯΨϯॻ͖ࠐΉܥͩͱΊͬ ͪΌ஗͍ ଳҬ͕଍Γͳ͍ •

    ͍ܰΞϓϦέʔγϣϯͳΒOK t1.microఔ౓
  45. Raspberry Pi͸ Immutable Infrastracture(෺ཧ)

  46. SDΧʔυ͕ΠϝʔδҠಈ΍ʂʂ • ͦΕͧΕͷ؀ڥ͸ҰॹͳͷͰSDΧʔυΛൈ͖ ࠩ͢͠Δ͚ͩͰ؀ڥΛม͑ΕΔ • ৽͍͠SDΧʔυʹΠϝʔδॻ͖ࠐΊ͹͙͢ʹ ·ͬ͞Β؀ڥ • ͍҆ͷͰ͍ͬͺ͍ങ͑Δ =

    ෳ਺୆ͷࢼݧͱ͔
  47. ·ͱΊ • ֤αʔϏε͸Ұ௕Ұ୹ɻ࢖͍෼͚Α͏ • ࣌୅͸Ϋϥ΢υɻͦΕͰ΋ࣗ୐αʔό͕ඞཁ ʹͳΔ৔߹͕͋Δ͠ɺࣗ୐αʔό͸ϩϚϯ • αʔό͸ཱࣺͯͯͯΔ࣌୅ͳͷͰօཱࣺͯͯ ͯ·ͬͯ͘ࢼͤ͹ྑ͍ͱࢥ͏ɻౖΒΕͳ͍ •

    ࠓ೥ͷYAPC͸RasPi͕τϨϯυͰ͸ʂʁʂʁ