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

ローカル開発環境にDockerを導入した話

Makoto Henmi
December 23, 2017

 ローカル開発環境にDockerを導入した話

合同勉強会 in 大都会岡山 - 2017 Winter -での発表資料

Makoto Henmi

December 23, 2017
Tweet

More Decks by Makoto Henmi

Other Decks in Programming

Transcript

  1. ϩʔΧϧ։ൃ؀ڥʹ
    DockerΛಋೖͨ͠࿩
    ߹ಉษڧձ in େ౎ձԬࢁ -2017 Winter-
    ҳݟ੣(@mako_wis)

    View Slide

  2. ࣗݾ঺հ
    w ҳݟ੣ ΁ΜΈ·͜ͱ

    w 5XJUUFS!NBLP@XJT
    w גࣜձࣾΫϨΦϑʔΨʢԻૉࡐൢചɺ
    ԻָίϯςεταΠτӡӦʣ
    w ϑϩϯταʔόʔαΠυ৘γε

    View Slide

  3. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. ͜͜Ͱͪΐͬͱ໰୊͕

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. DockerͰϩʔΧϧʹ؀ڥߏங

    View Slide

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

    View Slide

  17. ϝΠϯΞϓϦ
    όον
    S3
    MySQL
    SQSɾSNS
    SQSɾSNSॳظԽ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. ϝΠϯΞϓϦͷରԠ
    • RailsΞϓϦέʔγϣϯ
    • ࠷ॳ͸DockerΛར༻ͤͣͦͷ··ىಈ͢Δ༧ఆͰ͕ͨ͠ɾɾɾ
    • όονଆ͔ΒϝΠϯΞϓϦͷAPIΛୟ͘ඞཁ͕͋Γ
    • Dockerଆ͔ΒϗετOSͷΞυϨεΛऔಘ͢Δํ๏͕OSຖʹ·ͪ·
    ͪ
    • ϝϯόʔͷOS͸WindowsɺMacOSࠞࡏ
    • ϦϙδτϦϧʔτʹDockerϑΝΠϧΛஔ͍ͯΠϝʔδϏϧυ

    View Slide

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

    View Slide

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

    View Slide

  26. ͓ΘΓ

    View Slide