亚马逊AWS官方博客

AWS Snowball Edge——更多存储容量、本地端口与Lambda函数

正如在之前的文章中已经提到,我们于去年推出了AWS Snowball服务(AWS Import/Export Snowbal——利用Amazon提供的存储设备一周内传输1 PB数据),并随后对各项相关更新进行了整理。总体而言,Snowball服务最初是一台50 TB数据传输设备,其设计目标在于强调物理接入及数据安全等要求。一年之后,这项服务的存储容量有所提升,目前达到80 TB,同时还增加了任务管理API、HIPAA认证、HDFS导入与S3适配机制,同时亦可用于更多AWS服务区。 不过最重要的是,这些改进并不会影响该设备的基本特性。一年以来,众多AWS客户将初代Snowball应用于不同类型的物理环境当中,并借此实现包括大数据、基因组学以及数据收集在内的各类工作负载的迁移工作。我们发现这款设备还拥有更为广泛的施展空间。 很多客户掌握着规模庞大且增长速度极快的数据集(通常达数百TB),而其网络连接能力无法将这些数据及时上传至云端,同时现有物理环境则几乎达到极限。客户们希望收集产生自农田、工厂、医院、飞机乃至油井中的数据——从车间监控到视频摄制再到物联网设备信息收集。客户希望能够利用单一模式实现高度简化的数据存储与转发,并在数据到达时进行本地处理。他们希望在数据到达时对其进行过滤、清理、分析、组织、追踪、总结以及监测。他们希望扫描输入数据以掌握其模式或者存在的问题,而后在发现特定情况时快速发出通告。 全新Snowball Edge 现在,我们将Snowball Edge正式加入AWS阵容。这款设备扩展了Snowball的适用范围,其中包含了更多连接方式、存储资源、集群化横向可扩展性,可立足现有S3与NFS客户端进行接入的存储端点以及Lambda支持下的本地处理功能。 从物理角度讲,Snowball Edge的设计目标在于提供一套适用于工业、航空航天、农业以及军事类用例的环境。其新的外形设计亦可实现机架内安装,从而帮助大家发挥其中新增的集群化功能。 下面就让我们看看Snowball Edge带来的各项新特性! 更多连接选项 Snowball Edge拥有出色的连接能力,允许大家从多种高速选项中做出选择。在网络方面,大家可以使用10GBase-T、10或25 Gb SFP28或者40 Gb QSFP+。您的物联网设备能够利用3G蜂窝网络或者Wi-Fi向其中上传数据。如果这还不够,Snowball Edge还提供了一个PCIe扩展端口。 如此丰富的连接选项允许大家以高达每秒14 Gb的速度将数据复制至Snowball Edge当中; 这意味着复制100 TB数据仅需要19小时左右。而从开始到结束,整个导入周期(即由初始数据传输到数据实现S3内可用)大约需要一周,其中包括设备寄送及后续处理的时间。 更高存储容量 Snowball Edge包含100 TB存储容量。 通过集群化方式实现横向扩展 大家可以轻松将两台或者更多Snowball Edge设备配置至单一集群当中,从而提升存储容量及耐用性,同时继续通过单一端点访问全部存储内容。举例来说,将六台设备进行集群化对接将能够提供一套存储容量达400 TB的集群,其耐用性可达99.999%。这意味着大家能够移除其中两台设备而数据仍受到严格保护。 大家还可将该集群扩展至PB级别,并通过简单移除及接入设备实现规模伸缩。此类集群拥有自我管理能力,大家不需要考虑其软件更新或者其它维护工作。 要构建这样一套集群,大家只需要在设置任务时勾选“Local compute and storage only(只使用本地计算与存储)”选项并随后勾选“Make this a cluster(将此创建为集群)”即可,具体如下图所示: 新的存储端点(S3与NFS) 如果您已经拥有某些备份、归档或者数据传输工具,例如S3或者NFS,那么大家可以利用其直接立足Snowball Edge实现数据存储及访问。如果大家创建一套包含两台或者更多设备的集群,则同一端点将可适应于其中全部设备; 这意味着大家能够将这类集群视为本地网络附加型存储资源。 Snowball Edge支持一组强大的S3 API子集,其中包括LIST、GET、PUT、DELETE、HEAD以及Multipart Upload。其同时支持NFS […]

