亚马逊AWS官方博客

AWS Team

Author: AWS Team

GPU为Amazon Graphics WorkSpaces提供助力

从之前发表的《我爱我的Amazon WorkSpaces》一文就能看出,我是个WorkSpace的狂热支持者——我也从不不否认这一点。 自从这篇文章发表以来,我发现很多朋友都跟我有着同样的选择。众多AWS客户都乐于享受这种酣畅淋漓的安全桌面计算环境管理体验,我自然也是其中一员。作为用户,我们热爱WorkSpace这种强大的设备支持广度与能力——从Windows到Mac计算机、PCoIP Zero客户端、Chromebook、iPad、Fire平板乃至Android平板皆在其中。作为管理员,我们感激WorkSpace能够为任意数量的用户提供高水平云桌面。而作为企业领导者,我们则喜爱按小时或者按月付费来使用这套桌面方案的方式。 全新Graphics选项 此前爱好者们已经拥有多种硬件选项:Value版、Standard版与Performance版组合。其vCPU(虚拟CPU)数量为1或2个,内存为2到7.5 GiB,这些组合适用于多种办公生产型用例。 今天我们迎来了WorkSpace家族中的全新GPU助力型Graphics组合。这套组合提供的高端虚拟桌面非常适合3D应用开发者、3D建模师以及需要使用CAD、CAM或者CAE等工具的工程师用户。下面来看其规格参数: 显示——英伟达GPU,包含1536个CUDA核心与4 GiB显存。 处理——8个vCPU。 内存——15 GiB。 系统存储分卷——100 GB。 用户存储分卷——100 GB。 这套新的组合包已经在提供WorkSpaces服务的各服务区推出,且同样可在前文中提到的设备平台上运行。大家可以运行内含许可的操作系统(Windows Server 2008配合Windows 7 Desktop Experience),或者自行准备Windows 7或者10系统许可。各应用程序可使用其中的OpenGL 4.x、DirectX、CUDA、OpenCL,另外英伟达GRID SDK亦能够发挥其中GPU的性能优势。 在考虑PB级别数据的分析与可视化处理时,请注意这些实例能够与EC2、RDS、Amazon Redshift、S3以及Kinesis进行紧密协作。具体来讲,大家能够在服务器端处理计算密集型分析任务,而后对其进行渲染并直接在手边的WorkSpace上显著其结果。我个人对利用这些AWS服务组合创建令人赞叹的应用程序抱有信心,而且此类应用显然无法通过其它具备同样成本效益的方式加以实现。 Graphics Bundle与其它捆绑包之间存在一大重要区别。考虑到底层硬件的运作方式,运行此捆绑包的WorkSpaces在与AutoStop运行模式相结合时(我之前曾在〈Amazon WorkSpaces更新——按小时使用与Root分卷扩展〉一文中提到),其不会存储本地状态(包括运行中的应用以及已打开的文档)。我们建议大家在断开与WorkSpace间的连接或者不再续用之前,保存已打开的文档并关闭应用程序。 演示 我个人在工作中并不需要构建3D应用或者使用CAD、CAM乃至CAE工具。不过,我非常喜欢用乐高积木设计并搭建有趣的东西!我在这里启动了最新版本的乐高数字设计师(简称LDD),并花了一段时间雕琢自己的设计成果。虽然没有进行任何基准测试,但这套GPU强化型版本确实带来了理想的运行速度,且能够快速生成高质量成品。下面来看我做的一点设计研究工作: 设计完成之后,接下来就是搭建工作了。相较于挪动显示器来查看自己的设计方案,我得以直接利用自己的Fire平板登录Graphics WorkSpace。我能够快速缩放并旋转自己的设计方案——虽然这台平板本身的计算能力非常有限。下面来看Fire平板上WorkSpace的实际表现: 如大家所见,两套屏幕(台式机与Fire平板)的显示内容一模一样!我可以根据平板上的设计在自己的桌上排布乐高积木,并快速查看设计效果: 价格 Graphics WorkSpaces目前提供按小时计费的使用选项。大家需要支付小额的固定费用按月购买基础设施与存储资源,并在周期之内每小时支付额外的WorkSpace使用费。AWS开出的价格为美国东部服务区(北弗吉尼亚州)每月22美元加每小时1.75美元; 感兴趣的朋友可以点击此处查看WorkSpaces价格页面以了解更多信息。 作者:Jeff Barr, 亚马逊AWS首席布道师 原文链接: https://aws.amazon.com/cn/blogs/aws/new-gpu-powered-amazon-graphics-workspaces/

Read More

Amazon QuickSight全面上线——更快更易用的大数据商务分析服务

