Slide 1

Slide 1 text

ElasticBeanstalk Ͱ ৽نࣄۀΛര଎ϩʔϯν͢Δ גࣜձࣾβούϥε ࣲࢁ ྮ / @serima Minami Aoyama Night#1

Slide 2

Slide 2 text

About me

Slide 3

Slide 3 text

@serima • Ψϥέʔ࣌୅ʹ GPS ܥͷϞόΠϧίϯςϯπͰىۀ • ͦͷޙɺWeb ܥاۀͰΞϓϦέʔγϣϯΤϯδχΞͱ͠ ͯԿ͔ࣾ౉Γา͘ • Ґஔ৘ใܥΞϓϦɾϝʔϧϚΨδϯɾιʔγϟϧήʔ Ϝɾϗςϧ༧໿ΞϓϦ • ࡢ೥ɺβούϥεʹೖࣾ͠ɺ৽نࣄۀ΍طଘΞʔΩςΫ τݟ௚͠ͳͲ

Slide 4

Slide 4 text

ಥવͰ͕͢ ࠓ೔͓࿩͠ͳ͍͜ͱ

Slide 5

Slide 5 text

ϚϧνΫϥ΢υ!

Slide 6

Slide 6 text

1. βούϥεͱβούϥεʹ͓͚Δ৽نࣄۀ 2. ৽نࣄۀʹٻΊΒΕΔཁ݅ͱ͸ 3. Ϧιʔε͔Βٯࢉ͢ΔΠϯϑϥετϥΫνϟ 4. ElasticBeanstalk ͷӡ༻Ͱಘͨ஌ݟ ΞδΣϯμ

Slide 7

Slide 7 text

1. βούϥεͱβούϥεʹ͓͚Δ৽نࣄۀ 2. ৽نࣄۀʹٻΊΒΕΔཁ݅ͱ͸ 3. Ϧιʔε͔Βٯࢉ͢ΔΠϯϑϥετϥΫνϟ 4. ElasticBeanstalk ͷӡ༻Ͱಘͨ஌ݟ ΞδΣϯμ

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

ͻͱ͜ͱͰݴ͏ͱ ʮ઎͍ʯͷձࣾ

Slide 10

Slide 10 text

ओཁαʔϏε

Slide 11

Slide 11 text

2000೥ʹ૑ۀ • ϝΠϯࣄۀ͸ɺ઎͍Λத৺ͱͨ͠σδλϧί ϯςϯπ഑৴ • ΩϟϦΞܦ༝Ͱͷ޿ࠂू٬Ϟσϧ͕੒ޭ

Slide 12

Slide 12 text

ݱঢ়ͱ՝୊ • طଘओྗࣄۀͷചΓ্͕͛ݮগ • ݮগཁҼ͸ɺސ٬֫ಘ؀ڥͷมԽ • αʔϏεʹର͢ΔΩϟϦΞಋઢɾ޿ࠂग़ߘத ৺͔ΒɺϒϥϯυʢձࣾɺαʔϏεɺ઎͍ࢣʣ ʹର͢ΔϩΠϠϦςΟৢ੒΁

Slide 13

Slide 13 text

͍·ٻΊΒΕ͍ͯΔ͜ͱ • Ϣʔβʹఏڙ͢ΔՁ஋ԾઆΛݕূ͠ɺχʔζ Λ୳Γ౰ͯΔ • ͦΕΛϕʔεͱͯ͠ϏδωεϞσϧԾઆΛఆٛ ͠ɺԾઆݕূΛ܁Γฦ͠ɺαʔϏεͷάϩʔ εʹ஫ྗ͢Δ

Slide 14

Slide 14 text

Action (WIP) • طଘϢʔβʔʹରͯ͠ఏڙ͢ΔαʔϏεͷ "UX"Λ࠶ఆٛ͠ͳ͓͠ɺαʔϏεΛ࠶ߏங • ৽نϢʔβʔͷ"UX"ʹଈͨ͠αʔϏεΛ৽ن ্ཱͪ͛

Slide 15

Slide 15 text

ͪͳΈʹ։ൃతͳଆ໘Ͱ͸ • Perl PHP • ΦϯϓϨ Ϋϥ΢υʢҰ෦αʔϏεʣ • ΢ΥʔλʔϑΥʔϧ ΞδϟΠϧ

Slide 16

Slide 16 text

1. βούϥεͱβούϥεʹ͓͚Δ৽نࣄۀ 2. ৽نࣄۀʹٻΊΒΕΔཁ݅ͱ͸ 3. Ϧιʔε͔Βٯࢉ͢ΔΠϯϑϥετϥΫνϟ 4. ElasticBeanstalk ͷӡ༻Ͱಘͨ஌ݟ ΞδΣϯμ

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

ϑΟʔυόοΫɾϧʔϓ (Ҿ༻:Lean Startup Japan) • খ͘͞ɺૉૣ͘ࢼ͠ɺԿճ΋ࣦഊ͠يಓमਖ਼ Λ܁Γฦ͢