Read More

敬请期待——Amazon EC2 Elastic GPU

在之前的文章中,我们曾经探讨过基于GPU的通用计算所带来的优势,而最近P2实例更是升级到可以搭载16 块GPU。正如之前所提到,GPU能够提供极为强大的处理能力与资源规模,同时可有效降低您时间及整体计算成本。 今天,我很高兴向大家公布一项我们正在努力开发的全新GPU功能。大家将能够很快向现有的各种EC2实例类型中加入图形加速机制。在使用G2或者P2实例时,实例的具体规模将决定其中包含的GPU数量。虽然这种方式适用于多数应用类型,但我们认为,同样存在大量需要配合更新且更为灵活的GPU使用模式的应用实例。 Amazon EC2 Elastic GPU 即将推出的Amazon EC2 Elastic GPU允许大家充分发挥这两类优势。大家可以选择最适合自身应用的EC2实例类型及规模,而后在启动该实例时指定您需要使用Elastic GPU,并从以下四种选项中做出选择: 名称 GPU内存 eg1.medium 1 GiB eg1.large 2 GiB eg1.xlarge 4 GiB eg1.2xlarge 8 GiB 现在,大家已经能够在启动新实例时自由创建EBS分卷。而在这项服务推出后,您将可以通过类似的方式使用Elastic GPU,即在启动过程中通过停止、修改与启动等选项指定必要的GPU资源规模——整个变更过程非常轻松。 从 OpenGL开始 我们的Amazon优化型OpenGL库将自动检测并使用Elastic GPU。作为初步方案,目前我们能够在Windows环境下支持Open GL,并计划未来为Amazon Linux AMI及其它OpenGL版本提供支持。我们还将整合对其它3D API的支持能力,具体包括DirectX以及Vulkan(如果大家对此抱有兴趣,请与我们联系)。我们还将在未来的版本中把Amazon优化型OpenGL库添加至现有微软Windows AMI当中。 OpenGL在渲染方面表现出色,但客户要如何查看渲染后的成果?问得好!选项之一是利用NICE的桌面云可视化工具将渲染内容以流媒体形式交付至任意HTML 5兼容型浏览器或者设备当中(AWS于今年早些时候收购了NICE)。支持最新版的Firefox与Chrome浏览器,以及全部智能手机与平板设备。   我相信这种独特的硬件与软件结合方案将适用于各类3D视觉与技术计算应用的托管用例。我们目前已经有两家客户与我们分享春反馈意见。 ANSYS公司企业解决方案与云副总裁Ray Milhem告诉我们: ANSYS Enterprise Cloud提供一套虚拟化模拟数据中心,其专门面向AWS进行优化。该云服务提供丰富的交互式图形体验,可用于支持端到端工程技术模拟流程,帮助我们的客户交付各类创新型产品设计方案。利用Elastic GPU,ANSYS公司将能够更为轻松地以符合客户价格与性能需求的方式提供出色体验。我们已经对运行在Elastic GPU上的ANSYS应用进行了认证,旨在帮助客户更为高效地立足云环境实现创新。 西门子产品生命周期管理(简称PLM)公司NX产品管理副总裁Bob Haubrock同样给出了非常积极的反馈意见: Elastic GPU堪称云环境下计算机辅助设计(简称CAD)的游戏规则改变者。凭借Elastic GPU的帮助,我们的客户现在能够在Amazon EC2之上配合专业级图形处理能力运行西门子PLM NX,同时充分发挥AWS提供的灵活性、安全性及全球化规模优势。西门子PLM对于NX在EC2 […]

Read More

从IaaS到FaaS—— Serverless架构的前世今生

今天大多数公司在开发应用程序并将其部署在服务器上的时候,无论是选择公有云还是私有的数据中心,都需要提前了解究竟需要多少台服务器、多大容量的存储和数据库的功能等。并需要部署运行应用程序和依赖的软件到基础设施之上。假设我们不想在这些细节上花费精力,是否有一种简单的架构模型能够满足我们这种想法?这个答案已经存在,这就是今天软件架构世界中新鲜但是很热门的一个话题——Serverless(无服务器)架构。 什么是Serverless 如同许多新的概念一样,Serverless目前还没有一个普遍公认的权威的定义。最新的一个定义是这样描述的:“无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如AWS Lambda服务),客户端逻辑和服务托管远程过程调用的组合。” 最开始,“无服务器”架构试图帮助开发者摆脱运行后端应用程序所需的服务器设备的设置和管理工作。这项技术的目标并不是为了实现真正意义上的“无服务器”,而是指由第三方云计算供应商负责后端基础结构的维护,以服务的方式为开发者提供所需功能,例如数据库、消息,以及身份验证等。简单地说,这个架构的就是要让开发人员关注代码的运行而不需要管理任何的基础设施。程序代码被部署在诸如AWS Lambda这样的平台之上,通过事件驱动的方法去触发对函数的调用。很明显,这是一种完全针对程序员的架构技术。其技术特点包括了事件驱动的调用方式,以及有一定限制的程序运行方式,例如AWS Lambda的函数的运行时间默认为3秒到5分钟。从这种架构技术出现的两年多时间来看,这个技术已经有了非常广泛的应用,例如移动应用的后端和物联网应用等。简而言之,无服务器架构的出现不是为了取代传统的应用。然而,从具有高度灵活性的使用模式及事件驱动的特点出发,开发人员/架构师应该重视这个新的计算范例,它可以帮助我们达到减少部署、提高扩展性并减少代码后面的基础设施的维护负担。 Serverless的历史 Serverless这个概念并不容易理解。乍见之下,很容易让人混淆硬件服务器及软件上的服务与其所谓的“服务器”差别。在这里强调的所谓“无服务器”指的是我们的代码不会明确地部署在某些特定的软件或者硬件的服务器上。运行代码托管的环境是由例如AWS这样的云计算厂商所提供的。 Serverless这个词第一次被使用大约是2012年由Ken Form所写的一篇名为《Why The Future of Software and Apps is Serverless》的文章。这篇文章谈到的内容是关于持续集成及源代码控制等内容,并不是我们今天所特指的这一种架构模式。但Amazon在2014年发布的AWS Lambda让“Serverless”这一范式提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系结构。至此再也不需要在服务器上持续运行进程以等待HTTP请求或API调用,而是可以通过某种事件机制触发代码的执行,通常这只需要在AWS的某台服务器上配置一个简单的功能。此后Ant Stanley 在2015年7月的名为《Server are Dead…》的文章中更是围绕着AWS Lambda及刚刚发布的AWS API Gateway这两个服务解释了他心目中的Serverless,“Server are dead…they just don’t know it yet”。到了2015年10月份,在那一年的AWS re:Invent大会上,Serverless的这个概念更是反复出现在了很多场合。印象中就包括了“(ARC308)The Serverless Company Using AWS Lambda”及“(DVO209)JAWS: The Monstrously Scalable Serverless Framework”这些演讲当中。随着这个概念的进一步发酵,2016年10月在伦敦举办了第一届的Serverlessvconf。在两天时间里面,来自全世界40多位演讲嘉宾为开发者分享了关于这个领域进展。 在Serverless的世界里面,AWS扮演了一个非常重要的角色。但是AWS并不是唯一的Serverless架构服务的供应商。其他厂商,例如Google Cloud Functions、Microsoft Azure Functions、IBM OpenWhisk、Iron.io和Webtask等各种开源平台都提供了类似的服务。 Serverless与FaaS 微服务(MicroService)是软件架构领域业另一个热门的话题。如果说微服务是以专注于单一责任与功能的小型功能块为基础,利用模组化的方式组合出复杂的大型应用程序,那么我们还可以进一步认为Serverless架构可以提供一种更加“代码碎片化”的软件架构范式,我们称之为Function as a […]