经过超过1500家企业级客户(包括初创企业及全球化大公司)的预览之后,我兴奋地向大家宣布,Amazon QuickSight目前已经正式上线!在去年发给大家的预览版本邀请当中,我曾经写道: 过去,商务智能一直是一项需要投入巨大时间与精力之后才能实现的工作。大家需要承担相关成本,设置并运行基础设施及软件,管理规模化体系(而用户往往因此受到负面影响)并投入大量资金招聘顾问以进行数据模拟。即便如此,您的用户仍然要在复杂的用户界面中挣扎,而且渴望能能在移动设备上探索数据却无法被满足。打算访问NoSQL与流数据?只能说祝大家好运了! Amazon QuickSighthttps://quicksight.aws/能够为大家提供速度可观、易于使用的云支持型商业分析方案,且其实现成本仅为传统内部解决方案的十分之一。QuickSight允许大家在数分钟之内开始操作。您只需要进行登录、指定数据源,而后即可对数据进行可视化处理。在场景之下,SPICE(即超高速、并行、内存内计算引擎)将以迅如闪电的速度运行您的查询请求,并提供极为出色的数据可视化成果。 深入挖掘数据 在与客户的交流当中我们深切感受到:每位客户都表示希望能从其存储的数据当中获取更多价值。他们意识到,如今蕴含于数据当中的潜在价值正愈发显露。但同时,他们又失望地得知:发现并提取这些价值,需要高昂成本且实现难度极大。内部商业分析工具的使用许可会带来大量开销,同时给现有基础设施造成沉重的负载压力。许可成本与工具复杂性制约着用户群体,事实上只有少数专家能够顺畅使用这些方案。综合来讲,上述因素共同导致大多数企业认为:自己尚没有准备好投资构建一套真正的商业分析功能组合。 QuickSight的构建目标正在于此!它能够以“服务”形式运行,并将商业分析能力交付至任意规模与形式的企业客户手中。其速度极快且易于使用,不会给现有基础设施带来额外运行负担,同时可以每用户9美元的低廉价格,按月进行付费。 上手之后,大家会发现QuickSight允许大家对存储在多种不同服务及位置的数据进行处理。大家可以直接使用来自Amazon Redshift数据仓库、Amazon关系型数据库服务(简称RDS)中各关系数据库以及S3内的普通文件。大家亦能够使用一系列连接器以访问存储于内部MySQL、PostgreSQL以及SQL Server数据库、微软Excel电子表格、Salesforce乃至其它服务中的数据。 QuickSight在设计当中亦充分考虑到客户的扩展需求。大家可以随时添加更多用户、数据源以及数据集,同时无需购买任何长期许可或者向数据中心内添加更多硬件设备。 马上开始 下面我们将展开一番QuickSight游历。由于已经得到管理员的许可,所以我可以直接登录QuickSight并开始操作。以下为QuickSight的主界面: 我首先选择从Redshift集群当中提取数据。这里点击Manage data并查看我的现有数据集: 我没有看到我所需要的数据集,所以点击New data set并查看相关选项: 而后点击Redshift(手动连接)并输入登录凭证,这样即可访问我的数据仓库(如果该Redshift集群运行在我的当前AWS账户之内,则可自动发现此来源): QuickSight会查询该数据仓库并显示相关模式(表组)以及当前可用的表。这里我选择public模式以及all_flights表作为示例: 现在我拥有两个选项。我可以将表提取至SPICE进行快速分析,亦可直接对其进行查询。这里我选择将其提取至SPICE: 这里还是两个选项。我可以点击Edit/Preview data(编辑/查看数据)并选择需要导入的行及列,亦可点击Visualize(可视化)导入全部数据并对其加以处理。这里我选择Edit/Preview。可以看到各字段(图片左侧),而后我可以利用勾选框仅选定自己感兴趣的部分: 另外,我也可以点击New Filter(新过滤器),从弹出菜单内选定一个字段,而后创建一套过滤机制: 两个选择(选择字段以及按行过滤)都允许我控制需要提取至SPICE的具体数据。通过这种方式,我可以控制需要进行可视化处理的数据,亦能帮助我更为高效地利用内存资源。在做好处理准备之后,我点击Prepare data & visualize(准备数据&可视化)。这时,数据会被加载至SPICE当中,而我则可随时对其进行可视化处理。我简单选择了一个字段作为演示。举例来说,我可以选择origin_state_abbr字段并查看各州拥有多少航班: 右侧的缩短视图能够为我提供一些额外上下文信息。我可以上下滚动或者选定需要显示的值区间。我也可以点击次级字段以了解更多信息。这里我点击flights,将排序设置为descending(降序),而后滚动至顶部。现在,我可以查看数据中由每个州起飞的具体航班了: QuickSight的AutoGraph功能会自动根据所选定的数据生成一份对应的可视化图表。举例来说,如果我添加fl_date字段,则会得到一份以时间为轴的各州航班数量图表: 根据我的查询、数据类型以及数据属性,QuickSight还能够提供其它可视化选项: 我还能够自行选择多种视觉类型,包括纵向&横向条形图、线图、透视图、树状图、饼状图以及热度图等: 在完成可视化图表的创建之后,我可以捕捉图表内容并利用结果故事板构建对应的数据驱动型故事: 我亦能够将自己的可视化成果共享给其他同事: 最后,我的可视化成果可通过自己的移动设备进行查看: 价格与SPICE容量 QuickSight永久提供一个免费用户与1 GB免费SPICE容量。这意味着每一位AWS用户都能够在无需承担任何成本的前提下分析数据并获取商业洞察结论。Amazon QuickSight的标准版起步价格为每月9美元,其中包含10 GB SPICE容量(请参阅QuickSight Pricing页面以了解更多细节信息)。 SPICE容量管理工作非常轻松易行。我只需要在菜单当中点击Manage QuickSight即可(当然,必须具备ADMIN角色方可执行修改): 而后我可以看到自己的当前容量状态: 我可以点击Purchase more capacity(购买更多容量): 我也可以点击Release unused purchased capacity(释放未使用的已购容量),从而削减我当前拥有的SPICE容量: 已经全面上线 […]

