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

『あんさんぶるスターズ!!』 リニューアルと新作の同日リリースを支えたインフラ技術

Hiroshi SUMI
December 03, 2020

『あんさんぶるスターズ!!』 リニューアルと新作の同日リリースを支えたインフラ技術

2020年9月に開催された「CEDEC 2020」の登壇資料です。

https://cedec.cesa.or.jp/2020/

ーーー
2020年3月15日スマートフォンゲームアプリ『あんさんぶるスターズ!』のリニューアル版『あんさんぶるスターズ!!Basic』と新作リズムゲーム『あんさんぶるスターズ!!Music』の2つのアプリを同日にリリースしました。

好評いただいている女性向け人気タイトルのリニューアル版と新作を同時にリリースするという計画に向け、スケーラブルな環境を求めてのクラウド環境への移行、蓄積していた技術的負債の返済、事前登録70万人超の人気タイトルの続編の2本同時リリースで予想される大量アクセスへの対応といった準備を、リリースまで約1年2ヶ月かけて行ってまいりました。

本セッションではこれら同日リリースまでの計画からリリースまでのプロセスで得られた
・パブリッククラウド選定に関して、AWSに最終決定するまでの意思決定プロセス
・技術的負債の返済・非返済箇所の取捨選択のプロセス
・クラウド移行の初期計画の失敗とリカバリー
・リリースに向けた大量アクセスに対する負荷試験とリリースに向けた体制
・運用開始後の2つの同日リリースタイトルのアクセス傾向と特徴
といった情報について、ご紹介させていただきます。
ーーー

Hiroshi SUMI

December 03, 2020
Tweet

More Decks by Hiroshi SUMI

Other Decks in Programming