Read More

通过AWS目录服务管理AWS资源

背景 前段时间在拜访客户时,客户提了一个问题:如何结合企业内部既有的身份管理/鉴权体系,更加灵活、经济的实现对AWS 资源实现分角色管理的问题 ? 该客户目前在AWS多个 Region部署了业务系统,并且计划通过AWS Direct connect建立Region之间的专线连接,通过AWS的全球架构支持公司业务的快速扩展。客户的技术运营团队根据各协作团队的分工建立了不同权限的IAM用户,通过制定相应的IAM策略,各个协作团队可以管理对应的云端资源 。在实际工作中由于人员在项目之间频繁调整,及各种原因的人员流动等因素,导致 AWS IAM用户需要频繁调整。 就该客户情况而言,如果人员角色的任何变化只需在AD账户体系就能完成管理并自动映射到AWS 权限体系中, 客户就能平滑遵循企业内部的既有合规体系只需要管理AD帐号统一管理云端与本地的资源, 。 为解决这类的问题,通常可以部署ADFS实现IAM与本地活动目录间的联合身份认证,具体可参考这篇博客内容:https://aws.amazon.com/cn/blogs/china/adfs-bjs/ 今天介绍另外一种实现方式,通过AD Connector与本地活动目录整合,使用本地活动目录中的用户登录AWS Console 页面。以下是基于 AWS Global 环境中的测试部署过程: 一.AD 连接器( AD Connector)是什么 AD连接器 AWS托管目录服务中的一种目录服务类型,用于将本地Microsoft Active Directory连接到AWS云端,无需进行复杂的目录同步设置或部署托管联合基础架构的组件。 AD连接器将登录请求转发到本地Active Directory域控制器进行身份验证,并使应用程序能够查询目录中的数据。用户可以使用其现有的企业凭据登录AWS应用程序,如Amazon WorkSpaces,Amazon WorkDocs或Amazon WorkMail。授予适当的IAM权限,还可以访问AWS管理控制台并管理AWS资源,如Amazon EC2实例或Amazon S3存储桶。 如上图,AD Connector与企业本地数据中心可以通过AWS Direct Connect 服务或IPSEC VPN进行数据交互。 二.活动目录服务器准备 1. 网络环境 在测试环境的vpc中规划以下子网: 子网“lab-DC”将运行一个测试的活动目录服务器(域控) 其他两个子网为位于不同az的私有子网,AD Connector 将部署在这两个子网中 在生产环境中,可以考虑在 AWS vpc部署多个与本地域控建立复制关系的只读域控服务器用于和 […]

Read More

Token Vending Machine:移动应用客户端安全访问AWS服务的解决方案

