個人開発のやっていき方

 個人開発のやっていき方

2017年7月20日に行われた Rails Developers Meetup #3 の発表資料です。

089127ffb92a19d3d37815673cca06dc?s=128

r7kamura

July 20, 2017
Tweet

Transcript

  1. ݸਓ։ൃͷ΍͍͖͔ͬͯͨ @r7kamura

  2. ࣗݾ঺հ • Ryo Nakamura • https://github.com/r7kamura • https://twitter.com/r7kamura • Cookpad→Increments→ϑϦʔϥϯε

    • Railsͷ࢓ࣄͱ͔୳ͯ͠·͢
  3. ࠓ೔࿩͢͜ͱ • Կͭͬͨ͘Β͍͍ͷ͔໰୊ • ਓखෆ଍໰୊ • ۀ຿ͱͷؔΘΓํ • OSSʹ͢Δ͔Ͳ͏͔໰୊ •

    ๏຿ͱܦཧ • ࣦഊࣄྫ • ΤλΒͳ͍ͨΊʹ
  4. Կͭͬͨ͘Β͍͍ͷ͔໰୊

  5. Կͭͬͨ͘Β͍͍ͷ͔໰୊ (1/2) • Hello, world!! ͷ޲͜͏ଆʹਐΊͳ͍໰୊ • Կ͔ͭ͘Δͧͱߟ͑ͨͱ͖ʹ·ͣ͜ΕͰࠔΔ • ղ͘΂͖໰୊ΛઃఆͰ͖ͳ͍ͱ͍͏໰୊

    • ద੾ͳ໰୊Λݟ͚ͭΔͷ͕Ұ൪೉͍͠…
  6. Կͭͬͨ͘Β͍͍ͷ͔໰୊ (2/2) • →ࠜݯతͳཉٻʹࣖΛ܏͚Δͱྑ͍ • ࣗ෼ͷ໰୊ΛղܾͰ͖Δ΋ͷ͕ྑ͍ • খ࢝͘͞ΊΒΕΔͱྑ͍ • ௕͘ଓ͚ΒΕΔͱྑ͍

    • ์ஔͰ͖Δ΋ͷ͕ྑ͍ • ऩೖΛಘΒΕΔͱͳ͓ྑ͍
  7. amakan.net ͷ৔߹ • ແݶʹອըಡΈ͍ͨ… • →ອըͷແݶϦετ͕ཉ͍͠… • →ࣗ෼͕͡ΌͿ͡ΌͿߪೖͨ͘͠ͳΔΑ͏ͳɺࣹ޾৺Λ ἤΓ·͘Δ৽ץϦετ͕… •

    →AmazonͷAPIͰΰχϣΰχϣ΍Ε͹͍͚ͦ͏ • →ऩೖͰແݶʹອըಡΊΔ͸ͣ
  8. https://amakan.net/ ಡॻཤྺ΍৽ץ৘ใΛ؅ཧ͢ΔαʔϏε

  9. None
  10. None
  11. None
  12. ͱ͸͍͑ • ͭ͘Γ͍ͨ΋ͷ͕ͭ͘ΕΔͱ͸ݶΒͳ͍ • ೳྗෆ଍Ͱ࣮ݱͰ͖ͦ͏ʹͳ͍΋ͷ͕΄ͱΜͲ • ͭ͘Γ͍ͨ΋ͷͱ࢖ΘΕΔ΋ͷͱͷଥڠ఺Λ୳Δ • ඳ͖͍ͨ΋ͷͱചΕΔ΋ͷ͕ҧ͏ອըՈͷΑ͏ͳ ΋ͷ

    • ͭ͘Γ͍ͨ΋ͷΛͭ͘ΔͨΊʹݚᮎ͢Δͱྑ͍
  13. ਓखෆ଍໰୊

  14. ਓखෆ଍໰୊ (1/2) • ݸਓ։ൃͰ͸ਓతϦιʔε͕ಛʹෆ଍͢Δ • ٳ೔ͱ͔ʹยखؒʹ΍ΔͷͰ͕࣌ؒແ͍ • 1ਓͰશ෦΍Δඞཁ͕͋ΔͷͰ͕࣌ؒແ͍

  15. ਓखෆ଍໰୊ (2/2) • →పఈతʹޮ཰Խ͢Δ͜ͱͰରॲ • ۀ຿Ͱ࢖͏ٕज़Λڞ༻͢Δ • ݸਓͰ࢖͑Δٕज़Λ࢖͏૊৫ʹॴଐ͢Δ • εέʔϧ͢Δٕज़Λ޷ΜͰ࢖͍ͬͯ͘

    • ଞϓϩδΣΫτͱ෦඼Λڞ༻͢Δ
  16. amakan.net ٕज़֓ཁ • JSON͸RubyͰɺHTML͸JavaScriptͰੜ੒ • t2.micro + db.t2.micro + cache.t2.micro

    • AWS ECS (Pumaίϯςφ + Sidekiqίϯςφ) • AWSϦιʔε͸TerraformͰ؅ཧ • σϓϩΠɾΤϥʔɾδϣϒ࣮ߦͳͲ͸SlackͰ௨஌ • The 12-Factor App ʹଇͬͨઃܭ
  17. None
  18. None
  19. None
  20. None
  21. ۀ຿ͱͷؔΘΓํ

  22. ۀ຿ͱͷؔΘΓํ (1/2) • ۀ຿͸৺ͷఈ͔Β޷͖Ͱ΍ͬͯΔ༁Ͱ͸ͳ͍ • ۀ຿͸ରՁʹ߹͏ಇ͖Λ͢Ε͹ྑ͍ • ݸਓ։ൃ͸ࣗ෼ͰબΜͰ޷͖Ͱ΍ͬͯΔ͜ͱ • ޷͖Ͱ΍ͬͯΔ͜ͱ͙Β͍ຊؾͰ΍Δ΂͖

  23. ۀ຿ͱͷؔΘΓํ (2/2) • ݸਓ։ൃͰ͸৭ʑͱಥ͖٧ΊΔΑ͏ʹͳΔ • ݸਓͱۀ຿ͱͰٕज़Ϩϕϧ͕ٯసͯ͘͠Δ • ݸਓͰࢼٕͨ͠ज़Λۀ຿ʹద༻͢Δܗ΁ • ྫ:

    TerraformɺECSɺReactOnRailsɺPumaͳ Ͳ͸amakanͰࢼ͔ͯ͠ΒQiitaʹಋೖ͍ͯ͠Δ
  24. OSSʹ͢Δ͔Ͳ͏͔

  25. OSSʹ͢Δ͔Ͳ͏͔ (1/2) • ͭͬͨ͘ΞϓϦΛOSSʹ͢Δ͔Ͳ͏͔ • ެ։/ඇެ։ʹؔΘΒͣಉ͡Α͏ʹॻ͘΂͖ • ऩӹϞσϧͱอଘ͞ΕΔσʔλ࣍ୈ • ྫ:

    ެ։ͭͭ͠༗ྉͰϗεςΟϯά • ྫ: ඇެ։ͰҰ෦ػೳΛOSSԽ
  26. OSSʹ͢Δ͔Ͳ͏͔ (2/2) • amakanͰ͸ίΞػೳΛOSSԽͨ͠ • github.com/amakan/amakanize • github.com/amakan/amakankan • ௚ͯ͘͠ΕΔਓ͕ଟͯ݁͘Ռతʹॿ͔ͬͨ

    • ਓखෆ଍໰୊΋ղফͰ͖ΔՄೳੑ͕͋Δ
  27. ๏຿

  28. ར༻ن໿ͷ࡞Γํ • άάΔͱδΣωϨʔλʔ͕ग़ͯ͘Δ (ศར) • ॻ੶: ྑ͍WebαʔϏεΛࢧ͑Δʮར༻ن໿ʯͷ࡞Γํ • ࣮ࡍ͸ΈΜͳΘΓͱίϐϖ͍ͯ͠Δ •

    2೥લʹॻ͍ͨར༻ن໿Λौ୩ͷͰ͔͍ձࣾʹίϐϖ͞Εͨ • ແྉαʔϏε͔༗ྉαʔϏε͔Ͱগ͠਽ܗ͕มΘΔ • ۀଶ͕ۙͦ͏ͳ΍ͭΛ*ࢀߟ*ʹ͢Δͱྑ͍
  29. ϓϥΠόγʔϙϦγʔ • ར༻ن໿ͱҰॹʹͭ͘Ζ͏ • ϒϥ΢β֦ுొ࿥࣌ͳͲʹ͋Δͱศར • ޿ࠂϓϩάϥϜར༻ਃ੥ͳͲͰ΋࢖͑Δ

  30. ܦཧ

  31. ࢧग़ • ҰൠతͳWebΞϓϦʹඞཁͳܦඅ͸೺Ѳ͓ͯ͘͠΂͖ • AWSͰ͋Ε͹جຊEC2, RDS, Elasticache, ELB͋ͨΓ ͕ࢧ഑త •

    AWS͸ߴ͍ɺGCPͩͱ൒ֹఔ౓ͰࡁΉɺVPSͩͱ΋ͬ ͱ͍҆ɺΈ͍ͨͳن໛ײͷ೺Ѳ΋େࣄ • amakan͸਺ສϢʔβ͙Β͍·Ͱ͸݄1ສԁͰࣄ଍ΓΔ
  32. ऩೖ • amakan͸1000ϢʔβͰ݄4ສԁఔ౓ͷऩೖ • େ఍ͷΞϑΟϦΤΠτར཰͕2%͔Β5%ఔ౓ • αʔϏεͷ಺༰ࣗମ͕঎඼Λѻ͏΋ͷ͕ϕετ • AdSense౳ͷؔ࿈޿ࠂͰऩӹཱͯΔͷ͸ͦͦ͜͜ΞΫ ηεͷ͋ΔαʔϏε͡Όͳ͍ͱݫ͍͠…

    • ͜ͷลͷࣄ৘Λ஌͍ͬͯΔͱαʔϏεߟ͑Δͱ͖ʹ༗ར
  33. અ੫ • ։ۀಧΛग़͓ͯ͘͠ͱ੨৭ਃࠂͰ͖Δ • ೥౓຤ʹҰ෦ͷେਓୡ͕ᄆ͍͍ͯΔΞϨ • αʔό୅ɺ࡞ۀεϖʔε୅ͳͲΛܦඅʹ • ೥ؒ਺ສ͔Β਺ेສઅ੫Ͱ͖ΔՄೳੑ͕͋Δ

  34. ։ۀ ํ๏ • 1. ։ۀfreeeͰ࣭໰߲໨ΛຒΊΔ • 2. ੜ੒͞ΕΔPDFΛ༣ૹ͢Δͱ׬ྃ • 3.

    ઐ༻ͷωοτۜߦޱ࠲Λ࣋ͭͱศར • 4. ઐ༻ͷΫϨΧ΋͋Δͱͳ͓ྑ͍
  35. ࣦഊࣄྫ

  36. ࣦഊࣄྫ • amakan͸݄ͷऩೖ 4ສɺࢧग़1ສͩͬͨ • AmazonΞιγΤΠτʹBAN͞Εͨ • վળͯ͠࿈བྷ͕ͨ͠΋͸΍औΓ߹ͬͯ͘Εͣ… • ࢧग़1ສ͚͕ͩ࢒ͬͨ…

    • ͭΒ͍
  37. ࣦഊ͔Βͷֶͼ • ن໿͸ղऍͷՄೳੑ·Ͱߟ͑ͯΑ͘ಡ΋͏ • ࣦഊ͢ΔͱϞνϕʔγϣϯ͕ۃ୺ʹԼ͕Δ • ऩӹ͕ҙ֎ͱϞνϕʔγϣϯʹͳ͍ͬͯͨ • ์ஔͯͯ͠΋ಈ͘Α͏ʹͳͬͯͯྑ͔ͬͨ •

    Ұͭͷऩೖݯʹґଘ͢΂͖Ͱ͸ͳ͍ • Ϟνϕʔγϣϯ͸ݸਓ։ൃʹ͓͍ͯ࠷΋وॏͳࢿݯ
  38. ΤλΒͳ͍ͨΊʹ

  39. ΤλΔ • ΤλʔφϧʢӬԕͷɺՌͯ͠ͳ͍ʣΛಈࢺԽ ͤͨ͞଄ޠɻπΫϥʔʢRPGπΫʔϧͷϢʔ βʔʣͷؒͰੜ·Εͨɻ࡞ऀ͕ॾൠͷࣄ৘ʹ ΑΓ੡࡞Λ్தͰ์غ͢Δ͜ͱɺ·ͨ͸ͦͷ ঢ়ଶΛද͢ɻ

  40. ΤλΒͳ͍ͨΊʹ • ͭ͘ΔҙຯΛ૕ࣦ͢ΔͱඞͣΤλͬͯ͠·͏ • ͭ͘Δҙຯ͸ೋͭҎ্͓࣋ͬͯ͘ͷ͕ྑ͍ • ྫ: ࠷৽ͷRailsͷػೳΛࢼ͢৔ͱͯ͠࢖͏ • ྫ:

    స৬׆ಈͷͱ͖ʹ໊ࢗ୅ΘΓʹ࢖͏ • ྫ: Podcastͷωλͮ͘Γͱͯ͠࢖͏ • ྫ: രྲྀߦΓΛເݟͯ։ൃΛଓ͚Δ • ์ஔͯ͠΋ಈ͘Α͏ʹ͓ͯ͘͜͠ͱ΋ॏཁ
  41. ࠓ೔࿩ͨ͜͠ͱ • Կͭͬͨ͘Β͍͍ͷ͔໰୊ • ਓखෆ଍໰୊ • ۀ຿ͱͷؔΘΓํ • OSSʹ͢Δ͔Ͳ͏͔໰୊ •

    ๏຿ͱܦཧ • ࣦഊࣄྫ • ΤλΒͳ͍ͨΊʹ
  42. ͓ΘΓ ݸਓ։ൃͷ΍͍͖͔ͬͯͨ @r7kamura