亚马逊AWS官方博客

通过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

AWS Limit Monitoring ——书到用时方恨少,资源提限需趁早!

如何在AWS产品将要达到限额的时候得到通知,确保可以提前做好提升限额的准备? Trusted Advisor (TA) 可以基于区域提供使用资源的限额以及用量,与此同时AWS 可以基于TA 监测的指标信息,当使用量达到产品限额的80%时触发邮件通知用户指定的邮箱。 工作原理 该解决方案使用AWS Lambda 自动检测服务用量以及限额并计算使用占比,当使用占比达到80%时,Lambda 将触发一个Amazon Simple Notification Service 主题 (Amazon SNS),为预先设定好的邮箱(邮箱组)发邮件通知。 监测本帐户限额(设置时间:大约5分钟) 1.点击以下AWS官方文档中的“Launch Solution”按钮:http://docs.aws.amazon.com/solutions/latest/limit-monitor/deployment.html 默认指向美东区域。一旦您在美东区域完成部署之后,AWS Limit Monitoring将为您监测当前设置账户在各个区域的使用情况。 2.系统自动生成S3 的URL,无需进行其它操作,点击下一步。 3.指定待监测的AWS帐户ID、通知邮箱(组)等参数,进入下一步。 4.检查确认参数正确后完成创建。 监测其他帐户限额 您也可以利用这种方式监控其他帐户限额,只需要在每个被监控的帐户中创建一个IAM角色,并赋予其权限,允许其通过跨帐户角色进行API 操作,获取被监测帐户的资源使用限额信息即可。 *注[1]:如果创建堆栈过程中设置多个账户,需要分别对除了设置账户之外的其他账户进行如上操作。 *注[2]:被监控帐户注册商用级别或企业级别支持服务适用此方式。 步骤一:创建IAM 角色 1.登陆被监控的账户,创建一个IAM role 2.为该IAM role 命名为- LimitCheckRole 3.选择IAM role 的类型为跨账户角色 4.输入创建堆栈中设置的账户的12 位账户 ID 步骤二:为创建的IAM 角色赋予三个权限: 1.为该IAM 角色分别赋予ReadOnlyAccess 2.为该IAM 角色分别赋予AWSSupportAccess 3.创建自定义Policy: 3.1 […]

Read More

Amazon Polly – 支持47种语音与24种语言的文本到语音转换服务