背景介绍 广大移动互联网应用和移动游戏开发者在利用AWS服务进行开发过程中,经常需要为移动客户端提供AWS服务访问安全证书,以便让这类移动端应用有权限直接访问AWS服务,比如通过AWS S3服务上传图片文件或者通过AWS SQS服务发送消息。 有些移动开发者可能会考虑为每个移动应用用户分配一个固定的AWS IAM安全证书来实现移动客户端访问AWS服务。但是一款热门的移动互联网应用或者移动游戏往往拥有数百万甚至上千万的用户基数,让系统管理员为每一个用户分配和管理IAM 安全证书工作量将会非常巨大。而且移动客户端相对服务器端具有较低的安全等级,保存在移动设备内部的敏感信息比如用户账号或密码存在泄露的风险,强烈建议移动开发者不要将AWS安全证书长期保存在用户的移动设备中。 利用AWS 安全令牌服务Security Token Service (简称STS)可以动态的为大量移动客户端用户分配临时安全证书 ,并且可以限制这些临时安全证书的AWS服务访问权限和有效时间。使用AWS STS临时安全证书没有用户总数的限制,也不需要主动轮换,证书自动会过期,拥有非常高的安全性。对于这种采用AWS STS和其他相关AWS服务构建的移动客户端访问AWS服务安全证书分配系统,我们把它命名为Token Vending Machine,即令牌售卖机,简称TVM。 下面我们以一个典型的手机图片管理APP演示项目为例来介绍如何利用AWS相关服务设计和开发一套TVM系统。读者可以通过参考演示项目的设计思想和相关源码快速开发出符合自己项目需求的TVM系统。 假设该演示项目的基本需求如下: 1) 用户在使用该APP前要先完成注册 2)   用户成功登录后可以通过APP上传,查看和管理自己的图片 3)   用户不可以访问到其他用户的图片 实现原理 整个演示项目实现可以分为三个主要模块:移动客户端、TVM系统和S3服务。 A. 移动客户端 包括访问TVM系统获取临时安全证书的客户端代码 包括直接访问AWS S3存储桶用户个人目录内容和图片管理相关的代码逻辑实现。 B. TVM系统 使用了一台AWS EC2实例来运行Apache Tomcat Web服务器,用于向移动客户端提供远程访问接口以获取临时安全证书。在Tomcat内部则部署了使用JAVA语言开发的TVM服务器端实现。 使用了AWS 高性能的NoSQL数据库DynamoDB做为后台用户数据库。该数据库用来保存注册用户的账号、密码和会话Key等信息。 开发者自行设计和实现TVM系统的时候,完全可以使用自己熟悉的数据库产品或者集成第三方已有的用户数据库服务,比如基于LDAP的企业内部用户数据库。 TVM系统的JAVA实现通过访问AWS STS服务获取临时安全证书以提供给移动客户端。 在真实的项目中,运行TVM系统的服务器端往往还将直接管理S3中保存的所有用户资源,比如可以限制每个用户允许上传图片的数量和文件合计大小等等。这部分功能在本演示项目中暂时没有实现。 C. S3服务 AWS S3服务为用户上传图片提供了持久化存储能力。 在用户成功完成账号注册后,TVM系统的基本工作流程如下: 1) 用户通过移动客户端输入账号和密码,登录系统。 2) TVM查询用户数据库,校验账号和密码组合的合法性。 3) TVM访问AWS […]

Read More

利用S3fs在Amazon EC2 Linux实例上挂载S3存储桶

背景介绍 Amazon S3是互联网存储解决方案,能让所有开发人员访问同一个具备可扩展性、可靠性、安全性和快速价廉的数据存储基础设施。Amazon S3 提供了一个简单 Web 服务接口,可用于随时在 互联网上的任何位置存储和检索任何数量的数据。开发人员可以利用Amazon提供的REST API接口,命令行接口或者支持不同语言的SDK访问S3服务。 对于原来使用本地目录访问数据的应用程序,比如使用本地磁盘或网络共享盘保存数据的应用系统,如果用户希望把数据放到S3上,则需要修改数据的访问方式,比如修改为使用AWS SDK 或CLI访问S3中存储的数据。为了让用户原来的应用系统能在不做修改的情况下直接使用Amazon S3服务,需要把S3存储桶作为目录挂载到用户服务器的本地操作系统上。常用的挂载工具有S3fs和SubCloud等。本文主要介绍如何利用S3fs将S3存储桶挂载到Amazon EC2 Linux实例上。 S3fs介绍 S3fs是基于FUSE的文件系统,允许Linux和Mac Os X 挂载S3的存储桶在本地文件系统,S3fs能够保持对象原来的格式。关于S3fs的详细介绍,请参见:https://github.com/s3fs-fuse/s3fs-fuse 利用S3fs挂载S3存储桶 一、准备 使用拥有足够权限的IAM账号登录AWS控制台。 创建S3存储桶,给存储桶命名如“s3fs-mount-bucket”(如果使用已有存储桶,本步骤可略过)。      3. 创建具有该S3存储桶访问权限的 IAM 用户,并为该IAM用户创建访问密钥。 a) 关于如何创建IAM用户,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_users_create.html#id_users_create_console b) 关于如何为IAM用户创建访问密钥,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_credentials_access-keys.html c) 关于如何为IAM用户设置权限策略,请参见:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_create.html https://aws.amazon.com/cn/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/ 4. 创建并启动Amazon EC2 Linux实例 具体过程请参见:http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/launching-instance.html 二、安装和配置S3fs 安装s3fs a) 使用Amazon EC2默认用户“ec2-user”和对应的私钥文件登录启动的Linux实例(请注意将下边例子中的私钥文件和ec2实例域名替换为用户自己的值) ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com b) 安装必要的软件包 sudo yum install […]

