在 Amazon AWS上搭建博客及部署网站:设置AWS服务,安装、配置软件,开发及部署环境

   05/03/2016 11:15 pm   大 中 小 简体 繁體 字体:
1 颗星2 颗星3 颗星4 颗星5 颗星 (点击来评价哦~_~)
    767人参与

简单来说,AWS (Amazon Web Service) 提供了一整套基础设施和服务,使“建站”这件事变得轻松愉快。

你可以利用AWS构建博客主机,云存储(比如DropBox),手游数据中心,公司门户等等几乎所有你能想到的需要网络服务的场景。作为一个入门介绍,我们从 WordPress 开始,因为 WordPress 几乎包含了入门级站点的全部需求元素:服务器主机,PHP运行环境,数据库,前端页面等等。不得不多说一句,对于个人博客来说,如果经济性是首要考量因素,AWS 并非首选,大量专业博客虚拟主机以非常低廉的价格提供给低访问量的博客站长。AWS的入门套餐价格也远比入门级博客主机价格高许多,当然,性能和容量也大许多。在决定是否选用AWS提供服务前,有必要对自己的业务量有个初步估算。

好在 AWS 对于初次注册的用户提供了为期一年的免费套餐,足以应对一个中等大小的博客站点(甚至多个)持续运行一年时间。我们就从这个免费套餐开始入门的学习。

免费套餐的详细说明请参见官方介绍:

点击进入:亚马逊AWS中文主页
点击进入:亚马逊新手套餐介绍页

另外,AWS 有遍布全球的数据中心,而且,即使你的主机设置在美洲,也可以用 CloudFront 服务来进行全球加速。不过 CloudFront 服务似乎并未包含在免费套餐中。建议在创建主机时,选择日本节点,从大陆访问的速度还算不错。

有消息称亚马逊正在计划在中国大陆部署数据中心,并有望在2013年年底前正式上线。非常令人期待啊。

第一步:注册账号

在开始前,请先准备一张双币信用卡。

AWS 账号就是你的 Amazon 账号 (注意,不是 amazon.cn 而是 amazon.com)。若之前没有amazon账号,请直接去 www.amazon.com 注册。如果不想用AWS服务,这个账号还可以用来在美国亚马逊海涛心仪的商品。

然后开通 AWS 服务:打开页面 亚马逊新手套餐 ,点击“免费试用”,跟随向导注册服务。所有的个人信息按照真实信息填写即可,中间会验证手机,验证信用卡。验证手机会收到一个英文电话,根据提示输入验证码,注册向导会自动继续。信用卡验证过程中会有一笔1美元左右的扣款,理论上会在最终账单中退还。注意你的信用卡必须是有效期内,在一年免费期结束后,如果继续使用,会按照选择的付费方案进行支付。如果免费期结束不想继续使用,关闭所有服务即可,不会产生任何额外费用。

注册过程如果有选择付费方案(定价模型),请选择“按需付费”。大意就是,用多少付多少,不用就不付。对于实验性质尝试,这种方案很合适。

第二步:创建主机

主机是一切服务的基础。当然,如果你不需要运行自己的程序,只需要一个数据中心,这一步也可以省掉。比如手游客户端需要的数据库,通信等的。既然我们需要一个网站,那么一个主机是必须的。

亚马逊的主机有个很拉轰的名字:“亚马逊弹性云计算”(Elastic Cloud Compute, 简称 EC2)。用亚马逊自己的话说,它的优势在于:弹性,完全控制,灵活,可靠,安全,与AWS其他服务轻松配合,经济实惠,轻松入门。

现在,我们已经有了一个AWS的账户,立刻进入AWS控制台,会看到这样的界面:

亚马逊云服务AWS

进入 EC2 面板,点击 “Launch Instance”来创建第一个实例。会看到这样的对话框:

亚马逊云服务AWS

选则 classic wizard 进入即可。然后会进入操作系统选择界面,支持Linux和Windows系统。作为服务器,建议选择Linux系统。同时,标记星号的表示包括在免费套餐中,选择这些系统不会产生额外费用,其他的会按照标准定价收费。

我这里选择的是Amazon Linux AMI。AMI 预置了若干常用包,很方便。

下一步会选择实例数量和类型。注意,收费方式中的一年720小时时间,是按实例分别计算的。720小时足够单实例持续运行一年,两个实例就是半年。这里作为测试,保持默认1,实例类型一定要确认是 微型(T1 Micro),其它类型均不包括在免费方案中。

后面两页使用默认设置即可。进入到Tags设置,这一页只是用来标识主机信息的,你可以填一个好记的名字。然后继续,进入关键的一步,生成 Key-Pair。这个 Key-Pair 是后面所有操作的基础,生成后一定要保存在一个安全的地方。页面如下,输入一个好记的名字,点击“Create & Download”,下载完成后点击继续。

亚马逊云服务AWS