Read More

Amazon EC2 产品价格调降通知(C4, M4, 和T2实例)

很高兴宣布自2016年12月1日起,EC2产品价格调降,希望能让各位用户以愉悦的心情迎接即将到来的新年假期。我们对于产品技术研发的持续投入,用户规模,以及久经考验的运营能力,让我们能够将节省的成本回馈给各位用户,以回报大家长久以来的支持。 我们将调降C4,M4, 和T2实例的按需,预留(标准及可转换),还有独享型实例价格,依地区及平台选择(Linux,RHEL,SUSE,Windows等)略有不同。AWS所有的地区均适用于此次价格调降。举例说明: 由光环新网运营的AWS中国(北京)区域,M4和T2实例降价高达10%,C4实例降价高达5%。 按照惯例,用户不需采取任何行动以受惠于此次按需购买实例的价格调降。如果用户使用了Billing Alerts 或是更新的Budget功能,也许要考虑做相应的调整。

Read More

利用Amazon CloudWatch 搭建无人值守的监控预警平台

资源与应用服务层监控 Amazon CloudWatch 监控和预警平台可以帮助客户统一管理和运维AWS云端和本地资源、服务和业务系统;使用 Amazon CloudWatch 可以收集和跟踪指标,收集和监控日志文件,设置警报。您可通过使用 Amazon CloudWatch 全面地了解资源使用率、应用程序性能和运行状况。使用这些分析结果,您可以及时做出反应,保证应用程序顺畅运行。 Amazon CloudWatch 的基本概念 请参考AWS 官方文档了解 Amazon CloudWatch的核心概念和术语,比如指标、命名空间、维度、时间戳、单位、统计数据、时间段、聚合、警报等。 基于CloudWatch 的监控预警平台架构 CloudWatch 提供了一套标准的API接口,用户可以利用该平台发布自定义应用、业务或者更加详细的系统指标。用户发布到Amazon CloudWatch 的指标是按时间排序的数据点集合,数据点本身可以来自于任何应用程序或者业务活动;指标通过名称、命名空间和维度进行唯一定义;维度可以帮助你设计数据点的分组特征或者类别,发布指标数据点时必须必须指定维度,比如虚机的CPU使用率,用户可以查看单独某个虚机的监控指标也可以按AutoScaling组来查看,这里的单个虚机或者AutoScaling组就是同一数据点的不同的维度。用户可以使用秒级甚至千分之一秒的频率发布自定义指标,但是Amazon CloudWatch 还是会将数据聚合到1分钟为最小粒度。 基于指标数据,用户可以翻译业务的波动异常到相应的指标,从而创建警报来和相应的操作来自动化应对各种异常情况,操作包括弹性伸缩(Auto Scaling)机制来应对访问流量变化或者Amazon SNS 主题订阅绑定的邮件通知、HTTP请求的调用和消息队列异步处理。 指标数据用户可以直接通过AWS 控制台进行的图形化按时间筛选、查看和分享;同时,用户也可以通过API接口获取指标数据进行第三方的处理和展示。CloudWatch默认保存两周的指标数据(海外区域部分可以支持免费存储最多15个月的统计数据,详情请查看AWS CloudWatch文档)。 本文的架构中,自定义指标收集不需要自己编程而是利用collectd守护进程进行监控和获取,同时利用CloudWatch Plugin for collectd直接将自定义指标发布和存储到CloudWatch中,用户随后可以基于自定义指标的进行自动化警报处理从而实现无人值守的统一监控平台。 什么是CloudWatch Plugin for collectd CloudWatch一直支持用户发布自定义指标来存储、监控自己关心的业务、应用和系统健康状况;AWS最新发布了CloudWatch Plugin for collectd开源项目,该插件整合了collectd强大的收集各种类型统计数据的能力,帮助客户简化了开发收集自定义指标的相关工作,开箱即用地支持发布Apache、Nginx Web服务器应用指标,内存监控指标等监控数据到CloudWatch进行统一存储、展示和预警。 什么是collectd collectd是一个基于C语言的守护进程,主要任务就是用来收集统计信息,它提供各种了存储方式来存储不同值的机制。它支持超过100种各类插件,下面大概列出一些比较常见的插件类型,具体的请参考collectd官方网站。 Web应用:Apache、nginx 数据库:MySQL、Oracle、PostgreSQL、memcached 网络:OpenVPN、Ping、TCPConns、 系统:Memory、Disk、FileCount、vmem、uptime、df 安装配置CloudWatch Plugin for collectd […]

