Upgrade to Pro — share decks privately, control downloads, hide ads and more …

個人開発のやっていき方

 個人開発のやっていき方

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

r7kamura

July 20, 2017
Tweet

More Decks by r7kamura

Other Decks in Programming

Transcript

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

    View Slide

  2. ࣗݾ঺հ
    • Ryo Nakamura
    • https://github.com/r7kamura
    • https://twitter.com/r7kamura
    • Cookpad→Increments→ϑϦʔϥϯε
    • Railsͷ࢓ࣄͱ͔୳ͯ͠·͢

    View Slide

  3. ࠓ೔࿩͢͜ͱ
    • Կͭͬͨ͘Β͍͍ͷ͔໰୊
    • ਓखෆ଍໰୊
    • ۀ຿ͱͷؔΘΓํ
    • OSSʹ͢Δ͔Ͳ͏͔໰୊
    • ๏຿ͱܦཧ
    • ࣦഊࣄྫ
    • ΤλΒͳ͍ͨΊʹ

    View Slide

  4. Կͭͬͨ͘Β͍͍ͷ͔໰୊

    View Slide

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

    View Slide

  6. Կͭͬͨ͘Β͍͍ͷ͔໰୊ (2/2)
    • →ࠜݯతͳཉٻʹࣖΛ܏͚Δͱྑ͍
    • ࣗ෼ͷ໰୊ΛղܾͰ͖Δ΋ͷ͕ྑ͍
    • খ࢝͘͞ΊΒΕΔͱྑ͍
    • ௕͘ଓ͚ΒΕΔͱྑ͍
    • ์ஔͰ͖Δ΋ͷ͕ྑ͍
    • ऩೖΛಘΒΕΔͱͳ͓ྑ͍

    View Slide

  7. amakan.net ͷ৔߹
    • ແݶʹອըಡΈ͍ͨ…
    • →ອըͷແݶϦετ͕ཉ͍͠…
    • →ࣗ෼͕͡ΌͿ͡ΌͿߪೖͨ͘͠ͳΔΑ͏ͳɺࣹ޾৺Λ
    ἤΓ·͘Δ৽ץϦετ͕…
    • →AmazonͷAPIͰΰχϣΰχϣ΍Ε͹͍͚ͦ͏
    • →ऩೖͰແݶʹອըಡΊΔ͸ͣ

    View Slide

  8. https://amakan.net/
    ಡॻཤྺ΍৽ץ৘ใΛ؅ཧ͢ΔαʔϏε

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

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

    View Slide

  13. ਓखෆ଍໰୊

    View Slide

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

    View Slide

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

    View Slide

  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 ʹଇͬͨઃܭ

    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. ۀ຿ͱͷؔΘΓํ

    View Slide

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

    View Slide

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

    View Slide

  24. OSSʹ͢Δ͔Ͳ͏͔

    View Slide

  25. OSSʹ͢Δ͔Ͳ͏͔ (1/2)
    • ͭͬͨ͘ΞϓϦΛOSSʹ͢Δ͔Ͳ͏͔
    • ެ։/ඇެ։ʹؔΘΒͣಉ͡Α͏ʹॻ͘΂͖
    • ऩӹϞσϧͱอଘ͞ΕΔσʔλ࣍ୈ
    • ྫ: ެ։ͭͭ͠༗ྉͰϗεςΟϯά
    • ྫ: ඇެ։ͰҰ෦ػೳΛOSSԽ

    View Slide

  26. OSSʹ͢Δ͔Ͳ͏͔ (2/2)
    • amakanͰ͸ίΞػೳΛOSSԽͨ͠
    • github.com/amakan/amakanize
    • github.com/amakan/amakankan
    • ௚ͯ͘͠ΕΔਓ͕ଟͯ݁͘Ռతʹॿ͔ͬͨ
    • ਓखෆ଍໰୊΋ղফͰ͖ΔՄೳੑ͕͋Δ

    View Slide

  27. ๏຿

    View Slide

  28. ར༻ن໿ͷ࡞Γํ
    • άάΔͱδΣωϨʔλʔ͕ग़ͯ͘Δ (ศར)
    • ॻ੶: ྑ͍WebαʔϏεΛࢧ͑Δʮར༻ن໿ʯͷ࡞Γํ
    • ࣮ࡍ͸ΈΜͳΘΓͱίϐϖ͍ͯ͠Δ
    • 2೥લʹॻ͍ͨར༻ن໿Λौ୩ͷͰ͔͍ձࣾʹίϐϖ͞Εͨ
    • ແྉαʔϏε͔༗ྉαʔϏε͔Ͱগ͠਽ܗ͕มΘΔ
    • ۀଶ͕ۙͦ͏ͳ΍ͭΛ*ࢀߟ*ʹ͢Δͱྑ͍

    View Slide

  29. ϓϥΠόγʔϙϦγʔ
    • ར༻ن໿ͱҰॹʹͭ͘Ζ͏
    • ϒϥ΢β֦ுొ࿥࣌ͳͲʹ͋Δͱศར
    • ޿ࠂϓϩάϥϜར༻ਃ੥ͳͲͰ΋࢖͑Δ

    View Slide

  30. ܦཧ

    View Slide

  31. ࢧग़
    • ҰൠతͳWebΞϓϦʹඞཁͳܦඅ͸೺Ѳ͓ͯ͘͠΂͖
    • AWSͰ͋Ε͹جຊEC2, RDS, Elasticache, ELB͋ͨΓ
    ͕ࢧ഑త
    • AWS͸ߴ͍ɺGCPͩͱ൒ֹఔ౓ͰࡁΉɺVPSͩͱ΋ͬ
    ͱ͍҆ɺΈ͍ͨͳن໛ײͷ೺Ѳ΋େࣄ
    • amakan͸਺ສϢʔβ͙Β͍·Ͱ͸݄1ສԁͰࣄ଍ΓΔ

    View Slide

  32. ऩೖ
    • amakan͸1000ϢʔβͰ݄4ສԁఔ౓ͷऩೖ
    • େ఍ͷΞϑΟϦΤΠτར཰͕2%͔Β5%ఔ౓
    • αʔϏεͷ಺༰ࣗମ͕঎඼Λѻ͏΋ͷ͕ϕετ
    • AdSense౳ͷؔ࿈޿ࠂͰऩӹཱͯΔͷ͸ͦͦ͜͜ΞΫ
    ηεͷ͋ΔαʔϏε͡Όͳ͍ͱݫ͍͠…
    • ͜ͷลͷࣄ৘Λ஌͍ͬͯΔͱαʔϏεߟ͑Δͱ͖ʹ༗ར

    View Slide

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

    View Slide

  34. ։ۀ ํ๏
    • 1. ։ۀfreeeͰ࣭໰߲໨ΛຒΊΔ
    • 2. ੜ੒͞ΕΔPDFΛ༣ૹ͢Δͱ׬ྃ
    • 3. ઐ༻ͷωοτۜߦޱ࠲Λ࣋ͭͱศར
    • 4. ઐ༻ͷΫϨΧ΋͋Δͱͳ͓ྑ͍

    View Slide

  35. ࣦഊࣄྫ

    View Slide

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

    View Slide

  37. ࣦഊ͔Βͷֶͼ
    • ن໿͸ղऍͷՄೳੑ·Ͱߟ͑ͯΑ͘ಡ΋͏
    • ࣦഊ͢ΔͱϞνϕʔγϣϯ͕ۃ୺ʹԼ͕Δ
    • ऩӹ͕ҙ֎ͱϞνϕʔγϣϯʹͳ͍ͬͯͨ
    • ์ஔͯͯ͠΋ಈ͘Α͏ʹͳͬͯͯྑ͔ͬͨ
    • Ұͭͷऩೖݯʹґଘ͢΂͖Ͱ͸ͳ͍
    • Ϟνϕʔγϣϯ͸ݸਓ։ൃʹ͓͍ͯ࠷΋وॏͳࢿݯ

    View Slide

  38. ΤλΒͳ͍ͨΊʹ

    View Slide

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

    View Slide

  40. ΤλΒͳ͍ͨΊʹ
    • ͭ͘ΔҙຯΛ૕ࣦ͢ΔͱඞͣΤλͬͯ͠·͏
    • ͭ͘Δҙຯ͸ೋͭҎ্͓࣋ͬͯ͘ͷ͕ྑ͍
    • ྫ: ࠷৽ͷRailsͷػೳΛࢼ͢৔ͱͯ͠࢖͏
    • ྫ: స৬׆ಈͷͱ͖ʹ໊ࢗ୅ΘΓʹ࢖͏
    • ྫ: Podcastͷωλͮ͘Γͱͯ͠࢖͏
    • ྫ: രྲྀߦΓΛເݟͯ։ൃΛଓ͚Δ
    • ์ஔͯ͠΋ಈ͘Α͏ʹ͓ͯ͘͜͠ͱ΋ॏཁ

    View Slide

  41. ࠓ೔࿩ͨ͜͠ͱ
    • Կͭͬͨ͘Β͍͍ͷ͔໰୊
    • ਓखෆ଍໰୊
    • ۀ຿ͱͷؔΘΓํ
    • OSSʹ͢Δ͔Ͳ͏͔໰୊
    • ๏຿ͱܦཧ
    • ࣦഊࣄྫ
    • ΤλΒͳ͍ͨΊʹ

    View Slide

  42. ͓ΘΓ
    ݸਓ։ൃͷ΍͍͖͔ͬͯͨ
    @r7kamura

    View Slide