下一步,会要求设置防火墙。初始设置会有两个默认安全组,任选一个或新建一个,默认打开80(http)和22(ssh)端口确保我们可以SSH连接服务器进行管理操作,以及通过浏览器访问Web服务。安全组之后随时可以增删编辑。

至此,EC2实例设置完毕,点击“Launch”,回到AWS控制台,EC2的面板会显示刚刚创建的实例,注意“状态”一栏,当它由“Pending”变为“running”后,EC2实例就正常运行,可以进行后续操作了。

第三步:绑定IP地址,绑定域名

EC2实例默认只有私有IP和一个动态的公开IP地址/域名。如果需要使用我们自己的域名,则需要一个静态IP,并将我们的域名指向这个IP。

如何申请域名就不多说了。只说如何绑定。

首先,进入EC2控制台,在左侧导航栏选择 Elastic IP,申请一个新的IP地址。

亚马逊云服务AWS

得到新的IP地址后,将它绑定到刚刚生成的EC2实例。然后将我们希望使用的域名解析到这个IP地址即可。很简单。不过需要注意的是,如果你申请了一个IP而没有使用(绑定到一个可用实例),亚马逊是会罚款的哦,它会直接出现在你的账单里。

完成IP申请后,需要编辑安全组,使这个IP地址可以访问3306端口,这是为了之后我们的主机可以访问RDS实例。

第四步:创建RDS实例

建网站必须有个数据库。比如wordpress。

通常php网站最常用的数据库就是MySQL。我们有两个选择,一个是直接在EC2主机安装部署一个MySQL服务,另一个是使用RDS。自行安装的好处是在业务量不大的情况下,不会产生额外费用。RDS的好处是,无需操心安装,备份,负载等问题,并且很容易扩容。

我们后续两种数据库的使用都会介绍。这里既然我们已经在AWS控制台了,就先创建一个实例以备后续使用。

首先,在主控面板选择 RDS 进入,点击 “Launch a DB Instance”来开始创建数据库实例。向导第一步会要求选择数据库引擎,果断选择 MySQL 进入下一步。向导第二步询问是否用于生产,标题是“Do you plan to use this database for production purposes?”,好吧,我也不知道这是什么玩意儿,不过按说明,这种类型会要求使用 Multi-AZ (多区域部署),是不包含在免费计划中的。选择“No”进入 Step 3.

Step 3,许可证模型选择默认 GPL,数据库版本默认,数据库类型“DB Instance Class”选择“db.t1.micro”(微型,免费套餐),空间分配填写20G,足以应付中小型应用。然后填写实例名称,主用户名,密码等等。完成后进入下一步。

Step 4,这一步比较关键,数据库名填入并记录,其他项保持默认,关键是最后一栏,安全组,选择刚刚我们在创建EC2实例时设定的安全组(打开3306端口),然后进入下一步。

Step 5,备份设定。这个很简单,根据需要设置下就好了。这里设置好之后,我们就不用再操心数据库备份的事儿啦。

最后又一个摘要页面,检查无误后,点击“Launch Instance”,数据库实例开始创建。这个过程比EC2实例创建的要慢,耐心等待5到10分钟直到 Status 变成绿色文字“available”。点击该实例详情,找到“Endpoint”,这个地址就是我们将来在配置数据库连接时的主机名。

至此,建立一个简单网站的AWS服务创建和初始化工作全部完成,下一篇,我们将使用SSH连接来安装我们网站的一切。

----------------------------

现在,我们已经有了一台EC2主机,具备了基本的硬件环境。下面,开始软件环境的配置。

第一步:连接服务器

后面所有的一切,都需要在SSH终端窗口操作。首先,我们需要一个SSH客户端。PuTTY是很常用的工具。这里我们选用 Bitvise SSH Client。这个软件之前叫做“Tunnelier”。软件可以在 这里下载

下载好后安装,在SSH这一栏填入必须的信息。主机名按实际地址填写,username填ec2-user(EC2默认用户名),在 User Keypaire manager 这里导入之前申请EC2过程中保存的Key Pair 文件(.pem格式)。这里Bitvise Client 的好处就体现出来了,PuTTy无法直接使用AWS格式的KeyPair文件,需要做一次转换,而Bitvise可以直接导入。导入后,选择 Initial Meth中导入的key的栏位,一般是 Slot 1,根据实际情况填写即可:

ssh客戶端

填写好后,点击Login,第一次回弹出一个确认窗,是否接受认证信息,点击确认,一切正常的话登陆成功后左侧导航栏会出现 “New terminal console”, “New SFTP Window”。点击 new terminal console,熟悉的Linux终端提示符就出现了。后面所有的命令行操作均在这里进行。

实际上,所有的操作均可用sudo命令来执行。如果不需要用SFTP向系统文件中上传文件,没有理由直接root登录。后面会介绍用SVN部署代码的方法,除了一些特殊情况,SFTP基本上不怎么需要了。

1 2 下一页

关键词: , , , , , , , , 

最多人阅读内容