Read More

一键搞定云端网络环境,让您轻松迁移至AWS!

一键搞定云端网络环境,让您轻松迁移至AWS! 知识补充:什么是AWS CloudFormation? AWS CloudFormation 模板是一个文本文件,其格式符合 JSON 格式标准。您可使用任何扩展名(如.json、.template 或 .txt)保存这些文件。AWS CloudFormation可帮助您对AWS资源进行建模和设置,包括EC2实例、RDS实例、Auto Scaling Group、Elastic Load Balancing以及整个AWS VPC的网络环境。点击部署模板,成功创建堆栈之后,AWS 资源将正常运行。点击删除模板,所有堆栈中涉及到的资源将都删除。详细参考 http://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/Welcome.html 注:此文章所用的AWS CloudFormation模板适合: (1)由于项目紧急,您在一两天内就想上线,将资源部署在AWS平台上,之后再花时间学习AWS服务与功能。 (2)您想基于AWS实现自动化基础设施部署,比如快速实现开发 / 测试 / 生产环境,这个模板是您学习AWS一个好的开始。 模板下载: AWS中国区模板: https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/aws-template-bjs-addELB-V3.txt AWS海外区模板: https://s3.cn-north-1.amazonaws.com.cn/danrong-share/external/aws-template-global-addELB-V3.txt 注:为节约成本,此模板所启用的EC2配置很低,为t2.small。 模板主要解决的问题: (1)启动VPC,网段为10.40.0.0/16(当然,模板可以自定义IP地址范围)。自动启动6个子网 Public Subnet 1(子网范围10.40.1.0/24) Public Subnet 2(子网范围10.40.2.0/24) Private Subnet 1(子网范围10.40.3.0/24) Private Subnet 2(子网范围10.40.4.0/24) Private DB Subnet 1(子网范围10.40.5.0/24) Private DB Subnet 2(子网范围10.40.6.0/24) 打开DNS解析和主机名功能。 […]

Read More

程序员的深度学习入门指南

