@Deprecated 博客搬家导致图片丢失了,经验教训告诉我们还是需要有专门的图片服务器才行。这篇文章也已经基本过时了。前段时间忙于创业和技术探索,最近终于慢慢开始有了自己的时间,可以写一写东西。目前主要用的技术是 DirectShow 相关的东西,还买了一套通讯框架 UDX ,关于 H264 编解码之类的问题是我头疼已久的问题(最近用硬件解决了,硬件是王道啊)。每天都会抽时间上来写写东西。
在十月中旬的时候,突然萌生了想法,建一个自己的网站,于是开始寻觅DNS,爷爷给推荐了 name.com ,很给力。对比了网上所谓的十大美国主机之后,我发现不如买个Linode来的实在,正当我纠结于一个月十几刀的价格的时候,爷爷又一次出现了。这次给我推荐了Amazon Web Services的EC2,又一次给力的推荐。
EC2,全名 Elastic Compute Cloud ,正如这个名字所说的一样,是为开发者们提供的一个弹性(即可控制可调整)计算的Web服务。我的主要需求是一台VPS,所以我只需要在EC2上运行一个实例就行了。幸运的是AWS在从2010年11月份开始推出一项推广措施,即 AWS Free Usage Tier ,主要包括以下内容(我友情翻译一下):
AWS免费层(每月):
几点补充说明:
下面详细介绍一下我的EC2的使用过程:
这里不是很复杂,直接到EC2的界面上注册(Sign Up)就是了,值得注意的是你需要有一张支持visa或者是mastercard的信用卡,来作为支付手段。注册结束之后信用卡里面会被扣掉$2(EC2 和EBS各一刀,确认你这个人存在用的,好像过后又还回来了),注册完了之后就登录到AWS Management Console上的EC2管理界面上了。
先来看看我们现在的AWS Management Console的EC2界面。熟悉一下这个界面。大概了解一下每个块显示的是什么内容。下图是Dashboard的一个截图。
新建分为几个小的步骤:
在实例管理的页面上右击你的实例,点选Connect就会有Linux下SSH连接该实例的方法了。个人用的电脑系统是WIN7,懒得天天到虚拟机里去SSH,搞了个SecureCRT,然后在SSH的连接选项里面配置了这个PEM文件就可以练上去了,一般默认的用户名是root,当然有些实例如果root不允许登陆的话会提示你应该用什么用户登录。putty也有类似的功能,但是需要用 putty自带的工具从pem文件中导出私钥,我懒得搞。上张SecureCRT中会话选项的配置图。
登录上去之后想干嘛干嘛。
连接SSH的提示中用的是一个amazom的三级域名,即该实例的Public Dns,这个地址通常不会变,特殊情况(实例停止后重新启用)下会发生变动,针对这种情况,可以去到Elastic IP面板中,新建一个Elastic IP,并且分配给你需要使用的实例。这样你就可以把自己的域名解析到这个IP上,坚挺而稳定。Allocate New Address——分配IP地址。Associte——把分配的IP地址与实例关联。
其实这两个东西不是一样东西,但是功能和操作方法都很类似,且有所关联,所以放到一起说一说。
先说AMI,当你的应用配置完毕之后,你可以方便别人或者方便自己,把当前的实例做出一个镜像,留待以后使用或者在社区中共享(把 Permission设置为Public就可以了)。在实例上右击->Create Image(EBS AMI)->按需填写。AMI创建成功之后可以直接用这个镜像起更多的实例(还是那句话,如果你有钱)。
Snapshot,就是EBS的快照,其实每一个AMI的创建都要求给出一个EBS的快照。我们也可以自己创建EBS的快照。在Snapshot的界面选择Create Snapshot->选择你要创建快照的Volume->确认就可以了。
值得注意是在创建AMI或者Snapshot的时候机器都是会停掉的,会对使用造成一定的影响。当然,如果你拥有一个自己的集群,这些也就不是问题了。
以上就是我使用的时候遇到的一些比较实用的内容。下面介绍一下EC2的具体资费,这个应该是大家最关心的东西。
这种实例的收费方式最简单,就拿我的实例(Linux Micro in Singapore,新加坡的Linux微型实例)来讲,如果过了明年十一月份,免费层过期。按需运行:
运行一年的价格应该是:365d/y*24h/d*$0.025 per hour=$219=¥1457.445(今日汇率6.655)
运行三年的价格应该是:$219*3=$657=¥4372.335
这种实例的优势是用多少算多少,按需来用,灵活性好,相对来说较贵。
不知道这样翻译会不会有问题,呵呵。这种收费模式就是说你的需求相对固定的时候,可以先花一笔钱,买下这个实例的使用权,然后要用的时候费率就相对打了一个比较大的折扣,因为需求的相对固定节约了运维的成本,自然总体的价格也就便宜下来了,还是以我的实例为例。在保留定制实例情况下的收费:
运行一年的价格应该是:365d/y*24h/d*$0.01 per hour+$54=$141.6=¥942.348
运行三年的价格应该是:3*365d/y*24h/d*$0.01 per hour+$82=$344.8=¥2294.644
这种实例需要在一开始就定好你需要的实例类型,一旦确定使用时就不能更改。比较适合我这种小用户使用。
这个翻译可能更加惊悚,不过如果了解这个实例的话就会知道其实这个翻译还是比较恰当的。这个实例有点像竞价的模式,价高者得,你可以设置一个你对你的实例的要求和你能接受的每小时最大费率,然后把这个请求投入“拍卖场”,市场的价格是在供需平衡的原则基础上波动的,一旦你是同等条件下的最最高出价人,那个阶段你的实例就会被运行。个人感觉这个有点像去青楼找红牌,你掏出你这个月仅剩的一点点工资,去竞价,说不定什么时候其他人对XXOO的要求减少的时候,市场供求关系发生变动,供多求少的时候,价格跌下来,你一夜春风的机会就来了。。囧一个。这个显然不适合我这样对持久性和稳定性要求比较严格的人(不要想歪了,我说的是网站的运营),它的适用范围是:
官方还给出了一个例子,我顺手也翻译成中文,有助于理解这种示例的使用模式:
假设你决定发起一个Spot请求——部署一个标准的小型(m1.small)实例在美国东北弗吉尼亚地区。你可以在AWS的管理控制台或使用亚马逊的EC2 API看到最近1-2小时的现货价格在0.030美元/小时到0.060美元/小时间波动,目前为0.050美元/小时。你决定要把0.045美元/小时设置为你能接受的最高价格。你通过使用亚马逊的EC2 API或通过AWS的管理控制台发起了该Spot请求。因为您的设置的最高价格比目前现货价格低,所以没有实例被启动且您的请求仍然处于挂起状态。
两个小时后,现货价格下降到0.045美元/小时。在这个时间点上,您的请求可能会、也有可能不会被接受。这是因为您的最高价格恰好等于目前现货价格,而这个价格可能请求的人比较多,你没排上号。假设你的实例没有启动。三十分钟后,现货价格下降到0.039美元/小时。因为这低于您的最高价,现货竞价实例将即时启动,你的实例运行的第一个小时的价格就是0.039美元。
继续我们的例子,三个小时后,现货价格上涨至0.043美元/小时。现在,如果你继续运行实例,需要支付的价格0.043美元/小时。你的实例不会被关闭,因为亚马逊的EC2现货价格仍低于您的最高价格。
一个小时后,现货价格上涨至0.045美元/小时。在这一时间点上,您的实例可能会、也可能不会被终止(跟上面的情况差不多,由供求情况决定),在这种情况下,实例继续运行了,你将被收取0.045美元/小时。
最后,四个小时后,现货价格上涨至0.055美元/小时。因为这比您的最高价高,亚马逊EC2将终止你的实例。系统运行多出的不满整小时的部分不会收费,因为它是被亚马逊EC2终止的。
PS:我是在Google翻译的基础上改得通顺了些,所以请原谅这里面出现那么多“您”。
还有很多关于EC2的细节的东西我愿意与你们分享,将会在随后以编辑本文的形式发布。
转自: http://blog.2don.com/?p=20