根据亚马逊云科技的政策,所有的个人用户可以创建一个为期1年的免费账号。但是要注意,并不是所有的亚马逊云科技服务在第一年中都是免费的。所有在尝试某个亚马逊云科技服务的时候最好先了解一下该服务是否在第一年免费,以及如果收费的话是怎么计算费用的。关于亚马逊云科技的收费的话题,我们放在后面再详细介绍。先来看怎样创建一个免费的亚马逊云科技账号。
首先访问网址: https://aws.amazon.com/cn/getting-started/guides/setup-environment/?trk=cb0e15c9-0e15-42fd-80ae-2e08b72ed732&sc_channel=el
如下图可以看到,创建用户的教程非常详细:
1)点击创建亚马逊云科技账户(输入邮箱和账户名):
4)输入信用卡信息点击继续
在这里你要填写的是你的支付信息。虽然我们第一年希望使用的是免费的服务,但是支付信息还是必不可少的。
5)要验证账户,使用短信,发送短信后收到一个数字代码以在下一个屏幕上输入单击继续以进行最后一步。
6)最后一步,选择所需的账户支持计划。原定设置的“基本支持”是免费的套餐。如果不确定,请选择“基本支持”,因为以后可以随时更改不同的套餐。要查看各套餐之间差异的完整列表,请阅读比较计划和定价实例以了解详细信息。要完成账户的创建,请单击完成注册按钮。
9)安全检查,输入验证码。
10)登录进入亚马逊云科技控制台
到这里,我们已经完成了免费账号的建立和登录工作。下一步就是开始学习使用亚马逊云科技。从下一篇文章开始,我会先开始介绍一些亚马逊云科技的某些基本概念。了解这些基本概念对于正确理解和使用亚马逊云科技服务是必不可少的。
亚马逊云科技为我们提供了免费的使用学习环境,都给市场的从业人员带来了良好的学习环境。也因此,使用学习亚马逊云科技的人可以拥有从事相关工作的机会。
入门资源网址:AWS入门_AWS入门使用教程_AWS云计算资源-AWS云服务
5)课程安排如下:
什么是云计算?
云计算通过互联网按需提供IT资源,并且采用按使用量付费的定价方式。您可以根据需要从云提供商那里获得技术服务,例如计算能力、存储和数据库,而无需购买、拥有和维护物理数据中心及服务器。
公有云:
私有云:
今天从宽泛的角度谈谈亚马逊云科技的分布式概念。首先,亚马逊云科技是一个基于分布式架构构建的云服务,我想这一点是最清楚最明白,人人皆知不过的了。但是,当我们开始使用亚马逊云科技以后就会发现分布式远不像我们想象中那么清晰,而是经常会忘记,并且需要时时提醒自己我正在使用的是一个分布式系统。当我们后面讨论一些亚马逊云科技当中最流行的服务,比如DynamoDB,比如S3,我们会涉及到一个很有趣的概念,叫做consistency。我们会需要深入理解eventually consistency的概念,和使用这样的服务时需要克服的一些陷阱。而这些问题的出现,都是因为亚马逊云科技是一个分布式的系统。
什么叫分布式系统?按照维基百科的定义:
分布式系统是一种系统,其组件位于不同的联网计算机上,这些计算机通过相互传递消息来通信和协调其动作。这些组件相互交互以实现一个共同的目标。分布式系统的三个重要特征是:组件并发,缺少全局时钟和组件独立故障。
亚马逊云科技可以带给我们很多好的使用特性,可以说都是借助于分布式系统完成的。比如,亚马逊云科技可以动态调整我们要使用的资源。只有在我们使用的资源不够时才会分配给我们更多的资源,以达到节省费用的目的。那么正是因为亚马逊云科技的基础架构是基于多个小的组件完成的,使得亚马逊云科技提供动态分配资源的功能。还有很多很多特性都是基于分布式系统带来的好处,在这里先不细说。
我们先来从最高层理解一下亚马逊云科技是怎么体现出分布式的。首先,我们应该注意到亚马逊云科技里的region的概念。如果我们打开亚马逊云科技 console界面右上角在 “support” 左边的region下拉菜单,我们可以看到所有的亚马逊云科技已经部署了的region。每一个region的信息包括 “大地区 (小地区)region名称”,比如 “US East (N. Virginia) us-east-1”,大地区是美国东部,小地区是弗吉尼亚北部,region名称是us-east-1。当我们使用亚马逊云科技服务时,第一要选择的就是region,也就是说我们要使用哪个region里的该服务。这里要考虑的问题包括与该服务交互的其他服务会部署在什么region里,我们会倾向于将互相通信的服务部署在相同的region,这样减少他们之间通信的时延。第二要考虑我们要使用哪些服务,因为有些服务只部署在了某些region里。第三要考虑亚马逊云科技服务使用者所在的区域。比如我们使用亚马逊云科技部署一个web portal,假如我们的目标客户基本以中国大陆为主,我们当然应该选择一个离我们近的region,比如日本,韩国,新加坡等。
再下来的一个概念是Availability Zones,也就是可用区,或者也叫AZ。亚马逊云科技几乎所有的服务不会只部署在region的一个区域里,而是至少部署在region的两个及以上的区域里,并且可用区之间要求一定的距离。这样做的好处明显是提高了服务面对物理破坏带来的服务瘫痪的危险,比如地震,网线被破坏,等等。对于某些服务在建立的时候我们会被要求指定要使用那些AZ,us-east-1a,us-east-1b,us-east-1c就是在ue-east-里的3个AZ。还有相当多的服务是不需要用户指定AZ的,而是AWS会自动分配AZ,但是肯定是2个或以上。
当我们访问某个服务时,该服务的功能将由所有在该region上的部署了该服务的AZ共同完成。以后在我们谈到更具体的亚马逊云科技服务时,我们再详细谈一些由分布式带来的好处和陷阱。
关于亚马逊云科技 region和available zone的介绍请参考亚马逊云科技文档:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
亚马逊云科技云服务的产品有很多(如图一所示),每一种产品都有特殊用途,一般情况下我们需要将不同类型的产品组合在一起(如图二所示)才能够构建一个可扩展,高性能,可容错的系统,因此这一章的内容将介绍亚马逊云科技经常被使用的服务。
EC2(Elastic Compute Cloud)是亚马逊云科技非常基础的一款服务,其主要功能是提供计算服务,比如你可以通过亚马逊控制台自己创建一个EC2资源,你可以把这个计算资源看成一台虚拟机,它能够计算,能够读写存储,能够通信。你可以同时创建多个EC2资源,这些EC2可能运行在一台物理机器上也可能分布在多台物理机器上。
通过以上描述,你可以把计算资源想象成有多台物理设备放在一起形成了一个整体,这个整体拥有了强大的运算能力,而这些运算能力可以通过成千上万个EC2资源进行分解,并独立地提供给想要使用的企业或个人。当企业或个人不需要这些计算资源的时候就可以将其释放给其它企业或个人使用。
EC2是一台虚拟机,它能够运行Python写的程序,能够运行数据库,能够运行网页应用比如digolds.cn就是运行在亚马逊云科技的EC2上的。在现实的项目中,EC2一般是用来运行程序的,因此你可以使用C++、C、JavaScript、Java、Python、Ruby等等语言来编写程序,然后在EC2上准备程序依赖的运行环境,此时EC2就可以运行这个程序。
直到今天,几乎所有的线上服务都需要存储数据,这些数据包括用户信息、图片、歌曲、视频等等。为了能够有效地存储和读写数据,那么需要编写一些程序专门用于解决存储问题,幸运的是亚马逊云科技提供了S3(对象存储)、EBS(块存储)和EFS(文件存储)存储服务,专门用来存储数据的。每种服务都有不同的用途、计费方式以及存储方案。接下来我们将了解一下每一种存储服务的特点和用途。
Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,这个服务的特性是具有可扩展性、数据可用性、安全性和高性能。通过S3,我们可以把文件以对象的形式存进去并得到一个唯一标识这个文件的Key,通过这个Key便可以从S3中获得该文件的内容。这个对象除了文件内容本身,还包括描述该文件的元数据(比如该文件的大小)。比如我们向S3中存储了大小为23KB的文件,那么S3中将有一个对象包含了23K以及该文件内容。
S3经常被用来放一些静态资源文件比如CSS、Javascript、图片,视频等等,比如大家经常看到B站上的视频,其实是可以放在S3上存储的,又由于S3易于扩展,所以可以不停地往S3中存储静态资源。互联网上的用户可以直接访问到S3上存储的数据,这是它的一大特点。
Amazon Elastic Block Store(Amazon EBS)是块存储服务,这种块存储服务一般会挂接到EC2实例上使用。它具有持久化和快速读写的存储能力,其存储的单元是基于块的,如上图中间的(Block Storage)。它无法直接被互联网访问,其常常被用于存储经常要用到的文件,比如系统的驱动程序。
Amazon Elastic File System(Amazon EFS)是文件存储服务,这种存储服务可以同时被多个EC2实例使用,而且随着存储文件的数量和大小变化而变化。也就是说当数据量变多(变少)的时候,它会自动增加(缩减)存储空间,以便容纳更多(更少)的数据。EFS非常适合内容管理系统(CMS),比如WordPress就是一种流行的CMS,这些内容可以存储在EBS上,然后由多个EC2实例读取,当管理员只需要更新或添加新的内容到EFS上,那么所有的EC2实例将会得到内容完全一致的信息。这种一致性的能力在EBS上是做不到的,因为每一个EBS只能挂接到唯一的一个EC2实例上,而EFS能够同时挂接到多个不同的EC2实例上。
Amazon CloudFront 是一个基于云的内容交付网络(CDN),提供并与亚马逊 Amazon Web Services 套件集成。由亚马逊网络服务系统提供基础服务的一个内容分发网络。其在欧洲、亚洲、北美、澳洲、南美、美国多个主要大城市多地拥有自己的数据中心,共 107 个网络边际服务点提供服务。
Amazon CloudFront 内容交付网络允许通过在主要商业中心运营的区域中心全球分发数字内容。它减少了通过其分布式内容传递通道访问静态和流数据的延迟,这确保了数据从最近的 CDN 服务器传递给收件人。Amazon CloudFront 是一种即用即付模式,可以轻松地与所有 Amazon Web Services 集成。
Amazon CloudFront 专为需要向亚马逊许多不同区域用户快速传送内容的 Web 发布公司和应用程序而设计。Amazon CloudFront 通过在其不同的 CDN 位置缓存每个对象的实例来运行,从而减少了传递内容所需的时间。
Amazon CloudFront 通过支持的应用程序编程接口访问 Amazon S3 中的数据,并将其置于区域数据存储区中。其他亚马逊网络服务,包括亚马逊 EC2,也可以通过 EC2 处理流数据并通过 CloudFront 将其传递给最终用户。与所有其他亚马逊网络服务产品一样,CloudFront 具有可扩展性,灵活性,可作为即用即付服务提供。
利用Route 53服务,AWS的用户就可以让终端用户访问众多的互联网服务了。所以"Route 53"就像一条虚拟的公路一样,把终端用户带领到目的地。Route 53的服务器分布在全世界各地,也是亚马逊唯一保证100%可用性的服务。DNS协议是基于TCP/UDP协议的,DNS服务监听的端口是53。所以名字里带53,暗含了DNS服务监听的端口。
VPC是AWS提供的一种虚拟网络服务,其它AWS资源都可以放在这个虚拟网络里构成一个逻辑单元,这个逻辑单元作为一个完整的服务提供给外部世界使用。当你使用VPC服务的时候,就需要使用其提供的gateways, route tables, network access control lists (ACL), subnets and security groups等功能,通过这些功能来配置虚拟网络。
进入亚马逊云平台管理控制台:亚马逊云管理控制台。
创建一个实例,在user data处输入脚本,内容如下。在安全组处需要开放80和22端口。在安全组处,将数据库的那条安全组设置,允许访问处修改为刚才创建的实例的安全组
此时去浏览器输入:http://ip/phpinfo.php
,可以访问到发布页面即可 。
cd /var/www/html
,wget https://wordpress.org/latest.tar.gz,tar zxf latest.tar.gz
,cd wordpress
,此时在浏览器输入ip/wordpress
,就会自动进入配置页面。【注意:访问浏览器时使用的是公网ip,在控制台上连接时使用的是私网ip】,点击左下角的进入,就可以进入到配置页面。/var/www/html/wordpres
s目录,vi wp-config.php
,将刚才复制的内容写入,然后再回到留恋其页面,点击run即可。test
博客站点,这里需要自定义名称。输入用户名,这里的密码是随机生成的,需要自己保存,输入邮箱后,点击 install
即可。test
,可以点击 write your first blog
,写一些内容,然后发布。此时进入数据库查看,会发现自动创建了一些表格:use test;
,show tables;
。亚马逊云科技免费资源地址:https://aws.amazon.com/cn/getting-started/?nc2=h_ql_le_gs&trk=4601add5-b05e-40e5-86a4-84b8eec3a582&sc_channel=ba
亚马逊云科技的视频资料细致且丰富:
更多开发者相关内容推荐:
根据亚马逊云科技的政策,所有的个人用户可以创建一个为期1年的免费账号并且还有一部分永久免费套餐可以使用,足够满足新手练习亚马逊云科技所有的需求!!!
免费套餐介绍:https://aws.amazon.com/cn/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free Tier Types=*all&awsf.Free Tier Categories=*all
创建用户指南将引导您设置 亚马逊云科技 账户和开发环境。让 亚马逊云科技 账户交互并预置以编程方式构建系统所需的任何资源。
在创建用户指南中将了解如何: