对于创业者来说,在选择云服务时最困惑的一点就是云服务产商究竟会提供怎样的服务,也不知道什么样的云服务才是适合自己的。
在近期由创业技术联盟主办的“公有云实践沙龙”上,来自亚马逊AWS的解决方案架构师韩小勇就以云服务商的身份为现场的创业者们进行了详细的讲解,结合自身的产品以及特性,为创业者们解读云服务商是如何为他们提供服务的,以及能为他们提供什么十分有用的云服务。
以下是AWS解决方案架构师韩小勇演讲全文:
大家好,我来自亚马逊AWS,我叫韩小勇,解决方案架构师。刚才那个兄弟提了好多AWS的事情,其实我最喜欢的一句就是他们公司90%多的事情都是自己解决的,AWS的架构师和后台最喜欢的客户了,可能90%多的问题都能自己解决,我们很开心。
先说一下创业者,列举几个在AWS上创业的例子,然后现在还在用着AWS服务的几个公司,Flipdoard,把那些facebook,社交网站那种都搂下来,然后以杂志的形式给APP去展现,2010年创建的现在已经超过一亿客户,58亿美元。
比较熟悉的SUPERCELL游戏开发商,最初的时候是从6个开发者开始的,平台在AWS上,每天大概有4T的游戏日志存入AWS。airbnb大家出去旅游的时候可能会用到,最喜欢他有一个VP级的技术人员说的话:他们能用云计算解决的问题从来自己不去解决,自己关注的全都是自己核心业务,还有一些市场方面的问题,所以他们现在能做到这么大。
这是一些客户,这是AWS支持的部分,中国的创业公司的名单,大家可以看到, 好多已经不是创业公司了,已经是比较大公司了,这里边还有一些爱奇艺也是比较大的公司,还有360、听云,已经不是最初的创业阶段了。
说完客户咱们讲一些干货,AWS是怎么帮这些客户取得成功的,主要是说AWS提供了哪些服务,另外最后还会有一些典型客户怎么用AWS服务去搭建他们的系统的案例介绍。
初创企业至少会关注以下这几个点,第一个是敏捷,第二个是系统的可靠,还有可扩展,第三个是成本可控。
今天从这几方面去聊一下AWS怎么提供这个能力,第一个就是敏捷,其实不管是用了哪家云,只要我们用云了我们就已经是很敏捷了,因为如果是没有云的话,我们自建基础设施70%的时间我们去管硬件的基础设施,去专注于组网,操作系统,软件的配置等等方面,剩下的30%才去关注核心业务。但是,如果去用云了的话,有可能就是正好反过来,我们70%的时间是在关注自己的业务,剩下的事情全都是交给云服务去操作。
AWS怎么去满足用户的这些需求呢?第一,AWS能够在基础设施这方面为大家提供服务,大家不需要自建机房了。第二个我们说一些基本的服务,像它的计算,EC2虚拟机。以及操作系统,各种各样版本的,Linux,还有Windows server,有自己的需要的话也可以把自己的操作系统镜像上传上去。
刚才提到了有些主机有超卖的情况,也就是说分给你的CPU有可能会分给其他的人,在AWS里面也有这样的情况,但是AWS是明确告诉大家我的这个机型就是您的CPU有可能是跟其他人共享的,我们的机型叫T2系列的机型,除了T2系列机型之外给到大家多少的CPU就是多少的CPU。T2系列机型我们大家看EC2会有很多关于它的个别的介绍,用它的时候一定要谨慎,有可能用着用着CPU上不去了,就不能对外提供服务了,一般是限于T2的机型,客户去做测试,如果是对外提供服务的话,想选择较小机型的话,可以选择比较小的M系列的机型。
如果我们想进一步节约成本怎么办呢,AWS在EC2上的弹性扩展组,大家可以建一个EC2的集群,这个集群大家可以规定一些事情,第一大家可以规定这个集群里面最少有多少台机器,最多有多少台机器,比如说最少有一台机器,最多有十台机器。第二,大家可以规定弹性扩展组,弹性扩和弹性缩的触发条件,比如说我CPU的平均利用率在过去5分钟之内都超过70%,我增加一台机器,如果过去5分钟之内都少于30%我就减少一台,也可以用时间来控制,晚上的时候,晚上凌晨三点就开始减机器,早晨九点就开始增机器,可以在弹性扩展组里面去做,这样就能根据咱们的业务波动提供不同数量的服务。
跟计算服务相关的一个是弹性负载均衡器,这个负载均衡器是AWS提供的一个服务,不需要咱们去自己搭建机器了,只是申请服务就可以了。是托管的,虽然它底层也是AWS的EC2虚拟机组建的,但是收费并不是按照EC2虚拟机收费的,是按照有效流量来收费的,收的只是放过去的流量的钱。
网络服务,一个是VPC,只要大家用到AWS云服务的话,如果是去用EC2,或者是建了一个数据库,就肯定会用到VPC,VPC叫虚拟私有云,说白了是让大家感觉你建一套自己的网络,在VPC里面大家可以去创建与自己数据中心类似的出口的网关、防火墙、等,还可以有到咱们自己数据中心或者是到咱们自己office的网关,基本上我们在物理数据中心里面能够发现任何的一些网络的服务都能在VPC里面找到。
我刚才忘掉一个还有公网IP地址,说一下亚马逊公网IP是不收费的,大家申请下来只要把这个IP用起来就不会给大家收钱,但是如果不用在那闲置着,申请下来在那闲置放着就会给大家收钱,主要是为了防止IP的滥用。
另外一个网络服务叫直联服务,有些客户可能会用混合云,自己的数据中心和AWS的数据中心做一个连接,这样AWS提供直联服务,做起来实际上在AWS上提供直联点,现在至少有两个直联点,在北京也有,这个直联点到咱们自己的数据中心拉专线,这个专线可以是咱们自己找运营商去拉,或者找AWS合作伙伴,有些合作伙伴的网络已经连到直联点上了,用户连到合作伙伴的网络里面就可以跟AWS直联。
AWS域名注册和解析服务,这个不说了,比较简单。存储服务,第一个叫EBS卷存储,就是硬盘,可以想象成我们以前用的硬盘、卷存储。卷存储,有1+1备份的,它的可靠性是99.99%,有些客户可能觉得AWS卷存储现在提供的IO不能满足大家的需求,其实AWS的卷存储的性能还是很高的,最大的达到两万个IO,存储最大16T,这是卷存储。
另外一个存储叫对象存储,S3,这个是可以存储静态的图片,视频,日志等等这些所有静态的东西。特点是海量,第二个特点是数据持久性非常高,99.999999999%,举个例子,如果咱们有10万个文件在里面存100万年才有可能丢失一份文件,对数据持久性,数据不丢。可用性是99.99%,一年可能有几分钟访问不到这个数据,但是没有丢。
另外,大家可以把HTML文件直接放到S3里面,提供静态网站。另外一个存储服务冰山,它是一个冷备的服务,它的特点就是非常便宜,比S3还要便宜,但是它只适合于做冷备,就是我们可以随时把数据存进去,但是我们往外去拿数据的时候并不能够实时去拿到数据,类似于我们以前磁带服务,大概从我们发出数据的请求到我们开始数据大概4小时,第一个比特来了以后后面所有数据全部过来了,没有几小时的时延了。
数据库服务,提供几种,第一个RDS是关系型的数据库服务,这里边AWS托管的,刚才那个兄弟也说过了这种托管的服务大家有可能会用之前要考量一下,因为有些特权有可能是没有的,比如说以前一个客户它做Oracle数据的迁移,它以前的方法需要登录到Oracle数据库操作系统里面去才可以,现在如果用托管的服务就登不到操作系统里面去,就要做一些其他的工作。
再说一下优点,比较省心,不需要去操心那些备份的事情了,自动会帮咱每天做一次快照,增量的快照,文件在S3里面的,这些全都是自动的,不需要咱们自己去做,最多存储35天,可以恢复到35天之内的任何一个秒级的时间点。对于它的容量调整比较方便,假如说我们数据库最初就申请了一个100G的磁盘,2核4G的一个机器,如果我们觉得这个不够用了,我们想扩大磁盘也点几下鼠标就可以了,这个过程数据库也不会对外停止服务,但是有可能这个升级的过程中性能会下降一些。如果我们想换成从2核4G的机器换成4核8G,也是点几下鼠标就可以了,但是这个换机器的过程数据库会重启一下,但是如果对AWS用得比较熟悉,使用Multi-AZ的方式,如果用这种方式,升级的过程中数据库也不会停机。
非关系型数据库,DynamoDB,如果咱们在现实的场景下想用,也可考虑托管的非关系型数据库,特点是操作起来非常简单,它的接口是AWS提供的SDK,各种接口都有。而且它的收费因为它是托管的,底层虽然也是拿机器存储的,收费也不是按照机器来做的,它的收费是按照咱们设定的吞吐量来做,假如说咱们根据自己的业务量设定写吞吐是50, 读吞吐是100,我们就按照这个设定来计算,这种有几种可以省钱的办法,咱们可以每天动态去调整,在每天早晨九点的时候把它调高,业务上去了,晚上凌晨的两点的时候再把它调到最低,基本上收费就会很少。
另外一个用法,是按照表来的,我们可以设定不同的冷热表,一个月来划分一个,两年之前的表有可能就非常冷,就永远把它设成很低,基本上钱就会很少。最近一个月设得很高,这样能够达到用多少就收多少钱的目的。
ElasticCache服务,里面包括Memcached和Redis,用起来基本都是原生的用法,AWS帮咱们托管,帮咱们启动主机,帮咱们安软件做备份,接口以前是什么样还是什么样的,就是用就可以了。
刚才是基础的服务,计算,存储,网络,如果咱们有一些增值的需求,比如说要对用户行为进行分析,我们会提供一些大数据的服务,第一个叫EMR,这个里面的核心还是以前的那些Hadoop社区的那些开源的工具,但是AWS帮我们做的是把这些工具的运维给揽下来了,我们不需要自己去安装操作系统,不需要自己去装软件自己去配各个不同软件之间的兼容性,AWS全都配好大家只需要去写相应的脚本就可以了。如果快的话,从登录到AWS的界面到一个集群做分析,也就是十几分钟就可以了。
另外一个比较大的优势,它可以跟S3集成,我们可以把数据像刚才说的数据或者是用户行为的数据直接存在S3里面,把EMR的数据源设成S3某个目录,就像我们以前用HDFS一样,但是如果把数据放在S3里面的优势,第一个还是便宜,海量数据放在里面很便宜。另外我们数据分析的时候有可能并不是任何时间都开机的,有可能我们去跑一个日活月活,每天开两个小时机器,我剩下的22个小时就可以直接把机器清除掉,但是清除掉以后数据还是在S3里面存着,数据并没有丢失。另外一点,我现在不用HDFS了,我用S3,计算和存储是分离的,比如说我们如果有一些分析需求的话,它的存储量非常大,10T的数据,但是它的计算量非常小,可能拿两台机器就能计算出来,如果是以前的话,要买买5台机器专门去存储数据,但是计算的时候CPU的应用并不多,如果可以用S3做存储可以把所有的数据都存在S3上面,直接启一台或者两台机器进行分析就可以了,这是EMR。
另外一个服务是流式数据采集传输以及提供的一个服务,Kinesis, 大家可以把它想象成一个开源的卡夫卡,但是这是AWS自己的数据采集的服务。首先AWS提供了SDK,咱们把这些SDK嵌入到安卓的客户端里面,嵌入到网页里面,或者是嵌入到苹果的客户端里面,直接读取数据传到云里面。另外,它也跟其他的一些软件集成,软件安装kinesis的插件,直接就可以去打数据,取回来的数据几个走向,第一最常用的还是放在S3里面,管它有用没用呢,S3很便宜,以后再说,存起来。另外,我们直接在取端对数据进行清洗,可以做实时查询分析。
另外一个工具是昨天上午刚刚落地中国的一个数据仓库服务,PB级的数据仓库,可以拿它去做BI分析。大家如果有那个数据仓库这种分析的需求可以考虑用这个,它的数据存也是可以放在S3里面,我们可以在S3里面放一些格式化的数据,然后拿它去第一步从S3里面把数据传到自己的硬盘里面,第二步就去拿一些去查询,这是大数据服务。这是管理服务,我们刚才提到的计算、存储、网络,我们分析还有这些东西,但是怎么管理起来呢,有几个方面,第一个是监控,它可以监控AWS云里面各个服务运行的状况,比如说EC2,CPU的状况,比如说数据库IO的状况,等等这些都可以去监控。
权限管理,我们如果有一个云的帐号,比如说AWS的帐号,咱们第一拿到的肯定是一个root帐号,但是咱们建议的做法是拿到这个root帐号以后就把它第一步创建管理员帐号,这个管理员拥有所有的权限。第二,拿这个管理员帐号去做接下来的事情。这个管理员帐号能做什么呢,它可以继续创建不同的其他的用户,每一个有不同的权限,我们可以创建不同的组,就是这个组拥有什么权限,在AWS里面可以写得非常细,可以细到我只允许一个用户访问它自己创建的EC2机器,但是其他的机器他都看不到。
或者说我只允许一个用户往S3的某一个桶的某一个文件夹里面去上传文件,却不允许它删除里面的文件等等,这些非常细的一些策略。另外,它的一个比较高级的特性是把AWS的权限暂时付给一个终端的用户,比如说有这样一种场景,咱们可能会开发web app,或者是web网站,用户有可能会向云里面去上传图片或者是视频,传统的做法有可能用户把这个图片上传到web server里面,然后web server再放到S3里面,但是如果用S3用户会直接把它上传到S3里面,用的是S3的SDK,或者是安卓的SDK,IOS,但是如果用户用SDK他必须要有访问AWS服务的权限,这个权限正常是必须AWS的管理员或者管理员创建的用户才可以。但是,通过IAM, AWS可以让大家临时具有访问AWS的权限,直接向S3中上传数据。
CloudFormation模板,我们可以把一个现在创业的环境,运行的环境,把它固化成一个JSON的模板,然后我拿这个模板再往AWS另外的Region,到北美再运行一下这个模板,没有必要再人工部署一套了,或者说我还可以把模板版本化。
运维说一下命令行,如果我们机器很多的话,比如说400台机器以上,我们不可能控制台去运维,用命令行去写命令行的脚本做批量运维,因为AWS所有的操作全是通过API去控制的,在这些API上面我们封装了几个方式:控制台、命令行、SDK,一般的运维工程师用命令行的方式,SDK可能跟自己的环境集成也可以用。
可扩展,首先是多Region这种方式,让大家可以不再限于一个Region,如果真的有一个Region某天宕了,如果我们把我们的服务放在多个Region里面的话,可以另外利用其他的Region来提供服务。另外在一个Region我提供了AZ,就是同城容灾,刚才也有同事说过没有一个云是保证在它的任意一个服务都是永远不宕机的,我们EC2也不保证是永远不宕机。最好的方式是有一个架构,去保证我们的系统可靠性,有AWS对各种服务的架构建议,这个里边非常丰富,有时间可以去学一下。
还有一个我想要说时间,因为AWS上上个月刚过了十年的生日,从它提供云计算服务到现在已经是十年了,这十年每天都在踩坑,基本上把所有的坑都踩遍了,很少会出现停服或者说突然主机大家都用不了的情况。所以说,公有云那种还是需要大量时间去积淀,才会有越来越好的稳定性。
再就是可扩展性,有可能我们的服务预料不到在一个月之后就火了,那我们如果IT基础设施设计得不好的话,有可能我们的用户上去了,但是我们的后台却跟不上不能提供服务,其实最近几年有很多这样的案例。使用AWS这种架构设计得好的话,可以从一台机器在很短时间内瞬间扩充到成百上千台机器,自动扩展的方式,这是对机器来说,对于其他的服务,比如数据库服务刚才我也说过了可以在很短的时间内扩容,对S3来说它本身就是海量的,根本就没有必要扩,已经是无穷大了。
不讲成本了,如果用云大家都知道是按需付费。计费模型可能大家会感兴趣,讲一下,刚才上一个兄弟已经提到了几个,大家最了解的可能是按需,按小时付费,另外是免费额度,如果大家可以申请国外帐号,每一个帐号都有免费额度,这个免费足够让大家去搭一个自有的网站,每年都免费去运行了,国内没有免费额度,但是国内的创业公司可以跟我们去申请,我们会给等价于国外的免费额度的钱的数量让大家充进去用。预留,就是包年包月,竞价刚才已经介绍过了,我去出价买AWS闲置的机器,如果没有人比我出得高,那个就是我的,通常这会比正常按时付费便宜70%-80%,这个也是会随时收回的,但是有一种方式,我去请求竞价的时候要求锁定,锁定会至少给你提前6个小时通知你这个机器6个小时之后要收回,但是如果要求锁定,这个价钱会比那个要高一些,但是也比按需要便宜将近一半。
另外,专用有一些做敏感业务可能会用到,比如说银行,证券行业要求我的机器可查,必须运行在某台机器上,不能跟其他的虚拟机共同物理环境,我们可能就提供专用的,大家轻易不要用,因为收费会比较贵,这是计费模式。
说几个案例,第一个是猎豹移动,它是国内的公司,但是它的主要业务是在国外,它这个服务比较简单,最左边是个人用户,通过AWS的CDN服务进入到AWS的Region里面,第一个入口就是ELB负载均衡,后面是弹性的WEB server,用的是Redis以及亚马逊的RDS,WEBserver会把日志写到S3里面用EMR去分析。
Mobvista广告发布平台,以中间这个ELB为界限,最左边还是通用的WEB服务,ELB右边会走到EC2集群上去,,EC2后面有几个走向,最上面的到达目的地,实时的数据分析,最下面是做数据的备份,放到S3里面,放了以后会用EMR做分析。
最后,因为我们市场部门让我们发点福利,这是云创计划这是一个介绍,所有创业公司的人都可以去申请,最少是6000元,最多是10万元的云服务的抵扣券,还有一些技术咨询的服务,还有一些商业级的技术支持服务,就是说大家提case, 一个小时之内肯定响应,这是AWS云创计划,任何创业公司都可以去申请,至少6000元。大家可以去扫一下码,这是拿50美元的国外全球的AWS抵用券,大家可以去申请帐号去体验一下,需要去填一下信息。谢谢大家。