Read More

Amazon Aurora Update – PostgreSQL 兼容性

就在两年前 (恍如昨日),我在我发布的帖文 Amazon Aurora – New Cost-Effective MySQL-Compatible Database Engine for Amazon RDS 中向大家推荐了 Amazon Aurora。在那个帖文中,我告诉大家 RDS 团队如何以全新、不受限的观点来看待关系数据库模型,并解释了他们如何为云端构建关系数据库。 自那之后,我们收到了一些来自客户的反馈,非常感人。客户非常喜欢 MySQL 兼容性,重视高可用性和内置加密。他们对以下事实充满期待:Aurora 围绕具有容错能力和自我修复能力的存储而构建,使他们能够从 10 GB 一直扩展到 64 TB,而无需预先配置。他们知道,Aurora 跨三个可用区创建了其数据的六个副本,并在不影响性能或可用性的情况下将数据备份到了 Amazon Simple Storage Service (S3)。随着他们不断扩展,他们知道自己可以至多创建 15 个低延迟只读副本,这些副本从公用存储中获取。要了解有关我们的客户如何在全球范围的生产环境中使用 Aurora 的详细信息,请花一些时间阅读我们的 Amazon Aurora 客户评价。 当然,客户永远在追求更多,而我们也将竭尽全力了解他们的需求并尽力满足。下面是对我们根据客户的具体反馈所做的一些近期更新的回顾: 10 月 – 从存储过程中调用 Lambda 函数。 10 月 – 从 S3 中加载数据。 9 月 […]

Read More

Amazon Lightsail – 兼具 AWS 的强大功能与 VPS 的简易性

有的人喜欢用零件组装复杂系统 (房屋、计算机或者家具)。他们喜欢规划流程,认真研究每个零件,然后挑选那些能够按照他们的期望平衡强大功能与灵活性的零件。通过这样的规划,他们享受着将零件组装完工的过程。而有些人并不觉得这种自助 (DIY) 的方式有吸引力或者具有价值,他们只对尽快获得结果感兴趣,并不想在此过程中做出太多决策。 是不是听起来很熟悉? 我认为这种模式同样也适用于系统架构和系统构建。有时候您想要花时间去亲手挑选每个 AWS 组件 (服务器、存储、IP 地址等等),然后自己组装起来。但有的时候,您只是需要一个预先配置且预先组装的系统,您希望这个系统已准备就绪,可以让您运行自己的 Web 应用程序,而不必自己费力去构建系统。 在很多情况下,那些寻求预组装系统的人会求助于虚拟私有服务器 (或 VPS)。VPS 会为您呈现一些选项,每个选项都已准备就绪可运行,您通过支付可预测的每月费用便可使用。 VPS 是一个完美的入门工具,但随着时间的推移,其使用环境就会逐渐受限。从某种意义上来说,随着您的需求增长,您可能需要跨出现有计划的边界,但却发现您毫无选择,无法完成渐进式改进,因而就面临着需要作出颠覆性改变的境况。或者,您可能会发现自己可用于自动扩展或故障转移的选择有限,而且您需要自己来完成所有设置。 隆重推出 Amazon Lightsail 目前,我们正在推出 Amazon Lightsail。只需几次点击,您就可以从菜单中选择一种配置,并启动一个预配置了基于 SSD 的存储、DNS 管理和静态 IP 地址的虚拟机。您可以启动自己最喜欢的操作系统 (Amazon Linux AMI 或 Ubuntu)、开发人员堆栈 (LAMP、LEMP、MEAN 或 Node.js) 或应用程序 (Drupal、Joomla、Redmine 和 GitLab 等),而定价计划当中每月支付的固定费率自 5 美元起,还包括普遍支持的数据传输。 下面是相关计划和配置: 您将获得 VPS 的简便性,并有 AWS 的强大功能、可靠性和安全性作为后盾。随着您的需求增长,您将能够顺利跨出初始边界,连接额外的 AWS 数据库、消息发送和内容分配服务。 最重要的是,Lightsail 是您开始使用 AWS […]