本文根据费良宏在2016QCon全球软件开发大会(上海)上的演讲整理而成。 今天我想跟大家分享的话题与深度学习有关。事实上,深度学习本身是一个非常庞大的知识体系。今天的内容,不会涉及深度学习的理论知识,更多想从程序员的视角出发,让大家观察一下深度学习对我们程序员意味着什么,以及我们如何能够利用这样一个高速发展的学科,来帮助程序员提升软件开发的能力。 前言 1973年,美国上映了一部热门的科幻电影叫做《Westworld》,三年之后又有一个续集叫做《Futureworld》。这部电影在80年代初被引进到中国叫《未来世界》。那部电影对我来讲简直可以说得上是震撼。影片中出现了很多机器人,表情丰富的面部下面都是集成电路板。这让那时候的我觉得未来世界都是那么遥远、那么样的神秘。时间转到了2016年,很多朋友可能都在追看HBO斥巨资拍摄的同一个题材的系列剧《Westworld》。如果前两部电影还是局限在机器人、人工智能这样的话题,2016年的新剧则在剧情、以及对于人工智能的思考方面有了很大的突破。不再渲染机器人是否会威胁到人类,而是在探讨 “Dreams are mainly memories“这一类更具哲理的问题。记忆究竟如何影响了智能这个话题非常值得我们去思考,也给我们一个很好的启示 – 今天,人工智能领域究竟有了怎样的发展和进步。 今天我们探讨的话题不仅仅是简单的人工智能。如果大家对深度学习感兴趣,我相信各位一定会在搜索引擎上搜索过类似相关的关键字。我在Google上以deep learning作为关键字得到了2,630万个搜索的结果。这个数字比一周之前足足多出了300多万的结果。这个数字足以看得出来深度学习相关的内容发展的速度,人们对深度学习的关注也越来越高。 从另外的一个角度,我想让大家看看深度学习在市场上究竟有多么热门。从2011年到现在一共有140多家专注人工智能、深度学习相关的创业公司被收购。仅仅在2016年这种并购就发生了40多起。其中最疯狂的是就是Google,已经收购了 11 家人工智能创业公司,其中最有名的就是击败了李世石九段的 DeepMind。排名之后的就要数 Apple、Intel以及Twitter。以Intel 公司为例,仅在今年就已经收购了 3 家创业公司,Itseez、Nervana 和 Movidius。这一系列大手笔的并购为了布局人工智能以及深度学习的领域。 当我们去搜索深度学习话题的时候,经常会看到这样的一些晦涩难懂的术语:Gradient descent(梯度下降算法)、Backpropagation(反向传播算法)、Convolutional Neural Network(卷积神经网络)、受限玻耳兹曼机(Restricted Boltzmann Machine)等等。如你打开任何一篇技术文章,你看到的通篇都是各种数学公式。大家看到下面左边的图,其实并不是一篇高水准的学术论文,而仅仅是维基百科关于玻耳兹曼机的介绍。维基百科是科普层面的内容,内容复杂程度就超过了大多数数学知识的能力。 右边的那张图则是深度学习很流行的深度学习框架Theano 的一个简单的例子。对于大多数程序员而言学习这一类框架和程序代码的时候更让人抓狂,大段代码我们完全不明就里。我们看到的很多概念,对很多程序员来说觉得非常陌生,所以这确实是对程序员的一个很大的挑战。 在这样的背景之下,我今天的的话题可以归纳成三点:第一,我们为什么要学习深度学习;第二,深度学习最核心的关键概念就是神经网络,那么究竟什么是神经网络;第三,作为程序员,当我们想要成为深度学习开发者的时候,我们需要具备怎样的工具箱,以及从哪里着手进行开发。 为什么要学习深度学习 首先我们谈谈为什么要学习深度学习。在这个市场当中,最不缺乏的就是各种概念以及各种时髦新技术的词汇。深度学习有什么不一样的地方?我非常喜欢Andrew Ng(吴恩达)曾经用过的一个比喻。他把深度学习比喻成一个火箭。这个火箭有一个最重要的部分,就是它的引擎,目前来看在这个领域里面,引擎的核心就是神经网络。大家都知道,火箭除了引擎之外还需要有燃料,那么大数据其实就构成了整个火箭另外的重要组成部分——燃料。以往我们谈到大数据的时候,更多是强调存储和管理数据的能力,但是这些方法和工具更多是对于以往历史数据的统计、汇总。而对于今后未知的东西,这些传统的方法并不能够帮助我们可以从大数据中得出预测的结论。如果考虑到神经网络和大数据结合,我们才可能看清楚大数据真正的价值和意义。Andrew Ng就曾经说过“我们相信(神经网络代表的深度学习)是让我们获得最接近于人工智能的捷径”。这就是我们要学习深度学习的一个最重要的原因。 其次,随着我们进行数据处理以及运算能力的不断提升,深度学习所代表的人工智能技术和传统意义上人工智能技术比较起来,在性能上有了突飞猛进的发展。这主要得益于在过去几十间计算机和相关产业不断发展带来的成果。在人工智能的领域,性能是我们选择深度学习另一个重要的原因。 这是一段Nvidia 在今年公布的关于深度学习在无人驾驶领域应用的视频。我们可以看到,将深度学习应用在自动驾驶方面,仅仅经历了3千英里的训练,就可以达到什么样的程度。在今年年初进行的实验上,这个系统还不具备真正智能能力,经常会出现各种各样的让人提心吊胆的状况,甚至在某些情况下还需要人工干预。但经过了3千英里的训练之后,我们看到在山路、公路、泥地等各种复杂的路况下面,无人驾驶已经有了一个非常惊人的表现。请大家注意,这个深度学习的模型只经过了短短几个月、3千英里的训练。如果我们不断完善这种模型的话,这种处理能力将会变得何等的强大。这个场景里面最重要的技术无疑就是深度学习。我们可以得出一个结论:深度学习可以为我们提供强大的能力,如果程序员拥有了这个技术的话,无异于会让每个程序员如虎添翼。 神经网络快速入门 如果我们对于学习深度学习没有任何疑虑的话,接下来就一定会关心我需要掌握什么样的知识才能让我进入到这个领域。这里面最重要的关键技术就是“神经网络”。说起“神经网络”,容易混淆是这样两个完全不同的概念。一个是生物学神经网络,第二个才是我们今天要谈起的人工智能神经网络。可能在座的各位有朋友在从事人工智能方面的工作。当你向他请教神经网络的时候,他会抛出许多陌生的概念和术语让你听起来云里雾里,而你只能望而却步了。对于人工智能神经网络这个概念,大多数的程序员都会觉得距离自己有很大的距离。因为很难有人愿意花时间跟你分享神经网络的本质究竟是什么。而你从书本上读的到的理论和概念,也很让你找到一个清晰、简单的结论。 今天就我们来看一看,从程序员角度出发神经网络究竟是什么。我第一次知道神经网络这个概念是通过一部电影—1991年上映的《终结者2》。男主角施瓦辛格有一句台词:“My CPU is a neural-net processor; a learning computer.“(我的处理器是一个神经处理单元,它是一台可以学习的计算机)。从历史来看人类对自身智力的探索,远远早于对于神经网络的研究。1852年,意大利学者因为一个偶然的失误,将人类的头颅掉到硝酸盐溶液中,从而获得第一次通过肉眼关注神经网络的机会。这个意外加速了人对人类智力奥秘的探索,开启了人工智能、神经元这样概念的发展。 生物神经网络这个概念的发展,和今天我们谈的神经网络有什么关系吗?我们今天谈到的神经网络,除了在部分名词上借鉴了生物学神经网络之外,跟生物学神经网络已经没有任何关系,它已经完全是数学和计算机领域的概念,这也是人工智能发展成熟的标志。这点大家要区分开,不要把生物神经网络跟我们今天谈到的人工智能有任何的混淆。 神经网络的发展并不是一帆风顺的,这中间大概经历了三起三折的过程。 大约在1904年,人类已经对人脑的神经元有了最初步的认识和了解。1943年的时候,心理学家麦卡洛克 (McCulloch) 和数学家 Pitts […]

