新版博客上线!附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的心得感受,希望对您能有所帮助,谢谢!

【Nginx】Nginx+php切换服务器搞定!

本站最早是直接在ubuntu系统apt-get下来的wordpress运行,默认是Apache2服务器,现切换成Nginx服务器。

目标机器上没有PHP,所以得先安装:

sudo apt-get install php5-fpm

这条命令只安装php5-common和php5-fpm,这对于wordpress运行来说是不够的,会提示没有mysql扩展,补充安装以下三个扩展:

sudo apt-get install php5-gd php5-mysql php5-cli

启动fastcgi模块:

sudo /etc/init.d/php5-fpm start

在nginx配置文件中增加如下模块处理PHP:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

重启nginx服务即可,值得注意的是,php模块变更后需要重启fastcgi服务才能生效,如不放心,可编写一个phpinfo文件测试,具体内容参考网上内容,不赘述。另外要注意fastcgi和nginx尽量使用同一用户,默认为www-data。

【AWS】亚马逊AWS服务简介

AWS简介

AWS全称为Amazon Web Services。亚马逊在2006年的时候开始以Web服务的形式提供IT架构的商业服务——也就是现在经常说的云服务。云计算最主要的好处在于它能以与业务规模同增长的低可变成本来替换前期的基础设施投资费用。有了云服务,企业再也不需要在提前几个星期/月为服务器或其它IT架构做采购计划。取而代之的是,他们可以让成百上千的服务器立马运转起来,然后快速地得到想要的结果。

AWS的主要特点

  • 低成本。相对于自己买服务器,然后托管,这的确是省了不少钱。
  • 灵活和弹性(架构)
  • 开放和灵活。现实中一般的业务对语言/平台的要求,AWS都能满足。
  • 安全。安全包含两个方面:技术安全和政治安全。这两点可以说完爆国内各种“云”和大多数VPS提供商了。

看完Amazon的官方介绍(各种服务),一般都云里雾里了。Amazon在用户关心的几个问题上(配置、价钱),链接做地并不够友好。所以,在使用AWS前,先记得认认真真地把要使用的服务介绍看完。一般服务介绍里面都会有详细的计费方法。相比之下,国内云的产品设计就做的比较符合“国情”,无论哪家的服务,价格永远放在首页最醒目的位置上~

AWS的使用优点:

  • 数据中心离中国近。日本和新加坡。大陆地区建站首选把数据中心选在日本的东京。虽然两国最近关系不怎么样,但访问带宽还是有保障的,亚太地区还有个新加坡,不过我没有测试过估计速度快不到哪去了,两国间的带宽能有多大可以想象。近期又新开了韩国区,多了个选择。
  • 服务齐全,只有你想不到的,没有它不提供的。
  • 自己选择/配置机器的各种容量(网络、内存、CPU、硬盘),用多少算多少
  • 完善的功能控制台和监控服务
  • 稳定性有保障(Twitter和一些大型的互联网企业也在使用AWS)

个人或Startup在使用AWS时会面临的问题主要是流量。每个用户每个月会有1GB的对外(out)的免费流量,超过的,$0.201每 GB。还有就是每项服务都是要钱的,IP则例外(自己分配了没使用要收钱,使用了不需要)。所以,如果想使用AWS来搭建一个比较大型的网站,还是需要先计算一下大概需要的费用的。

再说说AWS的新用户免费套餐。详情参考:http://aws.amazon.com/cn/free/

新用户在注册后的一年里,每个月可以免费使用下列的服务,主要会用到一些服务如下:

EC2部分:

750小时运行于EC2的Linux/Unix/Windows Micro实例
750小时的Elastic Load Balancing 外加15GB的数据处理
30GB的EBS外加2,000,000次的IO和1GB的快照

S3部分:

5GB大小,2000/20000次Put/Get请求

其他服务请自行参考官网介绍,主要掌握EC2,S3,RDS服务,这三种服务在注册的第一年都有免费的配额。以下类型的服务还是比较适合AWS的:

  • VPN
  • BLOG
  • 小型CMS
  • 简单的Web Service
  • 邮件服务器

总而言之,提供给低访问量的个人博客/网站是非常不错的。不过你想做点什么比较令你激动的事情的话,先计算一下流量吧!

欢迎各位来到我的小站!

感谢亚马逊提供的全套云服务,感谢wordpress提供的框架,更要感谢招行VISA信用卡提供的支付渠道,我的小站终于成立啦!此站会以技术类文章为主,兼顾左侧其他分类的内容~如果条件允许,我会陆续添加其他板块进来,wordpress还在摸索当中,PHP更是粉嫩的新人哇,请大家多多支持,谢谢!