Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

ਓखෆ଍໰୊

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

ۀ຿ͱͷؔΘΓํ

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

OSSʹ͢Δ͔Ͳ͏͔

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

๏຿

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

ܦཧ

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

ࣦഊࣄྫ

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

ΤλΒͳ͍ͨΊʹ

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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