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

AWS Case Study @ JAWS-UG Sapporo 2017

AWS Case Study @ JAWS-UG Sapporo 2017

A short presentation I gave at JAWS-UG Sapporo explaining how Cold Fusion uses various services on AWS EC2 for our flagship game, Crystal Clash. Using Continuous Integration, our build server runs builds for five different platforms using buildbot, and we can easily deploy app updates to iTunes Connect and Google Play with fastlane.

(Note: This presentation is only in Japanese, sorry.)

3a488be96753f7e2232f3a3d79b83083?s=128

Michael Tedder

October 10, 2017
Tweet

Transcript

  1. t2.micro͸ڧ͍ͧʂ גࣜձࣾɹίʔϧυɾϑϡʔδϣϯ ୅දऔక໾ɹςομʔɹϚΠέϧ

  2. ࣗݾ঺հ ग़਎ɿɹΞϝϦΧʢϑϩϦμभɺΦʔϥϯυʣ
 ࢓ࣄɿɹήʔϜ։ൃɺ%Τϯδϯ։ൃɺγεςϜ։ൃɺ$&0
 ݴޠɿɹ$ ɺ1)1ɺ5ZQF4DSJQUɺΞηϯϒϥʢYY"3. 
 झຯɿɹσϞγʔϯʢ5PLZP%FNP'FTUͷओ࠵ऀʣɺνοϓνϡʔϯɺ73ɺϏʔϧ
 ޷͖ͳ"84αʔϏεɿɹ&$
 
 ࡀ͔Β5*Bͷ#"4*$ݴޠͰϓϩάϥϛϯάʹڵຯ͕༙͍ͨ


    ࡀͰߴߍଔۀɺ6OJWFSTJUZPG$FOUSBM'MPSJEBେֶʹೖֶ
 ೥ɹେֶΠϯλʔϯͰ73։ൃΛ࢝Ίͯɺʮ7JSUPQJBʯΛ4*((3"1)Ͱެ։
 ೥ɹ/JOUFOEPͷΤϛϡϨʔλΛ࡞੒ɺήʔϜۀքʹೖΔ
 ೥ɹ೔ຊʢ౦ژʣ΁Ҡಈ
 ೥ɹԭೄ΁Ҡಈ
 ೥ɹגࣜձࣾίʔϧυɾϑϡʔδϣϯΛઃཱ
 ɹɹɹɹɹˠɹΞϝϦΧͷ"OJNPUPࣾͱܖ໿Ͱ"84Λॳར༻
 ೥ɹࡳຈ΁Ҡಈ
 ೥ɹ౦ژήʔϜγϣ΢ʹग़లɺࣗࣾΦϦδφϧͷεϚϗήʔϜ J04"OESPJE Λ഑৴ ςομʔɹϚΠέϧ ࡀ
  3. ೥݄ɹΞϝϦΧͷ"OJNPUPࣾͱܖ໿
 ɹɹɹɹɹɹɹʔɹϢʔβʔͷࣸਅͷΈͰɺԻָͷλΠϛϯάʹ߹Θͤͨө૾ʹม͑ΔαʔϏε
 ɹɹɹɹɹɹɹʔɹ"84ͷ(16ΠϯελϯεͰϦΞϧλΠϜϨϯμϦϯάΛߦ͍ɺ
 ɹɹɹɹɹɹɹɹɹɹϢʔβʔʹग़ྗө૾Λ௚઀ετϦʔϛϯά
 ɹɹɹɹɹɹɹʔɹϐʔΫͷ࣌͸(Πϯελϯε୆ఔ౓ɺ4΋େྔө૾อଘ
 ɹɹɹɹɹɹɹʔɹ໿िؒ͝ͱʹ৽͘͠ΤϯδϯΛ&$ʹσϓϩΠ
 
 ೥݄ɹΞϝϦΧͷ4BO[BSV(BNFTࣾͱܖ໿
 ɹɹɹɹɹɹɹʔɹ0DVMVT3JGUͰʮ734QPSUT$IBMMFOHFʯͷ։ൃΛख఻͍
 


    ೥݄ɹಠཱͯࣗࣾ͠ήʔϜΤϯδϯʢ%ϨϯμϦϯάɺωοτϫʔΫ౳ʣͷ։ൃʹूத
 
 ೥݄ɹʮΫϦελϧɾΫϥογϡʯͷήʔϜ։ൃΛ։࢝
 ɹɹɹɹɹɹɹʔɹΫϥΠΞϯτଆͷήʔϜػೳͱαʔόʔ΁ͷIUUQT"1*௨৴ɹ<$ >
 ɹɹɹɹɹɹɹʔɹαʔόʔଆͷΞΧ΢ϯτ؅ཧ ϩάΠϯɺϢʔβʔσʔλऔಘ IUUQT"1*ɹ<1)1>
 ɹɹɹɹɹɹɹʔɹϩϏʔαʔόʔͰਓͷϓϨΠϠʔͷϦΞϧλΠϜήʔϜ௨৴ɹ<$ >
 
 ೥݄ɹʮΫϦελϧɾΫϥογϡʯΛ౦ژήʔϜγϣ΢ग़లͱಉ࣌ʹΞϓϦ഑৴ ։ൃ σβΠφʔ Իָ4'9
  4.  ɹʮDPMEGVTJPODPKQʯͱʮUPLZPEFNPGFTUKQʯ
 ɹɹɹͷ8FCαʔόʔ "QBDIF 
  ɹ.BJMαʔόʔ QPTUpYEPWFDPU
 ɹɹɹTQBNBTTBTTJONBJMNBO 


     ɹ42-αʔόʔ NZTRM 
  ɹ*3$Ϙοτ FHHESPQ 
  ɹHJUTWOϦϙδτϦ TTI 
  ɹϏϧυαʔόʔ CVJMECPU 
  ɹ$SZTUBM$MBTIϩϏʔήʔϜαʔόʔ AWSࣄྫ঺հ ʔ ߏ଄
  5.  ɹʮDPMEGVTJPODPKQʯͱʮUPLZPEFNPGFTUKQʯ
 ɹɹɹͷ8FCαʔόʔ "QBDIF 
  ɹ.BJMαʔόʔ QPTUpYEPWFDPU
 ɹɹɹTQBNBTTBTTJONBJMNBO 


     ɹ42-αʔόʔ NZTRM 
  ɹ*3$Ϙοτ FHHESPQ 
  ɹHJUTWOϦϙδτϦ TTI 
  ɹϏϧυαʔόʔ CVJMECPU 
  ɹ$SZTUBM$MBTIϩϏʔήʔϜαʔόʔ AWSࣄྫ঺հ ʔ ߏ଄
  6. AWSࣄྫ঺հ ʔ ߏ଄ $16ฏۉdɺϐʔΫ࣌໿ɺ(#TXBQ
 ϓϨΠϠʔਓͷதɺήʔϜߦ͏ʢ࣌ؒ͝ͱʹ໿ήʔϜʣ
 ˞$16࢖༻ͷͭ͸ίϯύΠϧத

  7. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ "OJNPUPࣾͰར༻ͨ͠ܧଓతΠϯςάϨʔγϣϯͱ σϓϩΠͷշద͞ΛࣗࣾγεςϜ։ൃʹऔΓࠐΜͰɺ &$ʹCVJMECPUNBTUFS αʔόʔ Λઃఆɻ

  8. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ "OJNPUPࣾͰར༻ͨ͠ܧଓతΠϯςάϨʔγϣϯͱ σϓϩΠͷշద͞ΛࣗࣾγεςϜ։ൃʹऔΓࠐΜͰɺ &$ʹCVJMECPUNBTUFS αʔόʔ Λઃఆɻ

  9. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ "OJNPUPࣾͰར༻ͨ͠ܧଓతΠϯςάϨʔγϣϯͱ σϓϩΠͷշద͞ΛࣗࣾγεςϜ։ൃʹऔΓࠐΜͰɺ &$ʹCVJMECPUNBTUFS αʔόʔ Λઃఆɻ ➤ HJUϦϙδτϦ΁ͷίϛοτͱϓογϡ

    ➤ CVJMECPUNBTUFS͸HJUϦϙͷߋ৽Λ൑அɺ
 ɹɹɹJ.BDͷCVJMECPUXPSLFSʹϏϧυ࣮ߦ ➤ ಉ࣌ʹͭͷϓϥοτϑΥʔϜͷϏϧυ͕ߦ͏ ➤ Ϗϧυ׬ྃͨ͠Βɺςετ͕ߦ͏ ➤ ςετ0,ͷ৔߹͸શͯͷ࣮ߦϑΝΠϧΛ%SPQCPY΁ίϐʔ CVJMECPUXPSLFS ΫϥΠΞϯτ ͸ࣾ಺ͷJ.BDͰ࣮ࡍ ίϯύΠϧͱςετ͕ߦ͏ɿ

  10. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ "OJNPUPࣾͰར༻ͨ͠ܧଓతΠϯςάϨʔγϣϯͱ σϓϩΠͷշద͞ΛࣗࣾγεςϜ։ൃʹऔΓࠐΜͰɺ &$ʹCVJMECPUNBTUFS αʔόʔ Λઃఆɻ ➤ HJUϦϙδτϦ΁ͷίϛοτͱϓογϡ

    ➤ CVJMECPUNBTUFS͸HJUϦϙͷߋ৽Λ൑அɺ
 ɹɹɹJ.BDͷCVJMECPUXPSLFSʹϏϧυ࣮ߦ ➤ ಉ࣌ʹͭͷϓϥοτϑΥʔϜͷϏϧυ͕ߦ͏ ➤ Ϗϧυ׬ྃͨ͠Βɺςετ͕ߦ͏ ➤ ςετ0,ͷ৔߹͸શͯͷ࣮ߦϑΝΠϧΛ%SPQCPY΁ίϐʔ ر๬ɿ&$ͰNBD04࢖͍͍ͨʂ CVJMECPUXPSLFS ΫϥΠΞϯτ ͸ࣾ಺ͷJ.BDͰ࣮ࡍ ίϯύΠϧͱςετ͕ߦ͏ɿ

  11. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ ϓϥοτϑΥʔϜ͝ͱͷϏϧυ৘ใʢίϯύΠϥͷ ϝοηʔδɺϩάͳͲʣ͸&$ͷCVJMECPUNBTUFS ʹసૹ͞Εɺϒϥ΢βͰ؆୯ʹݟΕΔɻ

  12. AWSࣄྫ঺հ ʔ Ϗϧυαʔόʔ ϓϥοτϑΥʔϜ͝ͱͷϏϧυ৘ใʢίϯύΠϥͷ ϝοηʔδɺϩάͳͲʣ͸&$ͷCVJMECPUNBTUFS ʹసૹ͞Εɺϒϥ΢βͰ؆୯ʹݟΕΔɻ શͯͷϏϧυεςοϓ͕੒ޭͯ͠Δ৔߹͸੨͘දࣔɺ Τϥʔ͕ى͖ͨ৔߹ʢίϯύΠϧΤϥʔɺςετࣦഊ ͳͲʣ͸੺͘දࣔɻ

  13. AWSࣄྫ঺հ ʔ σϓϩΠ CVJMECPUNBTUFSʹGBTUMBOF IUUQHJUIVCDPN GBTUMBOF ΛऔΓࠐΜͰɺϘλϯͭͰJ5VOFT$POOFDUͱ (PPHMF1MBZ΁௚઀ϏϧυͱϝλσʔλΛΞοϓϩʔυɻ

  14. AWSࣄྫ঺հ ʔ σϓϩΠ CVJMECPUNBTUFSʹGBTUMBOF IUUQHJUIVCDPN GBTUMBOF ΛऔΓࠐΜͰɺϘλϯͭͰJ5VOFT$POOFDUͱ (PPHMF1MBZ΁௚઀ϏϧυͱϝλσʔλΛΞοϓϩʔυɻ ෼ʙ෼ఔ౓Ͱ৽͍͠Ϗϧυ͸഑৴͞ΕɺࣾһνʔϜ ͷ୺຤Ͱ5FTU'MJHIUͱ(PPHMF1MBZ͔Βμ΢ϯϩʔυ͠

    ͯɺ֬ೝͰ͖Δɻ
  15. AWSࣄྫ঺հ ʔ σϓϩΠ CVJMECPUNBTUFSʹGBTUMBOF IUUQHJUIVCDPN GBTUMBOF ΛऔΓࠐΜͰɺϘλϯͭͰJ5VOFT$POOFDUͱ (PPHMF1MBZ΁௚઀ϏϧυͱϝλσʔλΛΞοϓϩʔυɻ ෼ʙ෼ఔ౓Ͱ৽͍͠Ϗϧυ͸഑৴͞ΕɺࣾһνʔϜ ͷ୺຤Ͱ5FTU'MJHIUͱ(PPHMF1MBZ͔Βμ΢ϯϩʔυ͠

    ͯɺ֬ೝͰ͖Δɻ CVJMECPUͱGBTUMBOFͷ͓ӄͰʮΫϦελϧɾΫϥογϡʯ ։ൃதͷνʔϜϑΟʔυόοΫ͕͔ͳΓૣ͘औΕͯɺ
 ໿ϲ݄Ͱ׬੒͕Ͱ͖ͨɻ
  16. ૬खͷύωϧ΋ώϯτʹͳΔ ɹ͓ޓ͍ʹՃ଎͍ͯ͘͠ɺ௒߈ܸతύζϧ߹ઓʂʰΫϦελϧɾΫϥογϡʱ͸ϦΞϧλΠ ϜରઓܕͷϩδοΫύζϧ31(Ͱ͢ɻύζϧΛղ͘͜ͱͰखʹೖΔฌ࢜΍ΤωϧΪʔΛར༻͠ɺ૬खͷྖ౔Λ઎ྖ͠Α͏ʂ

  17. AWSࣄྫ঺հ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͢ʂ