Slide 1

Slide 1 text

Rails։ൃ؀ڥʹ DockerΛಋೖͨ͠࿩ ୈ21ճ ԬࢁRuby, Ruby on Railsษڧձ ҳݟ੣(@mako_wis)

Slide 2

Slide 2 text

ࣗݾ঺հ w ҳݟ੣ ΁ΜΈ·͜ͱ  w 5XJUUFS!NBLP@XJT w גࣜձࣾΫϨΦϑʔΨʢԻૉࡐൢചɺԻָί ϯςεταΠτӡӦʣ w ϑϩϯταʔόʔαΠυ৘γε w ࠓ೔ͷձ৔܎

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

αʔϏεΠϯ౰࣌ͷߏ੒ EC2(App) EC2(Batch) RDS

Slide 5

Slide 5 text

S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS

Slide 6

Slide 6 text

S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch

Slide 7

Slide 7 text

S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch SQS

Slide 8

Slide 8 text

S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch SQS SNS

Slide 9

Slide 9 text

͜͜Ͱͪΐͬͱ໰୊͕

Slide 10

Slide 10 text

ൃੜ͍ͯͨ͠໰୊ • ֤ࣗͦΕͧΕͰઃఆͯͨ͠ͷͰൿ఻ͷλϨԽ • S3Λ։ൃ༻ʹڞ௨ͷόέοτΛݟ͍ͯͨΓ͠ ͯσʔλͷॏෳ͕ൃੜ • Ϛγϯങ͍ସ͑ͱ͔Ͱ؀ڥߏங΍Γ௚͠ͷ৔ ߹ʹ͕͔͔࣌ؒΔ

Slide 11

Slide 11 text

؀ڥߏங͕ϘτϧωοΫʹ

Slide 12

Slide 12 text

؀ڥߏஙΛ؆୯ʹͯ͠ޮ཰UP

Slide 13

Slide 13 text

ରॲํ๏ • ϩʔΧϧʹAWS୅ସαʔϏεΛར༻ͯ͠ຊ൪ ͱಉ౳ͷ؀ڥΛߏங • ։ൃऀຖʹຊ൪ͱಉ౳ͷ؀ڥΛAWS্ʹߏங

Slide 14

Slide 14 text

ରॲํ๏ • ϩʔΧϧʹAWS୅ସαʔϏεΛར༻ͯ͠ຊ൪ ͱಉ౳ͷ؀ڥΛߏங • ։ൃऀຖʹຊ൪ͱಉ౳ͷ؀ڥΛAWS্ʹߏங ࠓճ͸ͬͪ͜

Slide 15

Slide 15 text

DockerͰϩʔΧϧʹ؀ڥߏங

Slide 16

Slide 16 text

ࠓճͷํ਑ • DockerΛར༻ͯ͠ϩʔΧϧʹ։ൃ؀ڥΛߏங • खܰʹ؀ڥΛ্ཱ͍ͪ͛ͨͷͰdocker- composeͰίϯςφΛ؅ཧ • ୅ସ͑αʔϏε͕ແ͍΋ͷ͸ผ్ରࡦߟ͑Δ

Slide 17

Slide 17 text

RailsΞϓϦ Rubyόον S3 MySQL SQSɾSNS SQSɾSNSॳظԽ

Slide 18

Slide 18 text

RailsΞϓϦҎ֎ͷͱ͜Ζ

Slide 19

Slide 19 text

S3ͷஔ͖׵͑ • MinioΛ࢖༻ • https://github.com/minio/minio • dockerΠϝʔδΛར༻ͯ͠΋ӬଓԽ͕༰қ • σΟϨΫτϦ=όέοτͱͯ͠Έͳͯ͘͠ΕΔ ͷͰόέοτ࡞੒ࡁͰ഑෍Ͱ͖Δ

Slide 20

Slide 20 text

SQSɾSNSͷஔ͖׵͑ • Localstack • https://github.com/localstack/localstack • ֤छawsαʔϏεͷ୅ସ͑αʔϏεΛఏڙ • s3͸minioͷํ͕࢖͍΍͍͢ͷͰࠓճ͸ະ࢖༻ • SNS΋SQSͷ྆ํରԠͯ͘͠Ε͍ͯΔ • Ωϡʔ࡞੒͸ผ్ઃఆόονΩοΫ༻ͷΠϝʔδΛ࡞੒ͯ͠ docker-compose up࣌ʹ࣮ߦ

Slide 21

Slide 21 text