Slide 19

Slide 19 text

MVP • Minimum Viable Product • ݕূʹඞཁͳ࠷௿ݶͷػೳΛ΋ͬͨ੡඼

Slide 20

Slide 20 text

ͱʹ͔͘Ծઆݕূ • αʔϏεͷଟ͘͸ Logic ΑΓ্ҐͷϨϕϧͰ Ծઆݕূ͍ͨ͜͠ͱ͕΄ͱΜͲ

Slide 21

Slide 21 text

͚ͩͲ

Slide 22

Slide 22 text

ΠϯϑϥΛͳ͍͕͠Ζʹͯ͠ ͍͍ͱ͸ݴͬͯͳ͍

Slide 23

Slide 23 text

͚ΕͲ

Slide 24

Slide 24 text

ͦ͜ʹίετΛ͔͚͗͢ͳ͍

Slide 25

Slide 25 text

1. βούϥεͱβούϥεʹ͓͚Δ৽نࣄۀ 2. ৽نࣄۀʹٻΊΒΕΔཁ݅ͱ͸ 3. Ϧιʔε͔Βٯࢉ͢ΔΠϯϑϥετϥΫνϟ 4. ElasticBeanstalk ͷӡ༻Ͱಘͨ஌ݟ ΞδΣϯμ

Slide 26

Slide 26 text

νʔϜͱͯ͠ͷϦιʔε • ࠷খߏ੒ͷϝϯόʔ • σβΠφʔ • σΟϨΫλʔ • αʔόαΠυΤϯδχΞ • iOS / Android ΤϯδχΞ

Slide 27

Slide 27 text

ձࣾͱͯ͠ͷϦιʔε • Perl / PHP ͷ஌ݟ • ʢྑ͍ҙຯͰʣރΕͨΦϯϓϨ؀ڥͰͷܦݧ

Slide 28

Slide 28 text

ސ٬ʢզʑʣ͕ཉ͍͠΋ͷ • ΞϓϦέʔγϣϯ։ൃʹूதͰ͖ΔΑ͏ʹɺΠ ϯϑϥʹ͍ͭͯ͸ۃྗ໘౗Λݟͨ͘ͳ͍ • ͦΕͳΓͷෛՙΛਓతίετͳ͘ɺద੾ʹࡹ͍ ͯཉ͍͠ • ஌ݟͷ͋Δ LAMP ؀ڥʹԊͬͯ։ൃ͍ͨ͠ • ҆৺ɾ҆શͳσϓϩΠΛ͍ͨ͠

Slide 29

Slide 29 text

ElasticBeanstalk

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

