月份:2014年1月

新版博客上线!附AWS一周年使用小记

2013年对于博主我来说,是极为不平凡的一年,其他的不说,光工作就换了3份,这其中居然还有小半年时间根本没有上班,忙着自己所谓的”项目”,好在赶在年前再次安顿了下来,这里要先感谢我现在的公司,在听完我的近期全部经历和诉求后,依然愿意提供一份劳动合同,延续我的互联网打工生涯。

闲话打住,进入主题。2012年底,我离开了工作近3年的一家互联网公司。之所以选择快年底离开,原因无二,待遇实在是太坑爹了,哥经过精密计算,如果能赶在离职后一个月左右时间上班,按正常的工资标准,新单位即便只能打80%的试用工资,也能大致相抵我继续上班到年后混个年终奖再走的合计收入了。

9月底离职,经过一个月的探索和各种打脸,终于赶在11月份入职了A公司。这里先简单介绍下A公司的背景,A公司本身是一家专职给手机厂商做软硬件外包的公司,本来跟我的常年工作内容和所处的互联网行业交集不大,正巧当时某一合作厂商需要做个预研的APP项目,需要android客户端和服务器端两组开发人员,哥就做为服务器端开发人员加盟了。之所以这里要提到”预研”,该项目不是针对已经发售的手机,而是未来要在发售的手机开发的服务,项目前景不甚明确,所以开发资源有限。这个”有限”的其中一个条件就是客户指明最终的服务要部署在AWS上面。

这就是哥初次接触AWS。以前对云计算,也就是个概念上的了解,CSDN上看看业界新闻什么的。一上来就要真刀真枪,还是有点小压力的,一方面要保证项目的开发进度,另一方面还最大程度的了解AWS的服务特点。就这样,在A公司差不多呆了有半年时间,完成了该项目从需求分析到部署完成进入验收阶段的过程。

前面提到,A公司脱不开外包公司的本质,这个项目搞的差不多,部长就开始考虑你下个项目的事情了,当然,我自己也有考虑过。这个时候才发现,公司内部短期内基本没有符合自身技术特点的项目,外派的话哥也是在不太愿意,跟领导商谈了几轮,双方好聚好散,我也坚持到项目最后直到有人来接手。话说我们项目组大多数成员情况也跟我类似,最后半个月时间居然走的只剩下我一个来跟进客户的需求变更和做最后验收前的维护工作,好在工作量不算太大,开发也结束了,离职日期也确定了,得,好好研究下AWS吧。

最早接触AWS,一般从以下3个服务入手:EC2,S3和RDS服务。EC2就当是虚拟机,S3就是存储数据的,RDS就是数据库啦。当然,对于项目架构不是很严格的服务或者纯startup,S3和RDS并不是必要的,数据库完全可以自己在EC2上建,一般数据也可以直接存放在服务器上而不是用S3服务。不过哥是不大能够容忍一台机器上跑所有服务这种架构,一开始就三管齐下,在后面的使用过程中得到了不少便利,也犯过不少错误。

本文并不打算介绍如何使用AWS各类的服务,这里只想列下哥用AWS都干了哪些事情,按时间先后顺序如下:

建了一个VPN服务

使用的openvpn。哥在建这个服务之前,对vpn并没有太多了解,加上初次试手,确实费了一番波折。不过现在看来,将自己的第一个服务定为openvpn是一个非常非常明智的选择!毫不夸张的一说,一个健壮的vpn服务是一切AWS服务的基础,有了它,在对AWS其他服务的权限控制和链接限制上带来极大的便利,同时你可以建立各类只针对内网的服务。而且vpn这东西就跟炫迈口香糖的广告词一样,一但用上了,根本停不下来,以至于发展到后期没有vpn,工作和娱乐两方面都没法展开的地步。

建立了一个wordpress应用。

就是您看到的这个,架构上经过几次调整,最早是Nginx+Apache2+php的架构,分别部署在两台ec2上,跑了一段时间后发现,这架构对于个人站点来说实在是太冗余了,而且因为参数设置不当的缘故,在wordpress后台上看所有的访问都是来自Nginx服务器的,果断撤销Apache2,用fastcgi服务来完成Nginx和php5之间的通讯服务,不过又带来的另一个新问题,就是REST风格支持不佳。。要达到完美支持必须在nginx中根据所有的.php文件目录架构做仔细配置才行,哥PHP粉嫩新手,啃不动wordpress代码,所以在改建过程中放弃了原有的REST风格链接方式。这次合并中还出现了另一个问题,原来的部分文章中的媒体文件是直接上传到到ec2上面的,换来新服务器后这部分文件就没了,好在涉及数量不是很多。因为这个事情,后来为wordpress加装了AWS插件,最后又干脆了升级一下wordpress和版本和新主题,最终就是您现在看到的样子。

建立一个DNS服务器。

做这个事情的缘由很简单,从前文提到的A公司离职后来到了B公司,而到B公司来的第一份公司就是建立公司内部所有子系统的全套测试环境,一个DNS服务器当然是必不可少的。哇哈哈,这时候第一次体验到有自己的服务器是件多么happy的事情,可以毫无顾忌的折腾和重启,在达到自己满意的效果后再完成工作任务。建立DNS的过程中学到不少知识,也顺手申请了两个域名。一直到前几天,该DNS还是公开服务的方式,负责本域名下的所以服务器的域名解析工作。直到前几天,哥有天在浏览网页的时候感觉解析速度有点不大对,真的只是个感觉,鬼使神差的去检查了系统日志,发现服务器正在受着DNS放大攻击。于是修改了下配置,配合VPN,目前只对内网,也就是我一个用户服务。想在想想,还是一身冷汗,事后查日志发现,攻击大约持续了1个多小时,而流量费已经10+刀了。。因为这个事件,果断学习了cloudwatch和SNS服务并启用。

建立一个邮件服务器。

这个事情也就前几天才基本完成,全程步骤打算整理成一个系列,还没完成。不过收获确实也很大,ISP级邮件服务器只为自己一个人提供服务的感觉,真心好! 剩下的就是我自己折腾的项目一些J2EE类项目,运行感觉良好。前几天正好我的AWS账号一年期到期了,本来想着跑一个月看看费用情况,是不是还在自己能够接受的范围内,半个月就抗不住了。RDS服务真心贵,0.035刀一小时,跨区域部署的RDS架构翻倍,是国内的几家RDS服务的好几倍了,果断停掉,申请了一个新帐号重新部署了下数据库并恢复本地备份。

文章最后,强烈推荐新接触AWS的朋友研究下EC2服务的竞价实例方式。采用这种方式,费用可以大大的降低,我用了大半年,费用上限大致设置在当前价格的150%,基本没有重启过!当然,前提是你要有服务器随时重启甚至停掉的准备,总之是个不错的选择。RDS服务之所以哥觉得贵,一个很大的原因是RDS没有竞价的方式。

以上就是博主这一年使用AWS的心得感受,希望对您能有所帮助,谢谢!