Read More

如何在AWS上构建基于 OpenSwan 的软件 VPN 解决方案

概述 随着云的普及以及即用即付的模式,正在被大家逐渐接受,那么在初期从原始数据中心到云迁移的过程中,为了保证数据的平稳迁移,并不推荐将应用以及数据库一次性的迁移到云中。所有项目都应该分阶段来进行,阶段迁移的情况下就必须要将云资源与本地数据中心的资源互连互通。 要做到互连互通,有三种备选方案,互联网,专线直连(DX)和 VPN。从三个方面比较下这三种解决方案,安全,稳定性以及费用。DX 服务无疑是最优的一种解决方案,提供安全稳定的网络性能,高吞吐量。由于国内专线铺设所带来的高昂费用,所以在初期阶段,DX 并不是一个最优的。这里面互联网是最便宜的,因为本身数据中心就已经支付了这部分费用,只要保证云中的资源可以上互联网就可以了,但互联网面临的问题是网络依赖互联网,互联网的网络性能并不是可控的,另外一方面是互联网的安全性。VPN 呢是基于互联网的服务,虽然不能保证网络性通的可控,但可以做到数据的安全。 就以上比较而言,在初期阶段,VPN 无疑是一种高性比的安全以及节约成本的方案。考虑到目前北京区域并不支持硬件VPN的服务,即Global区域的VPN Connection。那么有没有可以替代的方案呢?答案是肯定的,一切问题都难不倒我们伟大的开源组织,开源方案如 OpenSwan (今天的主角),StrongSwan,Raccoon等等了。除了开源的解决方案外,还有一些商业解决方案,比如Sanfor 深信服,Hillstone 山石,Checkpoint , Cisco CSR1000v等也可以部署,有兴趣的可以与相应的软件提供商联系。 前面说了那么多关于VPN的各种软件,那么该如何选择呢?这里我们从使用上来划分下吧,将VPN主要划分为两类,一类是工作于客户端到服务端的模式,像OpenVPN,SSL VPN,L2TP,PPTP这些都是需要客户端主动发起连接,拨到Server端在两者之间建立一个逻辑上的隧道 (tunnel)进行通信。这种方式一般适用于个人到总部场景。服务器是无法主动发起连接到客户端。 另外一种就是站点到站点(site-to-site)的模式,像OpenSwan,StrongSwan, Raccoon 等软件,这种情况下两端会各有一个设备负责来建立两个站点之间安全通信的隧道,任何需要到对端的通信都会触发设备来建立安全隧道通信。 那么公司原有数据中心与云通信都是双向通信,所以站点到站点更合理。 实际上这里说的 VPN 即是指 IPsec VPN,IPsec 是一种工业标准,只要支持这种标准的设备都可以互相协商建立一个安全的隧道出来,比如支持的硬件设备有路由器,防火墙以及专业的 VPN 设备。 说了这么多,下面我们就以 AWS 端为 OpenSwan 与 Cisco 的路由器之间的配置为例。 场景及拓扑 拓扑如上图,AWS端建立一个VPC(CIDR:192.168.0.0/16),包含两个子网,一个可以上互联网的Public子网192.168.1.0/24以及私有子网Private 192.168.2.0/24。在公有子网上会配置一台OpenSwan实例与公司的Cisco设备做VPN连接。 OpenSwan的EIP地址为54.223.152.218 子网:192.168.1.0/24 Cisco设备的公网地址为54.223.170.5 子网:10.1.2.0/24 目标:实现AWS上私有子网192.168.2.0/24和数据中心10.1.2.0/24双向互通 详细配置步骤 1.配置 VPC 基础环境 1.1 创建 VPC 在AWS […]

