亚马逊 AWS 介绍

简单来说,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其他服务轻松配合,经济实惠,轻松入门。详细介绍参见: EC2概述

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

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

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

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

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

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

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

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

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

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

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

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

得到新的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连接来安装我们网站的一切。

在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务的更多相关文章

  1. 在 Amazon AWS 搭建及部署网站:(三)开发及部署环境

    服务器已经搭建好,网站也开始运行了.那么如何方便地部署代码呢? 最基本的方式,就是使用 SFTP 向网站目录直接部署.这种方法的缺点是版本控制不便,在上传时也无法方便的比较代码变化. 用SVN来部署是 ...

  2. 在 Amazon AWS 搭建及部署网站:(二)安装、配置软件,启动网站

    现在,我们已经有了一台EC2主机,具备了基本的硬件环境.下面,开始软件环境的配置. 第一步:连接服务器 后面所有的一切,都需要在SSH终端窗口操作.首先,我们需要一个SSH客户端.PuTTY是很常用的 ...

  3. 在 Amazon AWS 搭建及部署网站:序

    最近玩了把 AWS,实现了服务器的创建.PHP+MySql运行环境.代码部署等.一方面,后面的项目会反复重复这个流程,需要一份手册,另一方面,也给自己一个记录.于是把整个过程和要点整理一下,发到自己的 ...

  4. 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获

    项目开发中的一些注意事项以及技巧总结   1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...

  5. 白嫖永久免费云服务器教程,永久免费虚拟主机、永久免费云数据库、搭建FTP服务器、服务器安装Linux / windows操作系统、服务器部署网站、宝塔一键部署多网站、独立ip、永久国内高速云服务器

    一.准备工作 1. 注册账号 声明:切记不可用服务器做违法的事情 申请地址:https://www.sanfengyun.com/ 图文教程地址:https://www.cnblogs.com/zwn ...

  6. 部署项目到服务器 & 搭建博客网站

    搭建博客网站 作为名程序员,或者是网络编程爱好者,拥有一个自己的博客网站再好不过,本篇文章手把手教你部署自己的网站

  7. AWS EC2中部署Apache服务器(LAMP)

    关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...

  8. [转]基于AWS的自动化部署实践

    作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...

  9. React项目搭建与部署

    React项目搭建与部署 一,介绍与需求 1.1,介绍 1.1.1,React简介 React 是一个用于构建用户界面的 JAVASCRIPT 库. React主要用于构建UI,很多人认为 React ...

随机推荐

  1. The 2015 China Collegiate Programming Contest H. Sudoku hdu 5547

    Sudoku Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  2. BZOJ3485 : [Baltic2012]peaks

    首先将每个平原缩成一个点,建出图,相邻两个点之间的边权为它们高度的较小值. 用Kruskal算法求出这个图的最大生成树,每次合并两个连通块时新建一个点指向它们,得到一棵有根树. 对于每个点,求出它子树 ...

  3. Coder-Strike 2014 - Round 1 A. Poster

    主要就是先将梯子移动到最左边或者最右边 k>n/2时移动到最右边 k<=n/2时移动到最左边 然后遍历一遍 #include <iostream> #include <v ...

  4. webstorm常用快捷键(常用)

    ctrl+/ 注释 ctrl+shift+/ 注释一块的代码 ctrl+shift+z 返回撤撤销前的操作 ctrl+shift+up/down 代码向上/向下移动 ctrl+b或ctrl+鼠标左键单 ...

  5. 【bzoj2049】[Sdoi2008]Cave 洞穴勘测 link-cut-tree

    2016-05-30  11:04:51 学习了link-cut-tree 二中神犇封禹的讲义感觉讲的超级清晰易懂啊(没有的可以q窝 算是模板吧 #include<bits/stdc++.h&g ...

  6. Oracle 建立索引及SQL优化

    数据库索引: 索引有单列索引,复合索引之说,如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经 ...

  7. jquery-uploadify 上传

    先从官网下载插件 http://www.uploadify.com/ 引入之后.... html.................... <!-- 上传 --> <div id=&q ...

  8. ./*** > /dev/null 2>&1

    转载:http://dongwei.iteye.com/blog/322702 shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义 ...

  9. Hibernate+Struts2进行数据的修改

    1.先把userid传给修改的页面 2.跳转到修改的页面 3.用request接收传入输入需改信息的页面 传到action Action,  通过request获取id service层 DAO层 & ...

  10. for循环练习

    1.输入一个整数,计算从1加到这个数的结果int sum = 0;Console.WriteLine("请输入一个正整数");int a = int.Parse(Console.R ...