SlideShare a Scribd company logo
‫ؙ‬পૠெ९‫ش‬३কঝ।‫ش‬঒॑
‫੍ؙ‬इॊૼ୒
‫  ؙ‬ॡছक़ॻ॑ણ৷खञৈ଀෰ৌੁ 

ઙૄভ঺ॖথইॕॽॵॺঝ‫ش‬উ
‫ૈؙ‬੩ 健太郎
ঽഞງஂ
ૈ੩ 健太郎
 ైචলମ‫ైؚ‬ච૔ક
 উটॢছঐ
 ke-tai.org 管理⼈
 ॥‫ش‬ছधংॖॡॶ‫ش‬জথॢऋ஀ऌ
 ઙૄভ঺ॖথইॕॽॵॺঝ‫ش‬উ৻਀
ঽഞງஂ
ઙૄভ঺ॖথইॕॽॵॺঝ‫ش‬উ
 北海道札幌市のソフトウェア開発会社


 ৫৅ৰౚ‫ق‬਌प१‫ش‬ং१ॖॻ॑૿ਊ‫ك‬
‫ؙ‬ঈছक़२ਕবಂ(2009)
‫ؙ‬ஶ௟ॡग़५ॺ(2010)
‫ؙ‬Lord of Knights(2012)
‫ؙ‬ॡॖ‫ش‬থ६ঈঞॖॻ THE CONQUEST (2012)
 ※プログラム開発のみを担当しており、企画・運営は⾏っておりません
9LPਫ਼৒
9LP⼒がぐんぐんと上昇してYLPUFも⻑くなる
KHOSप૗ॎॊ୓ৗ৓ऩ9LPभ৾ಆু஺




‫پ‬ઽஇभ঳৖म‫ؚ‬क़फ़থॲभ౩ऽोऩः৕୹ञठभରஃपઞ৷औचथःञटःथउॉऽघ
3+3ਫ਼৒
৸বਐযभ3+3HUभञीप৫৅
3+3⼒がぐんぐんと上昇してSKSLQLも⻑くなる‫
ء‬
ZZZSKSQHWPDQXDOMD प৻ॎॊ୓ৗ৓ऩ3+3भ৾ಆু஺
L3KRQH‫$ط‬QGURLG૏ৌૢ




               ੺঩ਁ৫੒৒‫آ‬
ँःइॊञ॒੿ॉऽखञ
ॖথইॕॽॵॺঝ‫ش‬উभঐ५॥ॵॺय़কছॡॱ‫ش‬
َँःइॊञُ॒॑੿ॉऽखञ‫؛‬
ম঩भ৔ઍ


 ਈ੺भ९‫ش‬३কঝ।‫ش‬঒৫৅হੲपणःथ
 ॖথইছपणःथ
 ੉ୁृইঞ‫ش‬঒ড‫ش‬ॡपणःथ
 ଀෰ৌੁपणःथ‫:ق‬HEౣ‫ك‬
 ଀෰ৌੁपणःथ‫%'ق‬ౣ‫ك‬
 ଀෰ॸ५ॺपणःथ
 ૞અपखथःॊੲਾपणःथ
 ऽधी
ᾧ




ਈ੺भ९‫ش‬३কঝ।‫ش‬঒হੲ
ᾧ
९‫ش‬३কঝ।‫ش‬঒धम
९‫ش‬३কঝ।‫ش‬঒‫ق‬ஶୁ 6RFLDO *DPH‫ك‬म‫ؚ‬९‫ش‬३কঝ‫ॺॵॿ؞‬ড‫ش‬य़থॢ‫؞‬१
‫ش‬অ५‫ك616ق‬঱द઀୹औो‫౎ؚ‬भঘ‫ش‬२‫ش‬ध॥঑গॽॣ‫ش‬३ঙথ॑धॉऩऋैউ
ঞॖघॊड़থছॖথ।‫ش‬঒‫؞‬ঈছक़२।‫ش‬঒दँॊ‫؛‬