Read More

实力省钱,总有一款适合您

众所周知,Amazon EC2 有多种经过优化的实例种类及付费模式供选择。那么每一类实例的价格优势在哪里?计费有什么不同?哪一种计费模式在满足业务需求的同时更节省成本呢?今天我们就来八卦一下 按需实例 这是AWS最基本最朴实的经典款,计费模式简单明了,用多少付多少。价格公道,童叟无欺。 预留实例 地地道道的“经济适用型”,只选对的,不选贵的! 不差钱儿,钱也要花的漂亮不是~ 相比较按需实例,预留实例有两个明显的优势:1.预留容量 2. 价格折扣,最高可节省 75%。 你可以把它理解为包年模式的按需实例,有1年期或3年期。 付款方式有三种:No Upfront、Partial Upfront、All Upfront No upfront: 不需要任何预付款,按月支付,每小时的价格低于按需的费率30%左右 Partial Upfront:下单的时候先付一部分费用,剩下的费用分摊12个月里,每月支付 All Upfront:一次付完一年的费用,每月无需再付 竞价实例 除了以上两种实例,今天给您介绍的是另一款比预留实例更优惠的实例类型,绝对有竞争力!与按需实例的价格相比,这类实例最多可以为您节省 90% 的成本呢。它就是竞价实例!听这名字,立刻就能想到竟拍,恩,想象力不错,是这么回事儿,价高者得!咦,说好的省钱呢?价高者得?我四不四傻?……囧一个……听我细细道来哈,真相是酱式儿滴… 啥是竞价实例? 首先聊聊啥是竞价实例。想象一下,Amazon有个很大的池子,把闲置的资源以远远低于按需实例的价格投入市场(请注意,竞价实例的价格是不固定的,Amazon EC2根据市场的供求关系定价,每小时价格随着市场供需变化波动)。由于定价较低,大家都抢着买,给谁用不给谁用呢。游戏规则就出来了:竞价!所以它的名字由此而生。 竞拍价格游戏规则 卖方:Amazon EC2根据市场供需定价(请注意,价格像波浪一样随时变化) 买方:出价(您愿意为实例出多少钱您自己定,但请求一旦提交,出价不能更改) 计费规则: 如果您的出价高于现价,您的竞价型实例就会运行。所谓价“高”者“得”,您以高于其他竞争者的出价获得启动实例的机会,但实际不一定是以您出的价格收费,而是按照低于或等于您出价的当时的市场价格计费。很划算吧?当然啦,为了保护所有买方免于产生额外费用,竞价型实例的出价限制为按需价格的十倍。 由于这种实例的特点是根据需求的变化,每小时价格都在波动。因此当您使用竞价型实例时,您必须做好应对中断的准备(建议您不要为不能中断的应用程序使用竞价型实例)。 当现货价格上涨超过了您的出价或闲置的EC2实例供应减少时, Amazon 将终止您的竞价实例收回资源。在实例终止时,Amazon EC2会提前两分钟发出警告通知您。 如果您需要保证在一定的时间内使用这个实例,您可以选择创建带有指定持续时间的竞价型实例。当市场价格发生更改时,您的这些实例不会终止。不过这样一来,每小时的价格会比竞价实例的每小时价格要高。 竞价型实例运行方式及生命旅程 要想使用竞价实例,您需要创建一个竞价型实例请求,其中包括您需要的实例类型、实例数量、可用区以及您的出价。(请注意:提交请求之后,您无法更改竞价请求的参数,包括出价),同时选择请求类型,一次性或持久性?如果是持久性请求,竞价型实例终止之后会重新打开请求,再次加入下一轮竞价。 举个栗子,小编打算在俄勒冈区域的某个可用区购买一个m4.large的竞价实例 辣嚒,首先小编需要从 Amazon EC2 控制台或describe-spot-price-history 命令 (AWS CLI)查看近期的现货价格历史记录(最多可查看近三个月的现货价格历史记录)。小编查看了最近一周这个实例的市场价格,以帮助小编举牌。知己知彼,百战不殆嘛! 从上图可以看出,最近一周的价格波动区间是$0.1478/小时-$0.163/小时, 也可以选择在一天的范围内查看)。思来想去,小编决定最高出价$0.155/小时,好,准备举牌了! […]

