亚马逊云计算服务 - 初窥门径
亚马逊云计算(AWS)是一个基于 IaaS(基础架构即服务)的云计算服务
我们可以以此建立一个部署在云上的服务器,来实现个人或业务的需求
这里我们利用亚马逊提供的免费试用额度,部署一个 虚拟私有云(VPC) 中的服务器
同时还能享受亚马逊的强大带宽,快来看看能做些什么吧!
语言版本: 中
发布日期:2014-11-09
更新日期:2014-11-13
作者:lngost
1. 从注册账号开始
(a) 进入 亚马逊云计算服务 - 简体中文
(b) 完成注册过程
* 注册需要一些个人信息,最重要的应该就是带有 Visa 或者 Master 标识的银行卡(信用卡)
* 即便是仅使用免费试用额度,也需绑定该卡,默认是根据按需付费
* 故在使用前请仔细了解收费细则(仔细查阅官网,收费标准均有罗列),因为一不小心就可能引起扣费
* 可以看看网络上的其他人写的文章,也可以使用亚马逊官方提供的简单月度成本结算器
(c) 完成注册并登陆后,进入 AWS Management Console
(d) 选择相应的服务即可,这里我们从 EC2 开始入手
* Amazon EC2,即 Amazon Elastic Compute Cloud(亚马逊弹性计算云)
* 官方网站上有详细介绍
* 个人理解就是亚马逊提供了一组虚拟的CPU、内存、存储设备等等,并根据不同的处理能力收费
与此同时,还能与亚马逊提供的其他云组件进行信息交换,好比一台虚拟的计算机(服务器)
(话虽这么说,但是并不是说就真的分配一台计算机给你让你捣腾,请自行查阅:云 和 虚拟专用服务器(VPS) 的区别)
* 每一个这样的 "计算机 / 服务器" 称为一个 "EC2 实例"
* 从2013年3月18日起,新注册的用户将拥有一个 默认VPC,并且所创建的 EC2实例 将默认建在该 VPC 中
* VPC 相比 公有云 能提供更多高级安全功能
2. Amazon EC2
创建 EC2实例
(a) 在点击进入 EC2 之前,先选择部署所在的区域(Region)
* 选择区域,就是选择亚马逊在地里位置上的服务器
* 比如,选择"Tokyo",就是选择了亚马逊位于东京的服务器
* 之后我们所部署的云组件(比如一个EC2实例)就位于亚马逊东京的服务器上了
* 选择合适的地区还是比较重要的,举例如下:
(1) 客户主要面向澳大利亚,那么选择"Sydney"比较合适,客户使用你提供的服务时,网络延迟相对较低;
(2) 用户面向自己,比如中国地区的用户,通常选择"Tokyo"能获得较低的网络延迟。
(目前亚马逊没有在中国的服务器,不过新闻说已经落地准备开建了?)
* 另外,不同区域的收费是不一样的,目前看来,东京区域的收费普遍略高,如果是免费额度的话到无所谓了
(b) 选择 "EC2" 进入 EC2 Dashboard
(c) 创建实例(Launch Instance)
(d) 在"Quick Start"一栏选择要安装的 AMI
(免费试用请勾选"Free tier only"以筛选可免费使用与运行的镜像)
* AMI - Amazon Machine Image,详细解释请参考官网
* 个人理解就是一个操作系统的镜像,可以运行在 EC2实例 上
* 如需其他的镜像,可相应选择左边的标签,如下图:
* 其中的软件通常分为免费、收费,并且都额外收取运行时费用(意味着,即便是开源的软件,运行在 EC2实例 上时,也是需要额外收取运行费的)
* 标有"Free tier eligible"的镜像则免收授权与运行费(也就是一分不收!)
(e) 这里我们选择 "Ubuntu Server 14.04 LTS (HVM), SSD Volume Type", 64-bit
* 大牛请忽略这个小贴士...
* Ubuntu 是基于 Debian GNU/Linux 的发布版(distribution),初次接触 Linux 时这个比较好入门
* HVM - Hardware Virtual Machine 全虚拟化,与之相对应的是 PV - Paravirtual 半虚拟化
* SSD Volume Type - 支持的卷类型
* 在此处创建实例后,亚马逊提供的系统镜像默认是没有桌面环境的,只有命令行
* 我们将通过 ssh 来远程登录到该云主机进行操作
* 镜像中也有 Windows Server 可供选择,需注意安装容量是否超出 EBS卷 的免费额度大小(有关 EBS卷 请继续看下文)
(f) 接着选择实例类型
* 免费试用请选择带有"Free tier eligible"标签的实例类型
* Family - 对各个实例大类进行的分类,比如"普通实例"、"计算优化实例"、"内存优化实例"、"存储优化实例"等等
* Type - 按实例部件的组成进行细分,例如使用什么CPU,是否具有高I/O性能的存储等等
* vCPUs - 实例上 虚拟CPU 的数量
* Memory - 提供的内存大小
* Instance Storage - 实例存储大小
(注意:EC2 中的实例存储均为非持久性存储(写有 "n×m (SSD)" 字样),当实例关闭(stop) / 终止(terminate)后,数据即刻丢失)
(如何持久性存储数据:需在之后几步里分配 EBS卷 以用于数据的持久性存储,即实例关闭(stop)后,数据依旧保持)
(目前亚马逊推荐将 AMI 安装在 EBS卷,即将 EBS卷 作为 root device volume)
(所有写有"EBS only"的实例类型只能选择 EBS卷 用于存储,所以肯定为持久性存储)
* EBS-Optimized Available - EBS优化,为 EC2 和 EBS 之间提供专用传输通道,提高稳定性和吞吐量
(注:本来比较好理解的一个属性,被官网的中文翻译坑了...)
(原句是这样写的:提供 10% 以内的预配置 IOPS 性能。 各位看懂了吗?我最初的理解就是:怎么才提供 10% ?说好的优化呢?怎么还低了?)
(其实文档中是这么写的:within 10 percent of their provisioned performance。就是 "预配置性能 ± 10%",就是上下10%以内的意思)
(妥妥地有歧义阿!不过在定价栏中到是把"波动幅度"给加进去了...)
* Network Performance - 网络性能
* EBS - Elastic Block Store,用于 EC2实例 的持久性数据块级存储卷
* 关于那个 Network Performance,EC2实例 和 Internet 上的其他服务器相连是通过网络,但 EC2实例 和 其他云组件(比如 EBS卷)相连其实也是通过网络,到底指哪个?
(g) Configure Instance Details 此处免费试用的话直接点下一步即可
* 提供了一些高级选项,也牵涉到收费项目,每个参数旁都提供说明了
* 各位自己研究研究吧?
(h) Add Storage
* 免费试用额度允许总计 30GiB 的 EBS卷 容量,Linux系统的话,默认设置也够了
(GB & GiB ?请自行查阅)
* 免费试用请选择"General Purpose(SSD)"
(关于 EBS 里有一个 免费200万次I/O(磁性介质卷)的额度,如果选择了SSD的话这个无需关注)
(使用SSD不计算I/O次数,而使用"Magnetic"却还要计算I/O次数(超出还收费...),这是逼着我们用SSD的节奏?我们都知道SSD比传统硬盘性能强吧?亚马逊挺阔阿?)
(i) Tag Instance
* 给实例贴几个标签,让自己能分清楚哪个是干嘛的,直接跳过这步也OK
* 比如可以这么写:
Key | Value |
Name | my-ec2-a |
Owner | lngost |
Purpose | test |
Anything else? | Wooo~!! Hahhhhhh... |
(j) Configure Security Group
* 我们可以选择"Create a new security group"
* 然后创建一个规则,比如下面这样:
Type | Protocol | Port Range | Source |
SSH | TCP | 22 | Anywhere | 0.0.0.0/0 |
(k) 进入Review后,确认一下,没问题就点 Launch 吧
* 按照我们的设置,页面上会提示有 Warning,现在不必理会
* 这里我们弹出了一个对话框,关于 key pair 的,初次用的话当然新建一个拉~
* 输入 key pair name 后需要 Download Key Pair,然后才能 Launch Instance
* 然后跳转到了成功创建页面,点选"View Instance"查看我们创建的实例
(一般的设置我没遇到过错误信息,所以如果这里没有创建成功的话...各位自己摸索吧...)
3. SSH 登录 EC2实例
(a) 找到之前下载的 key pair 文件:*.pem
(b) 以下操作基于 Mac OS X 和 Linux,Windows用户自行查阅:PuTTY ssh使用
(c) 确保你的 key pair 文件在你目前的工作目录下
$ ls -l total 8 -rw-r-----@ 1 lngost staff 1692 8 Nov 21:07 lngost-my-ec2-a.pem
(d) 更改用户访问 key pair 文件的权限
$ chmod 400 lngost-my-ec2-a.pem $ ls -l total 8 -r--------@ 1 lngost staff 1692 8 Nov 21:07 lngost-my-ec2-a.pem
(e) ssh登录(以下命令根据文档教程改写而来,请自行替换相关内容)
$ ssh -i lngost-my-ec2-a.pem ubuntu@ec2-198-51-100-1.compute-1.amazonaws.com
* 命令格式:ssh -i <key_pair_file> user_name@public_dns_name
* user_name 会根据 AMI 的不同而有变化,这里我们安装的是 Ubuntu,所以用户名为 ubuntu 即可
* public_dns_name 位于 "EC2 Dashboard - Instances" 里选择相应的实例即可查看到,如下图:
* 之后看到如下提示:
The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)' can't be established. RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f. Are you sure you want to continue connecting (yes/no)?
* 输入 yes 并回车,即能成功登录
附件 - 接下来干什么?
* 现在我们已经登录到这台云主机上了,就可以像在本地操作一样,配置运行环境以满足我们的需求
* 比如,通过 wget 进行下载,利用亚马逊的带宽,你会发现,有时下载速度异常惊人,虽然只是下载在云主机上; 之后通过 scp 再传输至本地计算机,同样利用其带宽消除下载的服务器端瓶颈,使整体下载的平均速度得以提高
(需注意因数据传输而产生的费用,目前的免费额度是(每月),Internet至EC2 - 免费,EC2至Internet - 15GB的免费限额,超出部分按流量收费)
* 再者,我们可以配置 LAMP,将我们的站点放上去
* 还能做些什么?如下图:(懂的自然懂?国内的小伙伴已经成功连上咯~~)
(本来我是澳洲的,下图:)
(设置完之后~~下图:)