游戏客户快速扩展服务器的解决方案-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

游戏客户快速扩展服务器的解决方案

nono20011908 2014-09-29 18:08:15 17494
游戏客户快速扩展服务器的解决方案




ECS产品快速扩展服务器的解决方案
一.引言
1、游戏行业浅谈
      如今的网络游戏市场风生水起,呈现出一片蓬勃发展的势头。2013年中国手机游戏市场规模达到122.5亿元,同比增长108.7%,预计2014年中国手机游戏市场规模将超过190亿元;2013年中国手机游戏用户规模达到3.85亿,同比增长34.6%,预计2014年手机游戏的用户规模将超过4.5亿。,让大量的开发者对游戏行业趋之若鹜。广阔的“钱景”也让游戏行业的厮杀更为激烈。


2、伴随游戏行业发展,当前游戏运维所面临的问题
    
2.1硬件投入成本高
       在使用传统IDC的时候,需要提前做预算并采购IT设备,购买宽带服务,对于一个游戏上线后用户规模到底有多大,事前很难准确预测。如果按照最大规模来采购部署服务器,会造成资源的极大浪费。如果不这样做的话,当用户规模激增时,现有资源又无法及时的进行扩展和部署。通常从采购服务器到部署上线需要花费至少2-3周时间,无法满足现在游戏更新速度快、开发成本高、风险性大等特点。同时,游戏运维对于计算资源的稳定性、安全和扩展性的要求也非常之高,但传统的IDC服务根本无法满足需求。
      基于以上游戏对IT基础设施的需求,相当多的游戏企业开始将游戏部署在阿里云服务器上。
  
2.2在阿里云服务器上部署的优势
      云计算高可用、低成本、弹性扩容等特点,让游戏厂商有了稳定的服务支撑,也让业务获得了长效快速的增长。同时,将游戏跑在阿里云的云平台之上,也就规避了在游戏运营前期购买大批的物理服务器以应对后期玩家增长的不确定性。游戏需要几个区,就先在阿里云上开几台服务器。玩家爆发增长时,仅需提前几分种即可开通新的服务器,用户可以直接使用自定义镜像功能复制任意个新区。
接下来我们详解介绍下,如何在阿里云,通过使用API和管理控制台的方式快速云计算资源。


二. 快速扩展云服务器实战
1、在用户会有两个场景运用到快速开服
      第一个是在测试部署阶段。
        通常情况游戏部署前会先开启2-3台云主机供测试。再根据测试情况,逐步进行压测等游戏正式发布后增加到十几台或几十台,这段时间的压测负载等,会经常用到
      第二个是游戏正式上线后大量用户开始涌入时候的快速部署
        比如在做游戏推广或者举行比赛时如何快速的扩展你的服务器。在传统模式下,遇到这样的问题至少需要2-3周的时间才能解决,但现在云计算所提供的资源以及服务,可以帮助用户在几分钟内完成开服。阿里云ECS可以达到10分钟内启动百台云服务器的能力。
      下面我们结合一些实际场景为大家介绍在阿里云上怎样快速的扩展服务器资源。在一些游戏中经常会碰到举行比赛的场景,在比赛期间会有大量玩家同时涌入,对登录服务器造成一定压力,这些我们可以使用ECS弹性扩展能力快速的扩充登录服务器以平摊用户压力。
    
2、API+ECS快速开服具体实践
  2.1使用ECS API扩展按量付费ECS实例
      前提:

1.首先在一台ECS上部署好登录模块,然后创建自定义镜像

         云服务器创建自定义镜像,具体步骤请参看: http://help.aliyun.com/view/11108189_13435266.html?spm=5176.7225053.1997284249.4.UURmpK

2. 安装Python2.7版本环境 (下载地址https://aliyunecs.oss.aliyuncs.com/tools/ecs.py )。

3.下载ecs.py这个脚本
4.访问http://i.aliyun.com/access_key,点击“创建AccessKey”创建一个accesskeyid/accesskeysecret密钥对。
注意:请保存这个密钥对,这是非常重要敏感的信息,绝不能泄漏。

5.使用如下命令来
   配置刚刚获得的密钥对:
$./ecs.py config --id=<access key id> --secret=<access key secret>

.使用如下命令验证配置是否成功:配置完成后,可以执行列出可用地域(Region)命令来验证是否配置成功:
$./ecs.py DescribeRegions

如果配置的密钥对没有问题,该命令可以列出你当前的可用区域。该命令会输出一个json格式的结果,包含了杭州(cn-hangzhou)和青岛(cn-qingdao)两个地域的信息。
准备工作完成之后,我们将通过四个步骤来启动一个VM


具体步骤如下

  1.创建实例:
         在创建实例前,有几个选择要做:1)创建到哪个地域?2)选择什么配置 3)使用哪个镜像?4)加入到哪个安全组? 5)是否需要公网带宽?使用固定带宽还是按流量付费?6)设置Root密码。
         注意:API只能用于创建按量付费的云服务器实例,对一些限制可以参考:
http://help.aliyun.com/view/11108189_13545434.html
        云服务器实例规格详情请参考:http://help.aliyun.com/doc/view/13514749.html?spm=0.0.0.0.DvdW8v
     例如:我们将在青岛地域创建一个ecs.s2.small(2CPU 2GB内存) 的云服务器实例,选择自定义镜像,加入到相应的安全组,选择按流量付费的方式,最大容许10Mbps的公网带宽。命令如下:
$./ecs.py CreateInstance RegionId=cn-qingdao
        InstanceType=ecs.s2.small
        ImageId=ubuntu1204_64_20G_security_v01.vhd或者自定义镜像文件名
        InternetChargeType=PayByTraffic
        InternetMaxBandwidthOut=10
        SecurityGroupId=安全组ID
        InstanceName=api-test
        Password=your-password
        命令执行后,如果没有报错,会有类似如下的json结果输出,代表执行成功:
        {
       “InstanceId”: “AY140404124925248f45″,
        “RequestId”: “024E0224-8B12-4099-897E-F717CF43332C”,
         }
    
2.分配公网IP。我们刚创建好的实例是不包含IP地址的,想要增加公网IP地址,请执行命令:
       $./ecs.py AllocatePublicIpAddress InstanceId=刚创建成功的实例ID
        输出如下则为成功
         {
        “IpA   dress”: “42.96.194.117″,
        “RequestId”: “46C20C19-93E8-4CCE-853C-5F26241A7EDA”
         }
    
3.增加一块数据盘。刚刚创建的云服务器是没有数据盘的,我们调用AddDisk这个命令增加一块100GB的数据盘:
       $./ecs.py AddDisk InstanceId=刚创建成功的实例ID Size=100
       {
       “DiskId”: “6002-20107932″,
       “RequestId”: “5E859722-D05A-4FE2-B7B1-F1F20FA10C12″
        }
      
4.启动实例。这个时候,我们可以启动实例,执行:
      $./ecs.py  StartInstance  InstanceId=刚刚创建成功的实例ID
      没有消息就是好消息,这个时候,再调用DescribeInstanceAttribute就可以看到实例的Status是Starting,几分钟后,实例会启动好,可以SSH远程连接或者通过控制台的“连接管理终端”连接上去。
  
5.根据您后端架构,如果需要可以将刚生成的云服务器加入SLB(负载均衡),此时该服务器已经可以为用户使用了。


2.2使用管理控制台创建包年包月ECS实例
    登陆www.aliyun.com,并且打开管理控制台



     在实例列表页,选择需要做成镜像的实例,并点击“管理”。

     导航到“本实例磁盘”页面,选择需要做成镜像的系统盘,并且点击“创建快照”。

     导航到“本实例快照”页面,确认刚才制作的快照已经100%完成。选择该快照,并且点击“创建自定义镜像”。

     导航到“自定义镜像”页面,确认刚刚创建的镜像出于“可用”状态。用来快速扩展服务器的镜像文件已经制作完毕。

     导航到ECS产品购买页面,点击“立即购买”


     选择你所需要的配置,当选择你需要的镜像时,请在自定义镜像中选择你所需要的镜像文件,所有配置选择好后, 点击“立即购买”

     此时云服务器将会使用你选定的image启动,成功后就可以可以将其加入您的slb实例中一平摊用户流量了。















弹性计算 JSON 运维 负载均衡 安全 测试技术 API 云计算 数据安全/隐私保护 数据格式
分享到
取消 提交回答
全部回答(5)
  • daniel.li
    2015-01-20 09:44:52
    Re游戏客户快速扩展服务器的解决方案
    标记。。。。
    0 0
  • long568
    2015-01-15 10:54:46
    Re游戏客户快速扩展服务器的解决方案
    Mark
    0 0
  • blue焰
    2015-01-03 19:45:16
    Re游戏客户快速扩展服务器的解决方案
          
    0 0
  • 净尘
    2014-12-25 23:57:17
    0 0
  • wh-top15from
    2014-11-06 14:46:30
    Re游戏客户快速扩展服务器的解决方案
    标记。
    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题