在准备写下这篇文章时,我的思绪不禁回到了自己的孩提时代(那时候大部分时间都用在了看电视上)。上世纪六十到七十年代,出现了大批热门的计算机与机器人语音产品。一瞬间,哈尔-9000、B9(来自〈迷失太空〉)、初代《星际旅行》中的计算机以及罗茜(来自〈摩登家庭〉)等形象再次涌现在我眼前。那个时候,人们都热衷于这种机械生成的语音——声音精准、清晰且缺乏人类应有的情感。 时间快速推进,如今我们已经拥有大量出色的计算机生成语音应用及用例可供选择,业界将其称为文本到语音或者简称TTS功能。娱乐、游戏、公共发布系统、电子学习、电话、辅助应用及设备乃至个人助手都已经开始将其引入。其中大部分应用能够很好地对接移动环境,但本地处理及存储型方案则表现平平。 你好, Polly 为了解决此类用例的实际需求(当然也包括其它大家能够想到的场景),我们推出了Polly,这项云服务能够将文本转化为逼真的语音,并允许大家将其用于您的工具及应用程序当中。Polly目前支持总计47种男声/女声表达并涵盖24种语言(暂不支持中文),而更多语言及语音选项亦在路线图规划之中。 Polly的设计目标在于解决语音生成工作中的大部分常见挑战。举例来说,我们以“live”一词为例,“I live in Seattle”代表我生活在西雅图,而“Live from New York”则代表由纽约发回的现场直播,二者在意义上显然存在差别。Polly能够理解这种同一词汇在不同语境下的含义,并给出完全不同的发音。类似的例子还有“St.”。根据语言类别及上下文背景的不同,其可以代表(或者应该发音为)“Street(街道)”或者“saint(圣)”。Polly同样能够准确识别二者间的差别。另外,Polly亦能够处理单位、分数、缩写、货币、日期、时间以及其它复杂的语言成分与表达方式。 为了实现这一目标,我们与以Polly支持的目标语言为母语的语言专家们进行合作。我们要求每位参与者利用其选定的语种提供大量单词与短语发音,并将音频拆分为声音单元,即双音素。 Polly在处理普通文本时拥有良好表现。大家只需要提交文本,Polly即可顺利完成接下来的工作,即以音频文件或者流媒体的方式给出精准、自然且与人类相似的语音表达。对于其它更为复杂的应用,大家可以使用SSML(即语音合成标记语言)为Polly提供更多附加信息。举例来说,如果您的文本内容中包含多种语言(例如英语与法语混杂),则可利用SSML作出标记以纠正发音。 在本文中我无法直接提供相关语音片段,因此感兴趣的朋友可以直接访问Polly Console(https://console.aws.amazon.com/polly)并亲自加以尝试。大家只需要输入文本内容并点击Listen to speech(听取语音)即可: 大家也可以将生成的音频保存在MP3文件并将其运用于您的应用程序当中。 以下为完全展开的语言与地区菜单: 技术细节 通过Console使用Polly当然非常便利,不过大家也可以采取其它方式以实现更具动态的使用途径。大家可以在文本或者SSML当中调用SynthesizeSpeech API函数。大家可以直接将输出结果以流媒体形式直接交付至用户,或者生成MP3或Ogg文件以备需要时播放。Polly能够以MP3或者Vorbis格式生成高质量(最高采样率为22 kHz)音频,亦可以PCM格式生成电话质量级(8 kHz)音频。 大家也可以利用AWS命令行界面(CLI)生成音频。例如: Polly会对全部闲置数据进行加密,并通过SSL连接进行音频传输。所提交文本与提交者间的关联将被移除,以加密形式存储最多6个月,并被用于维护及改进Polly功能。 价格与上线时间 大家每月可以利用Polly处理500万字而无需支付任何费用。在此之后,每个字的处理价格为0.000004美元,或者折合为音频生成约为每分钟0.004美元。本篇博文的语音转换价格约为0.018美元,而《哈克贝利-费恩历险记》全文的语音转换亦仅需约2.4美元。 Polly目前已经在美国东部(北弗吉尼亚州)、美国西部(俄勒冈州)、美国东部(俄亥俄州)以及欧洲(爱尔兰)服务区上线,大家可以从今天开始加以使用。 -Jeff 原文链接: https://aws.amazon.com/cn/blogs/aws/polly-text-to-speech-in-47-voices-and-24-languages/  

Read More

开发者预览版——EC2实例(F1)携手可编程硬件

你是否曾经在通用型工具与专用型工具之间左右为难?通用型工具可以解决多种不同的难题,但却未必是特定问题的最佳解决选项。相反,专用型工具擅长处理特定问题,但工具的使用频率往往不会很高。 工程师们在设计架构及指令集时同样需要考虑这一问题。他们始终追求能在更加通用的工作负载范围内,提供更佳性能表现的解决方案。然而新型工作负载与工作条件不断涌现,只有定制化硬件才是性能最佳之选。这就要求我们在其中找到平衡点:是要极出色的性能水平,还是要保证以年甚至季度为周期进行衡量的开发生命周期? 走入FPGA时代 作为一种备受瞩目的解决方案,我们迎来了基于定制化硬件的现场可编程门阵列机制,或者简称为FPGA。相较于单纯着眼于一种特定功能的专用型芯片,FPGA拥有更为出色的灵活性。其能够在现场完成编程,而后再接入PC主板的插槽当中。每块FPGA中包含一组固定且数量可观的简单逻辑门。对FPGA进行编程“基本上”就是将这些逻辑门彼此对接,从而建立起必要的逻辑功能(包括AND、OR以及XOR等等)或者存储元素(触发器与移位寄存器)。不同于CPU的串行本质(即数个并行元素)以及固定大小的指令集与数据路径(通常为32位或64位),FPGA能够以编程方式并行执行更多操作,而这些操作本身几乎不设任何宽度或者规模限制。 这种高并行模式非常适合用于构建定制化加速器,从而处理计算密集型工作负载。在经过有针对性的编程之后,FPGA能够在基因组学、抗震分析、金融网络分析、大数据搜索以及加密算法及应用领域提供高达30倍的速度增量。 希望这些优势能够鼓励大家尝试利用FPGA加速您的应用程序!不过必须承认,要实现这样的效果,我们还需要克服一系列挑战。首先,FPGA从传统角度讲属于大规模专用型系统的一类组件。大家无法单纯购买一款并将其接入自己的台式机。相反,实现FPGA型解决方案要求我们完成硬件原型设计、硬件设备构建、大规模生产以及漫长的销售与部署周期等筹备工作。漫长的实现时间会限制FPGA的适用性,这也意味着摩尔定律指导下的CPU类解决方案也许更具成本效益。 但我们相信,我们能够在这方面做得更好! 全新F1实例 现在,我们发布了全新F1实例的开发者预览版。除了构建应用及服务供您自己使用之外,大家也可以将其进行打包并在AWS Marketplace中出售并进行复用。总体而言,大家将能够避免使用FPGA支持型解决方案所带来的高昂资本投入与时间消耗,我们提供的方案将带来与其它类型软件相同的商业模式。大家将能够通过云工具设计您自己的逻辑、模拟方案以及验证流程,而后在数天之内将其推向市场。 F1实例配备有英特尔Broadwell E5 2686 v4处理器(基本速度为2.3 GHz,Turbo模式下全核心可达2.7 GHz,Turbo模式下单核最高可达3.0 GHz),最多976 GiB内存、最高4 TB NVMe SSD存储以及一到八块FPGA,这意味着其能够为大家提供充足的资源以构建自己的核心FPGA逻辑。各FPGA专用于此实例,且以隔离方式确保在多租户环境下的不致相互影响。 下在来看该FPGA的具体规格(请注意,单一F1实例中最多可使用八块FPGA): Xilinx UltraScale+ VU9P,采用16纳米制程工艺制造。 64 GiB ECC保护内存,配合288位总线(四DDR4通道) 专用PCIe x 16 CPU接口 约250万逻辑元素 约6800套数字信号处理(简称DSP)引擎 提供虚拟JTAG接口用于调试 在包含超过一块FPGA的实例当中,专用PCIe架构允许各FPGA共享同一套内存寻址空间并通过PCIe Fabric以最高每秒12 GB的单工速率实现彼此通信。单一实例中的各FPGA共同接入一套400 Gbps双向环状结构以实现低延迟水平与高传输带宽(大家需要定义自有协议以使用这项高级功能)。 FPGA开发流程 作为这套开发者预览版中的组成部分,我们还提供FPGA开发者AMI。大家可以在内存优化型或者计算优化型实例当中启动该AMI,从而实现开发与模拟,而后利用F1实例进行最终调试及测试。 此AMI包含多款开发者工具,大家可以在AWS Cloud当中免费加以使用。您需要使用VHDL或者Verilog编写FPGA代码,而后利用Xilinx Vivado设计套件(当然也可以使用第三方模拟工具、高级语言编译器、图形编程工具以及FPGA IP库)对代码进行编译、模拟与验证。 下面来看一段简单8位计数器的Verilog代码示例: 虽然这些语言常被描述为使用类C语法,但这并不代表大家可以直接使用现有代码并通过重新编译将其应用于FPGA当中。相反,大家需要首先对FPGA编程模式进行深入了解,学习布尔代数,而后掌握传播延迟与时钟脉冲边沿等概念。在此基础之上,大家才能够开始考虑将FPGA引入您的业务环境。如果这些底层知识对您来说太过艰深,大家亦可使用各类现有高级综合工具,包括OpenCL等,进行FPGA编程。 在启动自己的实例后,我进行登录、安装多款软件包并设置许可管理器,而后即可运行Vivado工具。接下来,我RDP到桌面,打开一个终端窗口并以GUI模式启动Vivado: 我随后打开该示例项目(counter.xpr),这就是我初次尝试后的FPGA设计与开发成果: 在一番探索之后,我了解了如何建立自己的首个FPGA(其实我基本上就是到处点点并了解其作用; 我本人在这方面甚至连新手都算不上): 从这里开始,我可以测试自己的设计并将其打包为Amazon FPGA镜像(简称AFI),而后将其运用在自有应用或者发布至AWS Marketplace当中。我还将继续摸索,希望能用几周时间弄清一切并向大家汇报。 F1硬件开发工具包 […]

Read More