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

既存システムのコンテナ化で得られた知見と、 全然関係ないけど自炊を支える技術

既存システムのコンテナ化で得られた知見と、 全然関係ないけど自炊を支える技術

AWS EC2を中心とした構成で稼働しているシステムをコンテナ化してAWS ECSに載せ替える移行プロジェクトで得られた知見と、ただ喋りたいだけですが自炊のレシピとか工夫のお話です。

matsuihidetoshi

May 18, 2023
Tweet

More Decks by matsuihidetoshi

Other Decks in Technology

Transcript

  1. TTNKQদҪӳढ़
    طଘγεςϜͷίϯςφԽͰಘΒΕͨ஌ݟͱɺ

    શવؔ܎ͳ͍͚ͲࣗਬΛࢧ͑Δٕज़

    View Slide

  2. View Slide

  3. ҠߦϓϩδΣΫτʹ͍ͭͯ
    Ҡߦલ ͋Δ΂͖ঢ়ଶ
    Ϋϥ΢υߏ੒؅ཧ खಈ *B$
    σϓϩΠϝϯτ Ұ෦ࣗಈԽ ׬શࣗಈԽ
    Մ༻ੑ ༨༟Λ࣋ͬͨϓϩϏδϣχϯά ΦʔτεέʔϦϯά
    ো֐ରԠ ਓྗͰଈ࣌ରԠ ࣗಈ෮چޙ͔Βରࡦ
    ՄࢹԽ ݩʑͰ͖͍ͯΔ ܧଓ
    ࠷େSQT͕ݟࠐ·ΕΔ޿ࠂ഑৴ܭଌγεςϜͷ
    μ΢ϯλΠϜ؀ڥҠߦ

    View Slide

  4. ߏ੒Πϝʔδ

    ˞࣮ࡍͷ΋ͷͱ͸ҟͳΓ·͢

    View Slide

  5. ΊΜͲ͍͘͞ਤ͕ग़͖ͯͯ
    ಄͓͔͠ͳΓͦ͏ʜ

    View Slide

  6. ؁͍ํͷ
    ཛম͖
    ࡞Γஔ͖ʹ
    ࡐྉ
    ཛ͜
    ࠭౶
    Ԙ
    ে༉
    ͩ͠ͷૉ

    ྉཧञ
    ਫΛ͵Δ·౬͘Β͍ʹ͢Δ
    ͵Δ·౬ͰௐຯྉࠞͥͪΌ͏
    ཛͱௐຯྉΛΑࠞͥ͘Δ
    Ωονϯϖʔύʔʹ༉ΛછΈࠐ·ͤΔ
    ཛম͖ϑϥΠύϯͰՐՃݮʹ

    ؾΛ͚ͭͳ͕Βؤுͬͯম͘ɺר͘
    ר͖ͳ͕Βͷ༉Λ͜·Ίʹͻ͘

    View Slide

  7. ίϯςφ͕ಈ͔ͳ͍
    ϩʔΧϧͷ։ൃͰಈ͍ͯͯ΋
    ຊ൪ʹҠߦ͢ΔͱͳΜ͔ಈ͔ͳ͍໰୊

    View Slide

  8. ϩʔΧϧͰ&$4؀ڥΛ࠶ݱ
    # ΞϓϦέʔγϣϯ ͷϏϧυ
    # ஫: ઌʹ app ͷσʔλϕʔεͷࢀরઌϗετΛ 127.0.0.1 ͔Β db ʹॻ͖׵͓͑ͯ͘
    docker build -t app -f app/Dockerfile . --no-cache
    # Nginx ͷϏϧυ
    # ஫: ઌʹ nginx.conf ͷ proxy_pass ͳͲΛ 127.0.0.1 ͔Β backend ʹॻ͖׵͓͑ͯ͘
    docker build -t nginx -f nginx/Dockerfile . --no-cache
    # MySQL ͷϏϧυ
    docker build -t mysql -f mysql/Dockerfile mysql/ --no-cache
    # docker network ͷ࡞੒
    docker network create local-network
    # image ͷ id Λऔಘ
    # ͜͜Ͱग़ͯ͘Δ id ͸ϥϯμϜͳͷͰɺԾʹ nginx ͸ fizz, app ͸ buzz, mysql ͸ fuga ͱ͢Δ
    docker images
    # MySQL ίϯςφͷىಈ
    docker run --name db --network local-network -p 3306:3306 -itd fuga
    # App ίϯςφͷىಈ
    # ͜͜Ͱࢦఆ͍ͯ͠Δ backend ͕ɺઌʹ nginx.conf ʹઃఆͨ͠ backend ͱରԠ͍ͯ͠Δ
    # ઌʹ؀ڥม਺ϑΝΠϧ src/.env ϑΝΠϧΛ༻ҙ͓ͯ͘͠
    docker run --name backend --env-file src/.env --network local-network -p 3000:3000 -itd buzz
    # Nginx ίϯςφͷىಈ
    docker run --name nginx --network local-network -p 80:80 -itd fizz
    # ಈ࡞֬ೝ
    curl localhost
    w &$4σʔλϓϨʔϯ͸݁ہίϯςφϗετΛ

    Ϛωʔδυʹ͚ͨͩ͠ͰϩʔΧϧͰಈ͔͢ͷͱ͋·ΓมΘΒͳ͍
    w ઃఆͱ͔΋݁ہ%PDLFS४ڌͷ΋ͷ͕ଟ͍
    w ίϯςφؒ௨৴ͷϗετ໊͚ͩ஫ҙ
    w ϩʔΧϧͰ%PDLFSωοτϫʔΫΛ࡞Δ
    w FOWͳͲͷϑΝΠϧʹ؀ڥม਺Λ·ͱΊ͓ͯ͘
    w ϙʔτͱ͔ؒҧ͑ͳ͍Α͏ʹ
    ˒ϙΠϯτ
    ˠ͜ΕͰେମݪҼ͕ಛఆͰ͖Δ

    View Slide

  9. ίϯςφಈ͔Μͯ͘
    ಄͓͔͠ͳΓͦ͏ʜ

    View Slide

  10. νʔζ
    ര৯͍
    w ໘Ͱ࡟ΕΔνʔζ࡟Γث
    w ύϧϛδϟʔϊϨοδϟʔϊ
    w dHͰԁఔ౓Ͱ݁ߏߴ͍͚Ͳɺ

    ී௨ͷคνʔζ΋ී௨ʹߴ͍
    w ී௨ͷคνʔζ͸෼཭ͤ͞ΔͨΊ͔ཛനͱ͔ೖͬͯͯ

    ༹͚ͳ͍ͷͰΧϧϘφʔϥͱ͔࡞Εͳ͍
    w ҰݸങͬͯԿճ͔ͰऴΘͬͪΌ͏ͱ͔Ͱ΋ͳ͍͔Β

    Ҋ֎ίεύѱ͘ͳ͍
    ˠ20-ര্͛

    View Slide

  11. ͋ͳͨͷίϯςφ͸
    4*(5&3.Λਖ਼͘͠ϋϯυϦϯά͠·͔͢
    4*(5&3.
    ΄ͳɺΩϦͷ͑͑ͱ͜Ͱʜ

    View Slide

  12. ϩʔϦϯάΞοϓσʔτ
    /&8
    0-%

    0-%
    ᶄ ᶅ
    /&8

    View Slide

  13. ࢀߟهࣄ
    Ҿ༻&$4ͷΞϓϦέʔγϣϯΛਖ਼ৗʹγϟοτμ΢ϯ͢Δํ๏ʢެࣜʣ
    IUUQTBXTBNB[PODPNKQCMPHTOFXTHSBDFGVMTIVUEPXOTXJUIFDT

    View Slide

  14. ࠓճͷߏ੒Ͱͷݕ౼ࣄ߲
    w3BJMTίϯςφQVNBͰରԠࡁΈ
    w(PίϯςφϥΠϒϥϦະ࢖༻͕࣮ͩ૷ͯ͋ͬͨ͠
    w'MVFOUEϓϩηεࣗମ͸໰୊ͳ͍͚Ͳผ໰୊͋Γ

    View Slide

  15. [email protected]@TIVUEPXO
    Ҿ༻IUUQTEPDT
    fl
    VFOUEPSHDPO
    fi
    HVSBUJPOCV
    ff
    FSTFDUJPO
    ˠϓϩηε͸(SBDFGVMʹࢭ·Δ͕
    όοϑΝ͸έΞ͕ඞཁ

    View Slide

  16. ίϯςφ͏·͘ΞοϓσʔτͰ͖ͳͯ͘
    ಄͓͔͠ͳΓͦ͏ʜ

    View Slide

  17. த՚Ͱ༉ઁऔͯ͠
    ετϨε๨ΕΔ
    λΧϥྉཧͷͨΊͷ঺ڵञˠ
    ˒த՚ͩ͠ͱ͜ΕͰ
    ΊͬͪΌళຯʹ

    View Slide

  18. ࠂ஌

    View Slide

  19. w ࡢ೥ʹଓ͖+"84ϛʔτΛ։࠵͠·͢
    w +"84ϛʔτͷʮϛʔτʯ͸ʮ.FFUʯͱʮ.FBUʯͷμϒϧɾϛʔχϯάͰษڧձͱ͓೑ͳͲΛ৯΂ͳ͕Βަྲྀ͢Δ
    ͱ͍͏झࢫͱͳΓ·͢
    w શࠃͷ"84ϑΝϯࢀՃΠϕϯτͳͷͰ͋·Γ઀఺ͷͳ͍ਓಉ࢜ͷܨ͕ΓΛ࡞͍͚ͬͯͨͩͨΒͱࢥ͍·͢
    w ·ͨɺຊΠϕϯτ͸ʮษڧձʢ-5ʣʴ࠙਌ձʢ##2ʣʯΛϫϯύοΫʹͨ͠ΠϕϯτͱͳΓ·͢
    w ˞খӍܾߦ

    ʙ

    View Slide

  20. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

    View Slide