RDSͷஔ͖׵͑ • ฐࣾMySQLͳͷͰMySQLͷdockerΠϝʔδΛ ࢖༻ • ֤ࣗೖΕ͍ͯΔMySQLΛ࢖༻͢Δख΋͋ͬͨ ͕ઃఆ΍όʔδϣϯ͕όϥͭ͘Մೳੑ΋͋Δ ͷͰ౷Ұ

Slide 22

Slide 22 text

CloudSearchɾɾɾ • ϕʔλ൛͔ͩΒͳͷ͔୅ସ͑αʔϏε͕ΠϚΠν • ݩʑΫϥ΢υαʔνͷઃఆ͕ͳ͔ͬͨΒDB΁ͷ ݕࡧʹ੾Γସ͑ΔϩδοΫ͕͋ͬͨͷͰͦΕΛ ར༻ • ʢͦͷ͏ͪElasticSearchʹ৐Γ׵͑Δ͔΋͠Ε ͳ͍ͷͰҰ୴ஔ͍͓ͯ͘

Slide 23

Slide 23 text

όονΞϓϦͷରԠ • όονͷDockerΠϝʔδͷ࡞੒ • DockerԽʹ൐͏ίʔυमਖ਼ • SQSʹґଘͯ͠ΔͷͰSQSͷ४උ׬ྃΛ଴ͭίʔυΛ௥Ճ • ϝΠϯΞϓϦͱಉ࣌ʹىಈ͍ͨ͠ • όονͷDockerϑΝΠϧΛϏϧυͯ͠ΠϝʔδΛ࡞੒͢ΔํࣜΛબ୒ • ϦϙδτϦ͕ผͳͷͰgit submoduleΛར༻ͯ͠ϝΠϯΞϓϦͷϦϙ δτϦʹ௥Ճ

Slide 24

Slide 24 text

RailsΞϓϦͷͱ͜Ζ

Slide 25

Slide 25 text

΄Μͱ͸Dockerͷ֎ʹ ग़͔ͨͬͨ͠ɾɾɾ

Slide 26

Slide 26 text

Docker͔Βग़ͤͳ͔ͬͨཧ༝ • Rubyόονଆ͔ΒRailsΞϓϦʹ௨৴ͷඞཁ͕͋Γ • Dockerίϯςφଆ͔ΒϗετOSͷIPΛऔಘ͢Δํ๏͕ ϗετOSଆͰ·ͪ·ͪ • MacͱLinux͸ҰॹͬΆ͍͚ͲWindows͕ɾɾɾ • ϗετOSଆͰRailsΛىಈ͢ΔͱRubyͷόονଆ͔Β Rails΁௨৴Ͱ͖ͳ͍

Slide 27

Slide 27 text

Docker্Ͱಈ͔͠·͢

Slide 28

Slide 28 text

DockerͰಈ͔͢ • ެࣜʹRubyΠϝʔδ͕͋ΔͷͰͦΕΛ࢖༻ • ϦϙδτϦϧʔτʹDockerϑΝΠϧΛஔ͍ͯΠϝʔ δϏϧυ • Πϝʔδ࡞੒࣌ʹbundle installΛߦ͏ • ΞϓϦͷϧʔτΛίϯςφʹϚ΢ϯτͯ͠ίʔυม ߋ࣌ʹ͙͢ʹ൓өͰ͖ΔΑ͏ʹ͢Δ

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Docker-compose up Ͱ։ൃ؀ڥ্ཱ͕͕ͪΔ

Slide 31

Slide 31 text

DockerԽͰਏ͍ͱ͜Ζ • Gemfileͷมߋ࣌ʹDockerΠϝʔδͷϏϧυ͕ඞཁ • PCʹΑͬͯ͸ը໘ͷද͕ࣔҟৗʹ஗͍ • RailsίϚϯυ࣮ߦ͕DockerΛհ͢ͷͰ஗ͯ͘ਏ͍ • rakeίϚϯυͷ࣮ߦΛύΠϓͰड͚औΕͳ͍ͷͰਏ ͍

Slide 32

Slide 32 text

·ͱΊ • docker-compose upͰඞཁͳ։ൃ؀ڥ্ཱ͕͕ͪΔͷ͸ศར • ֤ࣗͦΕͧΕͰઃఆ͢Δख͕ؒল͚ͨ • Railsͷ֤छίϚϯυΛ࣮ߦ͢Δͷ͕໘౗ • ͍͍ͪͪdocker-compose run ~Λ࣮ߦ͢Δͷ͕ΊΜͲ͍͘͞ • γΣϧεΫϦϓτΛ४උͯ͠লྗԽ • DockerΠϝʔδ΍S3ϩʔΧϧԽͰPCͷ༰ྔ͕ඞཁ

Slide 33

Slide 33 text

͓ΘΓ