(Ҿ༻: http://www.slideshare.net/AmazonWebServicesJapan/aws-aws-elastic-beanstalk)

Slide 32

Slide 32 text

͔͍ͭ·ΜͰݴ͏ͱ • Α͋͘Δ ELB + EC2 (+ RDS) ͷߏ੒Λૉૣ͘ɺ؆ ୯ʹ࡞ΕΔʢίϯιʔϧ͚ͩͰ͍͚ΔΑʣ • EC2 ͸ AutoScaling Group ͕σϑΥϧτͰઃఆ͞ Ε͍ͯΔͷͰɺΦʔτεέʔϦϯά΋ OK • ఏڙ͞Ε͍ͯΔ eb ίϚϯυͰ cli ্͔Β҆৺ɾ҆ શʹσϓϩΠ͕Մೳ

Slide 33

Slide 33 text

AWS αʔϏε܈ͷ PaaS

Slide 34

Slide 34 text

৽نࣄۀͷΠϯϑϥʹ͓͚Δ ɾ͏·͍ ɾ΍͍͢ ɾ͸΍͍ ͳͷͰ͸ʁ

Slide 35

Slide 35 text

αϙʔτ͞Ε͍ͯΔϓϥοτϑΥʔϜ • Apache Tomcat for Java • Apache HTTP Server for PHP • Apache HTTP Server for Python • Nginx or Apache HTTP Server for Node.js • Passenger or Puma for Ruby • Microsoft IIS 7.5, 8.0, and 8.5 for .NET • Java SE • Docker • Go

Slide 36

Slide 36 text

ḿΔػೳ • ඪ४ͰɺϒϧʔɾάϦʔϯɾσϓϩΠϝϯτʹରԠ • ඪ४ͰɺΠϯελϯε਺ͷ૿ݮΛεέδϡʔϦϯά Ͱ͖Δ • ΧελϚΠζ͸ίϯϑΟΪϡϨʔγϣϯϑΝΠϧͰ Մೳ • Docker αϙʔτ

Slide 37

Slide 37 text

Ϧιʔε؍఺Ͱ΋ɺ ͱͯ΋Ϛον͍ͯ͠Δͱ͍͏ ൑அ

Slide 38

Slide 38 text

1. βούϥεͱβούϥεʹ͓͚Δ৽نࣄۀ 2. ৽نࣄۀʹٻΊΒΕΔཁ݅ͱ͸ 3. Ϧιʔε͔Βٯࢉ͢ΔΠϯϑϥετϥΫνϟ 4. ElasticBeanstalk ͷӡ༻Ͱಘͨ஌ݟ ΞδΣϯμ

Slide 39

Slide 39 text

؀ڥߏஙͷํ਑ • RDS ͸ eb ؀ڥ಺ʹ࡞Βͳ͍౳ɺ؀ڥࣗମ͸εςʔτϨεΛ໨ࢦ͢ • Docker ͸࢖ΘͣɺϓϨϏϧτ͞ΕͨϓϥοτϑΥʔϜΛར༻ • ࠓͩͱɺPHP 7.0 on Amazon Linux • ΧελϚΠζ͸ίϯϑΟΪϡϨʔγϣϯϑΝΠϧʹدͤΔ • ؀ڥ͸ɺAPI / Web / ؅ཧը໘ͱͰ෼͚Δ • ϩάपΓ͸ td-agent Λ࢖ͬͯ s3 ΁

Slide 40

Slide 40 text

೔ʑͲΜͳӡ༻Λ͍ͯ͠Δ͔ • Pull-Request ϕʔεͷ git-flow • ػೳϦϦʔε͝ͱʹ։ൃ؀ڥʹσϓϩΠ (eb deploy) • ಈ࡞νΣοΫΛͯ͠ɺ໰୊͕ͳ͚Ε͹ຊ൪؀ ڥʹಉόʔδϣϯΛσϓϩΠ

Slide 41

Slide 41 text

ී௨ʹ࢖͏෼ʹ͸ ಛʹࠔΔ͜ͱ͕ͳ͍

Slide 42

Slide 42 text

ͪΐͬͱࠔͬͨ͜ͱ - Part 1 • ͱ͋Δ֎෦αʔϏεͷ API Λୟ͘ඞཁ͕͋ͬͨ ͕ɺIP Λݻఆ͍ͯͩ͘͠͞ͱͷґཔ • default VPC ʹ eb ؀ڥΛ࡞ͬͯ͠·͍ͬͯͨͷ ͰɺNAT Gateway ͷద༻͕ޙ͔ΒͰ͖ͳ͔ͬͨ • Ͳ͏͔ͨ͠ʁ؀ڥ࡞Γ௚͠

Slide 43

Slide 43 text

ͪΐͬͱࠔͬͨ͜ͱ - Part 2 • ࣗಈੜ੒͞ΕΔηΩϡϦςΟάϧʔϓɺAuto Scaling άϧʔϓɺͲΕ͕ԿΛࢦ͍ͯ͠Δ͔೺Ѳ ͮ͠Β͍໰୊ • Կ΋ҙࣝ͠ͳ͍ͳΒಛʹ໰୊ʹͳΒͳ͍ͷ͔΋͠ Εͳ͍͕ɺͪΐͬͱͨ͠ΧελϚΠζ࣌ʹࠔͬͨ • ஞҰશ෦ݟͯɺϦωʔϜͨ͠

Slide 44

Slide 44 text

݁ہɺԿ͕ݴ͍͔ͨͬͨͷ͔ • ࣄۀϑΣʔζʹΑͬͯٻΊΒΕΔΠϯϑϥͷϨϕ ϧײ͕ҧ͏ͷͰɺݟޡΒͳ͍Α͏ʹ͢Δͷ͸େࣄ • ࿩୊ͷαʔόϨεΞʔΩςΫνϟͱ͔ʹνϟϨϯ δ͢Δ͜ͱ΋େࣄ • طଘϦιʔεΛ׆༻ͭͭ͠ɺखܰʹαʔϏε͢Δ खࡳ΋͋Δ

Slide 45

Slide 45 text

਎ͷৎʹ߹ͬͨΠϯϑϥߏஙΛ ߟ͑ͨΒɺElasticBeanstalk Ͱ ৽نࣄۀΛര଎ϩʔϯν͢Δ ͕ΧνοͱϋϚͬͨ࿩

Slide 46

Slide 46 text

͓࿳ͼͯ͠గਖ਼͠·͢

Slide 47

Slide 47 text

༨ஊ

Slide 48

Slide 48 text

@i2key ͞Μ͕ϒϩάॻ͍ͯͨ • ʮ৽نࣄۀͷάϩʔεظΛࢧ͑ΔΤϯδχΞϦϯάʹ ͍ͭͯʯͱ͍͏λΠτϧ • σϓϩΠճ਺/೔ΛνʔϜͷ໨ඪʹ͢Δ • ҰํͰߴ଎ʹΰϛΛ࢈·ͳ͍ͨΊͷ෼ੳج൫ͷॏཁੑ • ͱͯ΋ྑ͍ϙετͳͷͰੋඇʂ • http://i2key.hateblo.jp/entry/2016/12/07/153146

Slide 49

Slide 49 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