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

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

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

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

Avatar for matsuihidetoshi

matsuihidetoshi

May 18, 2023
Tweet

More Decks by matsuihidetoshi

Other Decks in Technology

Transcript

  1. ҠߦϓϩδΣΫτʹ͍ͭͯ Ҡߦલ ͋Δ΂͖ঢ়ଶ Ϋϥ΢υߏ੒؅ཧ खಈ *B$ σϓϩΠϝϯτ Ұ෦ࣗಈԽ ׬શࣗಈԽ Մ༻ੑ

    ༨༟Λ࣋ͬͨϓϩϏδϣχϯά ΦʔτεέʔϦϯά ো֐ରԠ ਓྗͰଈ࣌ରԠ ࣗಈ෮چ ޙ͔Βରࡦ ՄࢹԽ ݩʑͰ͖͍ͯΔ ܧଓ ࠷େSQT͕ݟࠐ·ΕΔ޿ࠂ഑৴ܭଌγεςϜͷ μ΢ϯλΠϜ؀ڥҠߦ
  2. ؁͍ํͷ ཛম͖ ࡞Γஔ͖ʹ ࡐྉ ཛ͜ ࠭౶ Ԙ ে༉ ͩ͠ͷૉ ਫ

    ྉཧञ  ਫΛ͵Δ·౬͘Β͍ʹ͢Δ  ͵Δ·౬ͰௐຯྉࠞͥͪΌ͏  ཛͱௐຯྉΛΑࠞͥ͘Δ  Ωονϯϖʔύʔʹ༉ΛછΈࠐ·ͤΔ  ཛম͖ϑϥΠύϯͰՐՃݮʹ 
 ؾΛ͚ͭͳ͕Βؤுͬͯম͘ɺר͘  ר͖ͳ͕Βͷ༉Λ͜·Ίʹͻ͘
  3. ϩʔΧϧͰ&$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 ϙʔτͱ͔ؒҧ͑ͳ͍Α͏ʹ ˒ϙΠϯτ ˠ͜ΕͰେମݪҼ͕ಛఆͰ͖Δ
  4. νʔζ ര৯͍ w ໘Ͱ࡟ΕΔνʔζ࡟Γث w ύϧϛδϟʔϊϨοδϟʔϊ w dHͰԁఔ౓Ͱ݁ߏߴ͍͚Ͳɺ 
 ී௨ͷคνʔζ΋ී௨ʹߴ͍

    w ී௨ͷคνʔζ͸෼཭ͤ͞ΔͨΊ͔ཛനͱ͔ೖͬͯͯ 
 ༹͚ͳ͍ͷͰΧϧϘφʔϥͱ͔࡞Εͳ͍ w ҰݸങͬͯԿճ͔ͰऴΘͬͪΌ͏ͱ͔Ͱ΋ͳ͍͔Β 
 Ҋ֎ίεύѱ͘ͳ͍ ˠ20-ര্͛