亚马逊的 AWS 无疑是云计算中的老大,Amazon 允许用户免费试用一年他们 AWS 中的诸多服务,这是很大方的,虽然都有限额,但是稍加注意也不至于被扣费,AWS 免费套餐对于想尝试和了解云计算和云服务器的网友来说是一个非常不错的选择。

我前一段时间也申请了一个 AWS 免费试用账户,主要是想测试一下 Amazon S3,申请过程不再赘述。申请成功登录到 AWS 总管理中心的一刹那还是有点小激动的。之前一直用阿里云的云服务器,感觉阿里云的控制中心做的很好,现在看到 AWS 的控制中心我脑海中蹦出了一个词——“微创新”,呵呵。

说下我在试用过程中遇到的几个小问题,主要是设置和权限方面的,与各个核心服务没关系。

一、Amazon S3 用户和用户组及权限分配问题

Amazon S3(Amazon Simple Storage Service)价格便宜并可无限扩容,可以作为网站的静态文件存储器,非常不错。

第一次接触 Amazon S3,新建了 bucket 后,感觉就类似一个网盘,可以上传下载文件,但是要如何在外部网站使用呢?我们需要创建一个用户并记下用户的 Access Key ID 和 Secret Access Key,说明是这样的,我也照做了。

我使用的是 WordPress,WordPress 有个 Amazon S3 的插件,在安装好后,我把前面得到的 Access Key ID 和 Secret Access Key 填入了对应的配置区域,感觉都设置好了,保存后上传图片测试下,出错了,Access Denied。

貌似是权限的问题,打开 Amazon S3,进入 IAM 设置,找到前面添加的用户,仔细翻看了下,终于找到了,原来虽然设置了用户以及用户的密钥对,但是,没有给这个用户分配什么权限。怪不得,之前还纳闷呢,难道创建一个用户就完事了,这么简单的。看来自己少了一步,创建用户后,还需要给用户分配1-2个权限的,貌似最多2个权限,在设置时有个选择的列表,非常详细。因为我只需要 Amazon S3 的相应权限,所以只勾选 Amazon S3 full control 这一项就可以了。这样才说得通么。

如此,配置妥当,然后回到 WordPress,重新试了一下,果然,成功了!

回头来想下,自己真是太傻X了,设置了用户后太想当然了,也怀疑过难道仅仅设置个用户就行了?如果这样,新建一个用户,他自动就会有各类权限,那么要创建用户岂不是多此一举,唉。创建用户,给用户分配不同的权限,这正是 AWS IAM 的安全策略,但是我太疏忽了,只创建了用户,却没有细看这个用户的属性。

二、创建用户组管理用户

创建了用户,AWS 还提示最好创建一个用户组,通过配置用户组来划定用户的权限。从逻辑上讲,通过用户组的方式更方便,所以,单独创建的用户,可以先不给他分配权限,然后再建一个用户组,给这个用户组分配权限,然后把需要这个权限的用户纳入这个用户组就可以了。

三、设置账单警报

因为 AWS 免费套餐中的各项服务都有限额,超出免费额度,就会产生费用。所以,最好建立一个账单警报,我们可以使用 CloudWatch 服务来创建警报,当 AWS 各项服务产生的预估费用总额大于某个值时触发警报。这样后台可以看到警报,还可以给指定邮箱发送邮件。需要注意的是,目前针对账单的警报只能选择 US East (N. Virginia) 区域来添加。另外,每个月有10 个 Amazon CloudWatch 警报和 1000 封 Amazon SNS 电子邮件通知是免费的,如果超出也是要收费的。

BillingAlarm

四、Amazon EC2 的安全组授权设置以及 SSH 登录

刚创建的实例 Ping 不通

刚刚创建好的 Amazon EC2 实例默认是不能从外部访问的,当然也 Ping 不通的,因为默认安全组没有这些授权规则。我们需要为实例添加入站规则,打开 Amazon EC2 实例对应的安全组,在下面的 Inbound 标签处可以编辑各种入站规则,如:TCP、UDP、ICMP、HTTP、SSH 等等协议的规则。

设置好了相应的入站规则,我们才能使用 SSH 来连接 Amazon EC2 实例,在 Windows 上,我们可以使用 PuTTY 来连接。

在创建实例时我们曾经下载过一个私钥文件,是 .pem 格式的,因为 PuTTY 不支持这个格式,我们可以使用 PuTTYgen 先把它转换成 .ppk 格式的,然后打开 PuTTY 填入相应选项。注意,Host Name(主机名)处填写 user_name@public_dns_name,一般来说用户名是 ec2-user,具体可能因为你所用的系统镜像不同而不同。

全部设置好了,点击 Open,就可以使用 PuTTY 来登录了。下图为登录后界面:

PuTTY登录后界面