Transcript

  1. ຊ೔͓࿩͢Δ͜ͱ ຊηογϣϯͰ͸͜ͷਓؾήʔϜͷ৽࡞λΠτϧಉ೔ϦϦʔεͷɺ ܭը͔ΒϦϦʔε·ͰͷϓϩηεͰಘΒΕͨ • Ϋϥ΢υબఆ • ٕज़తෛ࠴ͷฦࡁ • େྔΞΫηε΁ͷ४උ •

    ϦϦʔεʹ޲͚ͨ४උͱମ੍ • ಉ೔ϦϦʔελΠτϧͷΞΫηε܏޲ͱಛ௃ ʹؔ͢Δ৘ใɾ஌ݟʹ͍ͭͯɺ͝঺հ͍͖ͤͯͨͩ͞·͢ɻ ˜)BQQZ&MFNFOUT,, 
  2. ࣗݾ঺հ • ࿯ݟܒࢤʢ͢ΈͻΖ͠ʣ • ೥݄ΑΓ)BQQZ&MFNFOUTגࣜձࣾ ʹۈ຿ • ژ౎ͷΧΧϦΞελδΦॴଐ • ΠϯϑϥάϧʔϓͷϦʔμʔɾΠϯϑϥΤϯδχΞ

    • ෳ਺ͷήʔϜλΠτϧͷΠϯϑϥͷӡ༻ͱಋೖࢧԉ • લ৬Ͱ͸ήʔϜσΟϨΫλʔɾήʔϜϓϩσϡʔαʔ • झຯ͸ࣗసं • ٳ೔͸େࡕͷ๺ઁͷࢁͷதͰ΋͕͍͍ͯ·͢ ˜)BQQZ&MFNFOUT,, 
  3. )BQQZ&MFNFOUTגࣜձࣾ ๺ژΛڌ఺ʹΞδΞݍͰήʔϜαʔϏεΛల։͢Δʮ)BQQZ&MFNFOUTά ϧʔϓʯͷ೔ຊࢠձࣾɻ೔ຊࢢ৔ʹ޲͚ͨΦϦδφϧήʔϜͷ։ൃɾӡӦ Λߦ͏ɻ )BQQZ&MFNFOUTגࣜձࣾ  ˜)BQQZ&MFNFOUT,, 設⽴ ︓2010年 4⽉

    代表取締役︓新井元基 所在地 ︓京都府京都市下京区⽴売⻄町82 京都恒和ビル6F 従業員 ︓社員数︓228名 学⽣アルバイト12名(2020年6⽉現在) 平均年齢 ︓30歳(2020年6⽉現在) 資本⾦ ︓5,000万円
  4. ͋Μ͞ΜͿΔελʔζʂʂʹ͍ͭͯ ˜)BQQZ&MFNFOUT,,  طଘλΠτϧ ʮ͋Μ͞ΜͿΔελʔζʂʯ d ৽ষʮ͋Μ͞ΜͿΔελʔζʂʂʯ d ʮ͋Μ͞ΜͿΔελʔζʂʂ#BTJDʯ طଘλΠτϧͷϦχϡʔΞϧ

    ैདྷͷϓϨΠελΠϧ ڞ௨ͷετʔϦʔʗΠϥετͰ༡΂Δʂ ʮ͋Μ͞ΜͿΔελʔζʂʂ.VTJDʯ ৽࡞ήʔϜ ৽͍͠ϦζϜήʔϜελΠϧ େܕΞοϓσʔτ
  5. ೥࣌఺ͷٕज़ελοΫ γεςϜ؀ڥ ˜)BQQZ&MFNFOUT,,  04 $FOU04SFMFBTF  ։ൃݴޠ 3VCZ 

    ϑϨʔϜϫʔΫ 3BJMT  "1αʔό 6OJDPSO  8FCαʔό OHJOY   3%# .Z42-  /P42-%# $BTTBOESB  $BDIF NFNDBDIE   $BDIF SFEJT   ˞ ಺͸ͦͷ౰࣌ͷ࠷৽όʔδϣϯ
  6.  ϝϧΫετʔϦΞ άϧʔϓ ͋Μ͞ΜͿΔελʔζʂ άϧʔϓ ϥετϐϦΦυ άϧʔϓ ৽نλΠτϧ άϧʔϓ ৽نλΠτϧ

    Πϯϑϥάϧʔϓ Πϯϑϥӡ༻ ։ൃ ։ൃ ։ൃ ։ൃ Ϋϥ΢υ ؀ڥ Ϋϥ΢υ ؀ڥ Ϋϥ΢υ ؀ڥ Ϋϥ΢υ ؀ڥ Πϯϑϥάϧʔϓͷӡ༻ମ੍ Πϯϑϥ ஌ݟɾϊ΢ϋ΢ ˜)BQQZ&MFNFOUT,,
  7. ൺֱ ೥݄ ˜)BQQZ&MFNFOUT,,  "84 "NB[PO8FC4FSWJDFT ($1 (PPHMF$MPVE1MBUGPSN "[VSF .JDSPTPGU"[VSF

    ݸਓͷҹ৅ ख޿͘ݻ͍ ઌਐతɾΤϯδχΞ޷Έ 8JOEPXTɾ9CPY ڧΈ *BB4ͱͯ͠ͷྺ࢙ ಋೖࣄྫʗ৘ใͷଟ͞ αϙʔτ ෼ੳɾػցֶशܥ άϩʔόϧωοτϫʔΫ ίετ .JDSPTPGU੡඼ͱͷ ਌࿨ੑ ωοτ্ͷ৘ใྔ ݕࡧɿ"84   ݅ ݕࡧɿ($1   ݅ ݕࡧɿ"[VSF   ݅ ਓؾαʔϏε &$ "VSPSB 3FETIJGU $MPVE4QBOOFS (PPHMF"QQ&FOHJOF #JH2VFSZ 7JSUVBM.BDIJOFT ",4 42-%BUB8BSFIPVTF ධՁ ˕ "VSPSBͱࣄྫ৘ใͷଟ͞ ˕ 4QBOOFSͱ("&Ͱ ໨ࢦͤ/P0QTߏ੒ ˛ 8JOEPXT4FSWFS ࢖͏ͳΒҰ୒͕ͩʜɻ
  8. ൺֱ ೥݄ ˜)BQQZ&MFNFOUT,,  "84 "NB[PO8FC4FSWJDFT ($1 (PPHMF$MPVE1MBUGPSN ήʔϜۀքͰͷࣄྫ΍ ৘ใ͕ଟ͍͜ͱ

    ݕࡧɿ"84   ݅ ήʔϜࣄྫଟ͍ ݕࡧɿ($1   ݅ ήʔϜࣄྫগͳ͍ 3VCZ͕࢖͍΍͍͢؀ڥ &$΍ίϯςφ͸ ಛʹ໰୊ͳ͠ ($&΍ίϯςφ͸ ಛʹ໰୊ͳ͠ ("&4&͕3VCZඇରԠ ݱࡏ͸Ќ൛͕ରԠ ѻ͍΍͍͢3%# "VSPSB ήʔϜࣄྫଟ͍ $MPVE4QBOOFS ෼ࢄ%#ಛ༗ͷΫη΋ ήʔϜࣄྫগͳ͍ ˕ ˕ ˓ ˓ ˓ ˓
  9. ʮ͋Μ͞ΜͿΔελʔζʂʂ#BTJDʯͷฦࡁΞϓϩʔν • ʮ͋Μ͞ΜͿΔελʔζʂʯͷϦχϡʔΞϧ • ʮ͋Μ͞ΜͿΔελʔζʂʯͷϦϦʔε͸೥ • গ͠ݹ͍͕ɺطଘϦιʔεɾϊ΢ϋ΢͕ͨ͘͞Μ͋Δ • ͜ΕΛ׆͔͞ͳ͍ख͸ͳ͍ •

    ࠓޙ΋௕ظతʹӡ༻͢ΔͨΊʹඞཁͳՕॴͷΈฦࡁ • རଉͷߴ͍Օॴ͸༏ઌͯ͠ฦࡁ • རଉͷ௿͍Օॴ͸आΓͨ··༗ޮ׆༻ ˜)BQQZ&MFNFOUT,, 
  10. Ϋϥ΢υར༻ͷੈ୅ผ܏޲ ˜)BQQZ&MFNFOUT,,  ୈҰੈ୅ *BB4ͱͯ͠ͷ׆༻ ΦϯϓϨϛε؀ڥ͔Βͷ Ϧϑτˍγϑτ ओͳར༻αʔϏε &$ ୈೋੈ୅

    ୈࡾੈ୅ *BB4ͱͯ͠ͷ׆༻ ʴ ϚωʔδυαʔϏε ͷ׆༻ ओͳར༻αʔϏε &$ɺ&$4 3%4ɺ%ZOBNP%# &MBTUJ$BDIF ϑϧϚωʔδυαʔϏε ͷϑϧ׆༻ αʔόʔϨε /P0QT ओͳར༻αʔϏε 'BSHBUF -BNCEB %ZOBNP%#
  11. Ϋϥ΢υར༻ͷੈ୅ผ܏޲ ⇛ࣄྫ΋ଟ͍ୈೋੈ୅ͷ࢖͍ํΛબ୒ ˜)BQQZ&MFNFOUT,,  ୈೋੈ୅ ୈࡾੈ୅ *BB4ͱͯ͠ͷ׆༻ ʴ ϚωʔδυαʔϏε ͷ׆༻

    ओͳར༻αʔϏε &$ɺ&$4 3%4ɺ%ZOBNP%# &MBTUJ$BDIF ϑϧϚωʔδυαʔϏε ͷϑϧ׆༻ αʔόʔϨε /P0QT ओͳར༻αʔϏε 'BSHBUF -BNCEB %ZOBNP%# ୈҰੈ୅ *BB4ͱͯ͠ͷ׆༻ ΦϯϓϨϛε؀ڥ͔Βͷ Ϧϑτˍγϑτ ओͳར༻αʔϏε &$
  12. ʮ͋Μ͞ΜͿΔελʔζʂʂ.VTJDʯͷฦࡁΞϓϩʔν ίϯςφͷࣄྫ΋ଟ͘ͳ͖ͬͯͨ • "844VNNJU5PLZP  • ίϯςφؔ࿈ηογϣϯɿ݅ • "844VNNJU5PLZP •

    ίϯςφؔ࿈ηογϣϯɿ݅ • ήʔϜۀքࣄྫ • ΞΧπΩ͞Μ $&%&$ "844VNNJU • ϩϚαΨ34ΛͲͷΑ͏ʹΫΠοΫʹεέʔϧ͔ͤͨ͞ ʙ&MJYJS "NB[PO&$4౳ͷٕज़ཁૉΛަ͑ͯʙ • ϩϚαΨ34ͷେن໛τϥϑΟοΫΛࡹ͘ "NB[PO&$4%PDLFSӡ༻ͷ஌ݟ ˜)BQQZ&MFNFOUT,, 
  13. ͋Μ͞ΜͿΔελʔζʂ#BTJDͷٕज़ߏ੒ ˜)BQQZ&MFNFOUT,,  ΫϥΠΞϯτ αʔόʔαΠυ "1* ͦͷଞπʔϧ $MPVE'SPOU "NB[PO4 Ξηοτ഑৴8FC

    &$ "VSPSB &MBTUJ$BDIF "QQMJDBUJPO -PBE #BMBODFS $PEF#VJME $PEF%FQMPZ "NB[PO-JOVY $MPVE8BUDI-PHT $MPVE'SPOU
  14. ͋Μ͞ΜͿΔελʔζʂ#BTJDͷΞʔΩςΫνϟ  ˜)BQQZ&MFNFOUT,, $MPVE'SPOU 6TFS%# "VSPSB 4IBSEJOH "QQMJDBUJPO -PBE#BMBODFS $MPVE8BUDI

    -PHT "NB[PO&MBTUJ$BDIF 3FEJT "NB[PO&MBTUJ$BDIF .FNDBDIFE .PCJMF $MJFOU .BTUFS%# "VSPSB -PHT "84$MPVE "NB[PO4 "NB[PO8"' ,JOFTJT %BUB'JSFIPTF "NB[PO&$ ʜ "NB[PO 4
  15. ͋Μ͞ΜͿΔελʔζʂ.VTJDͷٕज़ߏ੒ ˜)BQQZ&MFNFOUT,,  ΫϥΠΞϯτ αʔόʔαΠυ "1* ͦͷଞπʔϧ $MPVE'SPOU "NB[PO4 Ξηοτ഑৴8FC

    "NB[PO&$4 "NB[PO&$ "VSPSB &MBTUJ$BDIF "QQMJDBUJPO -PBE #BMBODFS $PEF#VJME $PEF%FQMPZ "NB[PO-JOVY &$40QUJNJ[FE "NB[PO&$3 $MPVE8BUDI-PHT $MPVE'SPOU
  16. ͋Μ͞ΜͿΔελʔζʂ.VTJDͷΞʔΩςΫνϟ  ˜)BQQZ&MFNFOUT,, $MPVE'SPOU 6TFS%# "VSPSB 4IBSEJOH "QQMJDBUJPO -PBE#BMBODFS $MPVE8BUDI

    -PHT "NB[PO&MBTUJ$BDIF 3FEJT "NB[PO&MBTUJ$BDIF .FNDBDIFE .PCJMF $MJFOU .BTUFS%# "VSPSB -PHT "84$MPVE "NB[PO4 "NB[PO8"' ,JOFTJT %BUB'JSFIPTF "NB[PO&$4 &$MBVODIUZQF $POUBJOFST ʜ "NB[PO&$$MVTUFS "NB[PO 4
  17. ͋Μ͞ΜͿΔελʔζʂʂ#BTJDΫϥ΢υҠߦܭը σʔλҠߦʢҠߦखஈͷݕ౼ʣ • Ҡߦର৅σʔλ • $BTTBOESB • Ϣʔβʔͷσʔλ • .Z42-

    • ήʔϜͷϚελσʔλ • 3FEJT • ͦͷଞʢΠϕϯτϥϯΩϯά৘ใͳͲʣ ˜)BQQZ&MFNFOUT,, 
  18. $BTTBOESBͷσʔλҠߦ͕೉ߤ ͲͷΑ͏ʹҠߦ͢Ε͹Α͍ͷ͔ख๏͕Α͘Θ͔Βͳ͍ • σʔλϑΝΠϧΛͦͷ··͍͚࣋ͬͯͬͨͩͰ͸ಈ͔ͳ͍ • σʔλϑΝΠϧΛͦͷ··͍࣋ͬͯͬͯ SFQBJSίϚϯυΛଧͭ • ίϚϯυऴྃ·Ͱ਺೔্͔͔ͬͨʹɺಈ͔ͳ͍ •

    $BTTBOESBͷίϯαϧاۀʹೖͬͯ΋Βͬͯݕ౼ • 445BCMFͱ͍͏σʔλΛ࠶ߏங͠ͳ͚Ε͹ͳΒͳ͍ • TTUBCMFMPBEFSͱ͍͏πʔϧΛ࢖͏ͱ࠶ߏஙͰ͖ΔΒ͍͠ • TTUBCMFMPBEFSͷಈ࡞ݕূΛ࣮ࢪ ͜͜·ͰͨͲΓண͘ͷʹϲ݄௒͔͔ͬͯ͠·ͬͨ ˜)BQQZ&MFNFOUT,, 
  19. Ұ੪ҠߦͰͷݒ೦఺ • ૝ఆ͞ΕΔେྔͷΞΫηεΛ"84Ͱࡹ͘͜ͱ͕Ͱ͖Δ͔ʁ • ࣄલొ࿥Ϣʔβʔສਓ • αʔόʔ &$ ͷΩϟύγςΟΛͲͷΑ͏ʹ͢Δͷ͔ʁ •

    $16ɾϝϞϦͷεϖοΫ ຊདྷ͸ϦϑτˍγϑτͰࢦඪɾ஌ݟΛूΊ͔ͨͬͨ ˠେྔΞΫηε΁ͷ४උ࡞ۀΛΛೖ೦ʹߦ͏ • ෛՙࢼݧɾύϑΥʔϚϯενϡʔχϯάɾΩϟύγςΟઃܭ ˜)BQQZ&MFNFOUT,, 
  20. ϦϦʔε࣌ͷ૝ఆ • ϦϦʔε౰೔ͷϢʔβʔ਺ %"6 • ສਓ • ࣄલొ࿥Ϣʔβʔສਓͷ͏ׂͪ͸౰೔ʹ΍ͬͯ͘Δͱ૝ఆ • ૝ఆΞΫηε਺

    •  314 3FRVFTU1FS4FDPOE • ਓؾΠϕϯτ࣌ͷΞΫηε਺Λࢀߟʹ ͜ͷ૝ఆΛϕʔεʹʮ͋Μ͞ΜͿΔελʔζʂʂ#BTJDʯʮ͋Μ͞Μ ͿΔελʔζʂʂ.VTJDʯͱ΋ʹ४උΛ࣮ࢪ ˜)BQQZ&MFNFOUT,, 
  21. σʔλϕʔεͷਫฏ෼ׂ γϟʔσΟϯά ࠓճ͸Ϣʔβʔ*%Ͱͷਫฏ෼ׂ γϟʔσΟϯά Λ࠾༻ • ਨ௚෼ׂʹ͢ΔͱτϥϯβΫγϣϯ؅ཧ͕େม • ಛఆͷ%#΁ͷΞΫηεूத͕ൃੜͮ͠Β͍ •

    ࣮૷͕؆୯ 3BJMTͷϚϧν%#Λ׆༻ ͨͩ͠ɺӡ༻։࢝ޙͷ෼ׂ਺ͷมߋ Ϧγϟʔυ ͸େมͳ࡞ۀʹͳΔ ͷͰɺ࠶෼ׂ͕ඞཁͳ͍Α͏ͳ༨༟Λ࣋ͬͨΩϟύγςΟ͕ඞཁ ˜)BQQZ&MFNFOUT,, 
  22. ෳ਺ͷ໨తผෛՙࢼݧ ୯ମෛՙࢼݧ • ࠷খߏ੒Ͱͷෳ਺ػೳͷෛՙࢼݧ • ύϑΥʔϚϯεͷଌఆ • ΩϟύγςΟઃܭͷͨΊͷଌఆ • ΠϯελϯελΠϓɾαΠζɾλεΫ਺ɾίϯςφ਺ɾ$16ͱϝϞ

    Ϧͷׂ౰ͳͲ૊Έ߹ΘͤΛม͑ͯɺ૊Έ߹Θͤ͝ͱͷύϑΥʔϚϯε Λଌఆɻ࠷దͳ૊Έ߹ΘͤΛ୳Δ • ύϑΥʔϚϯενϡʔχϯά • ΞϓϦଆͰ໰୊ͷ͋Δ࣮૷Օॴͷચ͍ग़͠ ಛʹ/ ΫΤϦ • /FX3FMJDΛར༻͢Δͱ໰୊ͱͳΔՕॴ͕͙͢ಛఆͰ͖Δ ˜)BQQZ&MFNFOUT,, 
  23. ΩϟύγςΟઃܭ ૝ఆΞΫηε਺Λࡹͨ͘ΊͷɺαʔόʔεϖοΫɾ୆਺ͷ࠷ऴௐ੔ • ༷ʑͳ૊Έ߹ΘͤͰύϑΥʔϚϯεΛଌఆ • ʮ͋Μ͞ΜͿΔελʔζʂʂ#BTJDʯ • $16ɺϝϞϦɺεϨου਺ • ʮ͋Μ͞ΜͿΔελʔζʂʂ.VTJDʯ

    • $16ɺϝϞϦɺίϯςφ਺ɺεϨου਺ • ୆͋ͨΓͷίϯςφ਺ • ίϯςφ΁ͷ$16ͱϝϞϦͷׂ౰ • %"5"%0(Λத৺ʹϞχλϦϯά ˜)BQQZ&MFNFOUT,, 
  24. "84ΤϯλʔϓϥΠζαϙʔτͷ׆༻ "84*OGSBTUSVDUVSF&WFOU.BOBHFNFOU *&. "84αϙʔτʹΑΔಛผͳࢧԉʢΤϯλʔϓϥΠζɾϏδωε ༗ঈ ʣ ࢧԉ಺༰  ΞʔΩςΫνϟϨϏϡʔͷ࣮ࢪͱਪ঑ઃఆͷҊ಺ 

    ϗοτϥΠϯɾίϛϡχέʔγϣϯπʔϧΛར༻ͨ͠࿈བྷͷड෇  Πϕϯτ౰೔ͷϞχλϦϯά  Πϕϯτͷ૬ஊ૭ޱ͓ΑͼΤϯδχΞͷ༏ઌରԠ  Πϕϯτޙͷ݁Ռ෼ੳϨϙʔτ ˜)BQQZ&MFNFOUT,, 
  25. ·ͱΊ  ϦϦʔε·Ͱͷࣄલ४උ • σʔλϕʔεͷਫฏ෼ׂ γϟʔσΟϯά • ໨తผͷෳ਺ͷෛՙࢼݧ • "1.Λ͔ͭͬͨޮՌతͳύϑΥʔϚϯενϡʔχϯά

    • ෳ਺ͷ૊Έ߹ΘͤΛࢼͯ͠ͷΩϟύγςΟઃܭ • "84ΤϯλʔϓϥΠζαϙʔτͷ༗ޮ׆༻ ˜)BQQZ&MFNFOUT,, 
  26. ·ͱΊ  ϦϦʔε౰೔ • σʔλҠߦτϥϒϧ͸͋ͬͨ΋ͷͷɺ྆λΠτϧͱ΋ແ ࣄʹಉ೔ϦϦʔε׬ྃ  ϦϦʔεޙ • Ϣʔβʔ਺ɾΞΫηε਺ͷ܏޲ʹࠩҟ͕͋Γ

    • εϙοτΠϯελϯεͱϦβʔϒυΠϯελϯεΛ׆༻ ͠ɺίετΛ཈͑ͨεέʔϥϒϧͳ؀ڥΛߏங ˜)BQQZ&MFNFOUT,,