Read More

AWS的在线云计算专家,你用了吗?

我们在享受AWS云计算带来的弹性、灵活、高可用、按需使用等优点的同时,相信运维开发人员及商务决策者们会越来越多地关注如何在云上实现成本、安全、性能和容错方面的优化。今天为大家隆重介绍一位就在你身边的AWS在线云计算专家,希望给大家一些最直接的帮助。 ——-专家简介—- AWS Trusted Advisor有着丰富的云计算疑难病症的临床经验,并总结了大量的最佳实践。他会实时帮你从成本优化、安全、性能和容错四个大的方面诊断AWS帐户的健康状况并推送检查结果和建议。 ——–专家支招——- 第一招:免费检查项   对象:所有支持级别 1. 是否有过于宽松的端口安全组设置 2. 是否使用AWS Identity and Access Management (IAM)来进行用户身份和权限管理 3. 是否在根帐户上启动了Multi-Factor Authentication (MFA)加强帐户安全 4. 各服务当前使用量是否接近限额需要联系AWS小伙伴进行限额提升 注:北京区域目前提供服务限制和安全组 – 特定端口不受限制两项 第二招:全套检查项   对象:商用和企业级别支持服务 商用和企业级别支持服务客户可以享受全套检查项(截至到发文止,共54个检查项,还会不断增加),横跨成本优化、安全、性能和容错四个大类。 9个成本优化检查项 15个安全检查项 19个容错检查项 11个性能检查项 *为北京区域目前可用的检查项 第三招:支持API方式获取检查建议和数据 对象:商用和企业级别支持服务 这招比较适合技术咖了,可以用程序的方式获取Trusted Advisor的检查建议及数据。 戳以下链接了解Trusted Advisor (TA)以及AWS支持计划! 全球区域: https://aws.amazon.com/premiumsupport/trustedadvisor/ https://aws.amazon.com/premiumsupport/compare-plans/ 北京区域: http://www.amazonaws.cn/support/trustedadvisor/ http://www.amazonaws.cn/support/support-plans/  

Read More

Amazon CloudFront常见错误配置及解决方法