Read More

如何在1个小时之内轻松构建一个Serverless 实时数据分析平台

数据分析平台,特别是实时数据分析,正在被越来越广泛的应用于各个行业。 举例来说,游戏公司在发布新游戏之后,需要实时定位用户的留存、增长等情况;快销公司需要精确地记录每一笔订单的情详情,并结合社交媒体,实时分析促销活动引起的用户购买行为与销量等等。基于这些需求, AWS提供了一整套成熟的解决方案与服务,并且得到了广泛的应用。 图1 AWS大数据参考架构示例 上图中,Amazon Kinesis 是实时的流式分析服务,而Amazon S3是AWS的海量数据存储服务。利用Kinesis与S3,我们可以十分方便的构建一个实时流式信息数据的采集与存储。 值得注意的是,作为Serverless计算服务的代表 , 用户只需要编写实现对应的ETL逻辑,Amazon Lambda就可以非常方便地对Kinesis流式数据进行抽取与分析而不需要部署任何服务器。另外,用户也可以使用Kinesis Firehose(Kinsis服务之一)实现原始数据的直接注入与收集。 随着Amazon Athena在AWS re:Invent 2016的重磅发布,AWS的大数据平台又增添了重要的一员!Amazon Athena 是一种交互式查询服务,用户可以使用标准SQL 分析 Amazon S3 中的数据。因为Athena底层是基于Serverless(无服务器)架构,用户不需要运维底层的服务器,并且查询处理能力会随着用户的数据将进行自适应与扩展,实现秒级别的数据查询与处理。 闲话少说,我们将利用AWS提供的三个重要服务——Amazon Kinesis Firehose,、Lambda和Athena在1个小时之内实现一套实时分析的Serverless数据分析平台! 准备好了吗?Let’s rock 1.数据源。作为测试,我们将对AWS VPC Flow Logs进行分析。您可以使用Kinesis Agent/Flume/Fluentd或者Amazon Kinesis SDK对前端的实时日志进行分析。Amazon VPC Flow Logs将实时记录VPC监控的网络端口的流量与通信日志,并将日志发布于AWS CloudWatch Logs。详细的配置请参见 https://aws.amazon.com/cn/blogs/aws/vpc-flow-logs-log-and-view-network-traffic-flows/ 2.数据ETL。VPC Flow Logs进入CloudWatch Logs之后,可以利用Lambda对实时日志进行订阅处理。订阅之后,Lambda会在CloudWatch Logs更新之后,自动调用执行,进行数据ETL。 首先,在控制台创建一个Lambda函数(利用Python实现).为了确保Lambda有对应的执行权限,需要赋予Lambda函数相应的Permission Role.在这个示例中,我们只需要服务Lambda对应的CloudWatch Logs以及Kinesis Firehose的权限即可。 其次,Lambda 代码会对进入的CloudWatch日志的第一个Base64编码的转码并进行gzip解压(因为Cloudwatch Logs会对送往Lambda首先进行Base64编码并进行gzip压缩)。之后,Lambda会对具体的日志进行汇聚,以batch的方式发送给Kinesis Firehose。具体的代码如下: […]

Read More