঩মदमॢজ‫ش‬ऋਈੂप९‫ش‬३কঝ।‫ش‬঒भ઀୹॑৫઩ख‫ؚ‬जभ৏ॹॕ‫؞ش‬ग़ॾ‫؞‬
ग़‫ش‬ऋઈ੾घॊ௚ఝਗ਼ਵ਱ऐ१‫ش‬অ५‫ؚ‬ঔং।‫ॱش‬क़থऋ઀୹॑৫઩खञِჁ൯ট
ডॖখঝّऋ৅னभ઩ऽॉधऩढञ‫؛‬年াपम616ব৔ਈপুभ঑ॡ३ॕऋ
َPL[L॔উজُभ१‫ش‬অ५॑৫઩‫ؚ‬পু।‫ش‬঒ভ঺ऋ઀୹घॊ।‫ش‬঒ऋ਺োऔो‫ؚ‬
5HNRRऋ઀୹घॊِ१থ३কॖথฝৃّऋ૞ਸ঻ऋਐয॑௭घऩन‫ؚ‬঳ඩ৒ା
घॊेअपऩढञ‫؛‬

:LNLSHGLDेॉ௷ხ
KWWSMDZLNLSHGLDRUJZLNL९‫ش‬३কঝ।‫ش‬঒
ソーシャルゲームを支える技術 ~ クラウドを活用した高負荷対策
ਈ੺भ९‫ش‬३কঝ।‫ش‬঒হੲ
ਰ৐धૻसॊधःौःौକऌथःॊऊु‫ء‬
९‫ش‬३কঝ।‫ش‬঒ऋॽগ‫ش‬५दਵ਻पऩॊऒधऋੜइञ
‫ڀ‬   ॻজছথॻੜ༢उेलजोपહྖघॊ507ਖ਻
‫ڀ‬   ॥থউफ़ॳক๱৿
‫ڀ‬   ऩ॒टऊ਼৑भ௯ਊञॉऋਘऎऩढञ
‫ڀ‬   ৏ौीञःुभ॑੿ढथःॊणुॉमऩः
‫ڀ‬   ग़থ४ॽ॔धखथमૼ୒पૐরखञः

ৰ੠भ୶஭म‫ँؚ‬ऽॉ૮ः
‫્ ڀ‬पঽীभఢॉपঢ়खथमँऽॉ୶஭ऋ૮ःेअट
‫ ڀ‬ञटखఢॉभ৸ே९‫ش‬३কঝ।‫ش‬঒प௪௡ऋऩऊढञযऽदऋ‫ؚ‬
‫َؙ‬পຣ୏‫ُء‬धୂःथऎॊधःअ୶஭ऋ
ਈ੺भ९‫ش‬३কঝ।‫ش‬঒হੲ
開発者から⾒た最近のソーシャルゲーム開発
५ঐ঍ऋ਌ਅৃपऩढथऌथःॊ
‫ॿ ڀ‬ॖॸॕঈ॔উজमुठौ॒‫0ؚ‬REDJH‫ु((5*؞‬
‫ ڀ‬ガラケー界隈は少し落ち着いて来た印象
‫3 ڀ‬਱ऐभ।‫ش‬঒਌प)ODVK॑ઞ৷
म਍৒खञ೽ਏ

ृढरॉ৸ேযमଌॉथःऩः
‫ڀ‬   ॡছॖ॔থॺ‫؞‬१‫ش‬ং‫؞‬ॖথইছऩन৸थऋଌॉऩः
‫ڀ‬   '%$‫'ق‬DWD%DVH $GPLQLVWUDWRU‫ك‬ऋ੎ฤऔोॊ
‫ڀ‬   +70/-6ग़থ४ॽ॔भॽ‫ش‬६ऋੜइजअ
‫ڀ‬   धमःइ੸ா৲ऋ઩ऽॉ‫ؚ‬ऩ॒ठूढथभ঵঻‫ط‬ग़থ४ॽ॔म
‫ؙ‬   जौजौᇋᆓऔोमगीॊऊु
ਈ੺भ९‫ش‬३কঝ।‫ش‬঒হੲ
૘खङण૗ॎढथःऎ९‫ش‬३কঝ।‫ش‬঒৫৅
૽સभ૗৲
‫ ڀ‬৫৅ૠெभఁপपൣःग़থ४ॽ॔੷ीैोॊुभु૗ॎढथऌञ
‫૽ ڀ‬સী૿भ৥ન৲‫ق‬ग़থ४ॽ॔۸੫઺‫⎻ؚ‬म⎻ોप‫ؚ‬ഄఴम೷ॉନघ‫ك‬

求められる能⼒
‫ڀ‬   継戦能⼒(続く運営・アップデート、終わりがない)
‫ڀ‬   情報の横への共有化、他者/他社への展開能⼒
‫ڀ‬   安定したリソース提供、⻑期を⾒越した教育スキームの確⽴
‫ڀ‬   海外展開能⼒

९‫ش‬३কঝ।‫ش‬঒ਰਗषभૢ৷ु
‫ ڀ‬ৈ଀෰:HE१‫ش‬অ५षभ৚ష‫ؚ‬।‫ش‬঑ইॕॣ‫ش‬३ঙথषभૢ৷
‫ ڀ‬జਟभ॥থ३গ‫ش‬ঐ‫ش‬।‫ش‬঒भॿॵॺ৲धजभংॵॡग़থॻ৫৅
ᾧ




ॖথইছपणःथ
ॖথইছपणःथ(1)

ソーシャルゲームとクラウドは相性が良い
インフラ視点から⾒たソーシャルゲームの特徴


‫؞‬জজ‫ش‬५৐भ঄ॵॺૠெ੒೾ऋ୔खः
‫ॻشঁ ڀؙ‬क़ख़॔৹୸ऋ୔खः
‫ ڀؙ‬঄ॵॺखञৃ়‫ؚ‬୯ਸঌ‫ش‬५ऋଫः


‫؞‬আ‫ش‬ॡ૗৿ऋপऌः
‫ ڀؙ‬ફभৢඐৎ‫ؚ‬໤೬ा‫ఽؚ‬৑
‫ ڀؙ‬ଅ঩‫ؚ‬াੂ
‫ ڀؙ‬य़কথঌ‫ش‬থॖঋথॺऩन
ॖথইছपणःथ(2)
Q. नऒ॑णऊढथःॊभ‫ء‬
A. 最近では国内のクラウドサービスを利⽤しています
਌पব৔ॡছक़ॻ॑ઞअऒधऋ੗ःदघ‫ँؚ‬धमAWSुઞःऽघ
ਲਗ਱ऐभ१‫ش‬অ५भৃ়म‫ऻऺؚ‬AWSदघ

ْॖথইছ৭लमశଞपপহ‫ٓآآ‬

こんなポイントを⾒て選んでいます
‫ ڀ‬コストや安定度(障害履歴)は当然⾒る
‫ુ ڀ‬થLBがあり、それが強⼒であること
‫ ڀ‬インスタンスの追加が容易で速いこと(電話やメールとかは論外‫ك‬
‫ॹ ڀ‬ॕ५ॡषभI/Oऋசऎ਍৒खथःॊऒध‫ؚ‬SSDಉुँॉऋञः
‫⾼ ڀ‬価でも強⼒なスペックのインスタンスが⽤意されている、
‫ ؙ‬または物理マシンとの併⽤が可能(最後の⼿段的な使い⽅‫ك‬
ॖথইছपणःथ(3)
१‫ش‬ংଡਛपणःथ‫੶ৣؙ‬भेअऩଡਛदघ‫ق‬नभ੧੯दुপ৬৊ग‫ك‬




                          ZZZ
                          $SDFKH௺
                          3+3௺$3

                          '%
                          064/௺  0+$

                          .96
                           PHPFDFKHG .RWR7FRRQ

                          जभ౎
                          UVVORJ FDFWL 0'16
ᾧ




੉ୁृইঞ‫ش‬঒ড‫ش‬ॡ
पणःथ
੉ୁृইঞ‫ش‬঒ড‫ش‬ॡपणःथ
 ੉ୁम਌पPHP॑ઞढथःऽघऋ‫ؚ‬
 ୦दुःःधઓःऽघ‫؛‬ইঞ‫ش‬঒ড‫ش‬ॡमঽ੿दघ
 ৫৅੉ୁ
 ‫3 3+3 ڀ‬HUO 5XEँञॉ॑ेऎୂऎ
 ‫ ڀ‬੭ਔऩ੉ୁदेःधઓअऋ‫ؚ‬৫৅জ९‫ش‬५भଓౄृ‫ؚ‬
 ‫ ؙ‬新⼈教育が容易な⾔語が向いている
 ইঞ‫ش‬঒ড‫ش‬ॡ
 ‫ ڀ‬ঽ੿ইঞ‫ش‬঒ড‫ش‬ॡ॑ઞढथःॊ
 ‫ ڀ‬以前はあえてのベタ書きだったが、開発効率や再利⽤性など
 ‫ ؙ‬の⾯からフレームワークを作成し利⽤するように
 ‫ ڀ‬VPIRQऩनभใோইঞ‫ش‬঒ড‫ش‬ॡ॑੝ୗखथઞढथःॊ
 ‫ ؙ‬ऩनभਵखुୂऎऋ‫ؚ‬ਈી৓पमဗ੝ୗऔोथःॊेअट
ᾧ




଀෰ॸ५ॺपणःथ
଀෰ॸ५ॺपणःथ(1)
まずはテストプレイなどから数値目標を⽴てる
‫؞‬੒୳औोॊ৊ৎமਢਯ
‫؞‬ঘ‫ش‬२ऋউঞॖदඝ੿घॊৎ৑
‫؞‬ঘ‫ش‬२ऋ分間に⾏うリクエストの数
【例】
৊ৎமਢਯ য‫ق‬৊ৎமਢਯधमৎ৑दமਢऋँढञঘॽ‫ش‬ॡঘ‫ش‬२ਯधघॊ‫ك‬
ঘ‫ش‬२ऋඝ੿घॊৎ৑ 分操作し続けて離脱と想定
ঘ‫ش‬२ऋ分間に⾏う平均リクエスト数 ৚

‫ ڀ‬ী৑भ৊ৎமਢঘ‫ش‬२ਯ    ঘ‫ش‬२
‫ ڀؙ‬ী৑पজॡग़५ॺऔोॊ৚ਯ  
  ৚
‫ ڀؙؙ‬ଧ৑पজॡग़५ॺऔोॊ৚ਯ    ৚

ٙ‫ؙ‬਴಑َজॡग़५ॺଧُ॑௥ञचोयेः
଀෰ॸ५ॺपणःथ(2)
-0HWHUद३ॼজड़॑੿ॊ
‫؞‬ऩॊसऎৰ੠भඝ੿प੺ः३ॼজड़पघॊ
‫੿؞‬ਛभু৑ऋऊऊॉघऍऩःेअपघॊ
‫؞‬全部をシナリオに⼊れるのは無理なので重い処理ランキングを元に、
 利⽤頻度と処理の重さを考慮して配分する


ॡছक़ॻ঱प-0HWHUクライアントを複数台⽤意して⼀⻫実⾏
୳৒खञਯக৯ఏ॑ॡজ॔दऌॊऊ॑નऊीॊ
ॲওऩैॳগ‫ॽش‬থॢ‫ܒ‬೾৒॑೷ॉନघ


଀෰ॸ५ॺपमॖথইছ৓ଳਡऋ੗ऎ૑ਏऩञी
このあたりを⼀緒に協⼒してくれる
ॖথইছग़থ४ॽ॔ऋ੎ฤऔोॊ
ᾧ




॔উজડभ଀෰ৌੁ
पणःथ
॔উজડभ଀෰ৌੁपणःथ(1)
଀෰ৌੁपु౦‫ँر‬ॊभदದपହ৥खऽघ

পऌऎ੸णपীऐथৌੁ
‫ৢુ ڀؙ‬৖ী‫ق‬ইঞ‫ش‬঒ড‫ش‬ॡ‫ك‬भৈச৲
‫଻ ڀؙ‬શঌ‫ش‬४ृ$3,भৈச৲

共通部分はあらゆる処理で呼ばれることになる
णऽॉPVଫऎऩोय‫ؚ‬জॡग़५ॺऩै೅ୀअ

ા৷ৌ஍ટऋৈःુৢ৖ী॑ર੔खथৌ૪ख‫ؚ‬
जभ৏प଻શभউটॢছ঒॑ৌ૪खथःऎ
॔উজડभ଀෰ৌੁपणःथ(2)
ৰ੠पઞॎोथःॊ଀෰ৌੁॳख़ॵॡজ५ॺ
【共通処理編ٓ
共通処理内で何をしているかを全て把握しているか
‫ ڀ‬どういう処理が⾏われるか、64/は何回流れているか、などを完全に把握すること
‫ ڀ‬共通部分に処理を⾜すときは、かならずチーム内で許諾を取ること
そもそも、その処理は本当に必要なのか
‫ ڀ‬最も効果的な負荷対策は、処理の速度を速めるより処理⾃体を無くすことである
‫્ ڀ‬पॡছॖ॔থॺ  サーバ型のアプリの場合は、相当処理が削れる
‫ ڀ‬クライアント側でキャッシュや処理できるような処理がないか⾒直す
य़কॵ३গमदऌऩःऊ
‫3$ ڀ‬य़কॵ३গ ! PHPFDFKH !!!!! 064/ भದदசः
‫3$ق‬म:HE१‫ش‬ং౐ਜ਼दभय़কॵ३গदँॊऒधपିਔ‫ك‬
‫ ڀ‬共通処理内では、64/実⾏回数がゼロが望ましい

More Related Content

ソーシャルゲームを支える技術 ~ クラウドを活用した高負荷対策