很多的用户在最初使用CloudFront做Web类内容分发的时候遇到无法调通的情况,本文总结了用户在配置过程中遇到的常见错误,内容涵盖了大部分用户遇到的情况。 错误一  源访问权限未放开 这种错误常见于用S3做源的情况, 引起这种错误的原因是s3的访问控制没有对CloudFront开放。从浏览器中返回的错误通常类似于下图: 更具体些,可分为以下两个场景: 场景1. CloudFront使用了Restrict Bucket Access 在创建distribution的时候选择了Restrict Bucket Access 为yes, 但 Grant Read Permissions on Bucket, 选择的是”No, I Will Update Permissions”, 而用户事后却没有在s3的桶里更新policy。如下图所示。 解决方法: 方法1, 在S3中增加桶的策略,使该桶允许该CloudFront访问,以下是policy示例,其中标黄部分需要替换成用户自己的信息。 {                 “Version”: “2008-10-17”,                 “Id”: “PolicyForCloudFrontPrivateContent”,                 “Statement”: [                                 {                                                 “Sid”: “1”,                                                 “Effect”: “Allow”,                                                 “Principal”: {                                                                 “AWS”: “arn:aws:iam::CloudFront:user/CloudFront Origin Access […]

Read More

VPC中NAT的那点事

NAT就在那里 下图 是EC2实例通过IGW(Internet网关) 接入到Internet的示意图。熟悉AWS的读者会知道,这里EC2实例和Internet通信的两个方向上,实际上发生了如下的转换: 从EC2实例发出的前往Internet的IP包,其源地址10.0.0.10在经过IGW时,会被转换为与实例关联的公网地址 54.232.0.1; 从Internet发给54.232.0.1的IP包,经过IGW时其目的地址会转换为ENI对应的内网地址10.0.0.10并被送到 EC2实例; 可以看到,这里Internet网关就是起到实例的内网地址和公网地址一对一的基本 NAT(网络地址转换)的功能。 相比于没有NAT的场景,大部分的应用、软件不需要任何改变就能在基本NAT的场景下继续工作,例如基于HTTP协议的Web应用等;但是对于某些应用,例如FTP、VoIP等,网络地址转换会给应用带来一些意想不到的挑战。今天我们以历史悠久的FTP协议为例,来和大家探讨一下NAT给FTP这样的应用带来什么样的挑战,以及FTP应用和协议又是如何演进去适应它。 被动模式下的FTP 我们重温一下FTP的工作过程。客户端连接服务端TCP 21端口建立命令通道后,输入用户名密码完成登录;随后的每一次数据传输都需要另外建立数据通道进行; 如果数据通道由客户端发起,服务端接受,我们称之为被动模式;反之,如果数据通道由服务端发起,客户端接受,则称之为主动模式。 为简化讨论,我们以被动模式为例。 同一个私网内 我们在EC2实例10.0.0.10上搭建了一台FTP服务器,它监听在21端口。现在我们从同一个VPC里的另外一台EC2上运行FTP客户端;那么整个过程会很顺利。 从Internet访问 现在我们从位于Internet某处的一台PC上运行FTP客户端。 这里连接超时的原因显而易见,FTP服务端发送给客户端的IP地址是服务端的私有地址。位于Internet上的客户端无法建立与位于VPC内部的私有地址10.0.0.10直接通讯。 解决这个问题有多种方法,我们由简单到复杂分别叙述。 增强协议适配NAT FTP协议针对NAT和其他因素,对协议进行了增强,提供了增强版的被动模式EPSV命令[1]。 下面的例子里,服务端不再显式指定IP地址,只提供数据通道的端口号。客户端默认与控制通道相同的IP地址建立数据通道。 可以看到,解决方案很优雅。实际上如果你在阅读本文的时候,绝大部分FTP服务端和客户端都已经实现了EPSV,而且优先使用它,所以FTP应用目前在EC2上是可以称之为开箱即用的。当然这需要客户端和服务端都支持增强的协议才能达成;如果我们不修改协议,能否解决这个问题呢。 放开那协议!我来! 有些时候,修改协议和实现需要多方协调和很长的时间才能完成。在RFC2428标准化之前,一些FTP实现就已经通过修改实现来适配基本NAT,而非修改协议。 以vsftpd为例,它允许通过配置文件vsftpd.conf中的配置项 pasv_address=54.232.0.1 告知服务端,在PASV被动模式下,应当指示客户端连接到配置项指定的IP(而不是服务端的私有IP)来适配基本NAT。 其他的一些常见应用例如VoIP类应用,也有类似的机制去适配基本NAT;例如引入STUN/TURN/ICE等方式[2]适配各种更加复杂的NAT穿越场景;但是针对部署在EC2上的基本NAT环境,也有通过实现上的简单调整,例如开源VoIP应用Asterisk就支持通过在配置文件/etc/asterisk/sip.conf里指定本机的公网地址和本地网段的方式来适配基本NAT。 nat=yes externaddr=54.223.0.1 localnet=10.0.0.0/16 协议和实现我都不想动! 作为一枚任性的读者,如果您既不想动协议也不想动实现,这里笔者给读者介绍一种剑走偏锋的方式,读者若有兴趣,可以轻松愉快的在AWS上试一试,看看能否解决你的应用适配基本NAT。下面是一段shell脚本,当然是运行在Linux操作系统上的。           #从EC2 实例元数据服务获取本实例的公网IP(如有)、私网IP           public_ipv4=`curl -s http://169.254.169.254/latest/meta-data/public-ipv4`           local_ipv4=`curl -s http://169.254.169.254/latest/meta-data/local-ipv4`           #配置私网地址段,这里应为EC2实例所在VPC的地址范围           local_net=10.0.0.0/16           if [ […]

Read More