亚马逊AWS官方博客

使用 AWS Glue 和 Amazon Athena 实现无服务器的自主型机器学习

您是否遇到过需要根据某些属性划分数据集的情况?K-means 是用于划分数据的最常见的机器学习算法之一。该算法能够将数据分成不同的组 (称为集群)。每个样本都被分配到一个集群,这样,相比分配到其他集群中的样本,分配到同一集群中的样本彼此之间更相似。 在这篇博客文章中,我将介绍使用 AWS Glue 提取位于 Amazon S3 上有关出租车行驶情况的数据集,并使用 K-means 根据行车坐标将数据分成 100 个不同的集群。然后,我会使用 Amazon Athena 查询行驶次数和每个集群的大概区域。最后,我会使用 Amazon Athena 来计算行驶次数最多的四个区域的坐标。使用 AWS Glue 和 Amazon Athena 都可以执行这些任务,无需预置或管理服务器。 解决方案概述 我将使用在以前的博客文章中用过的纽约市出租车数据集:使用 AWS Glue、Amazon Athena 和 Amazon QuickSight 协调、查询和可视化各个提供商的数据。我将使用 2016 年 1 月份包含绿色出租车行驶数据的表。 我将向您展示 AWS Glue 作业脚本,该脚本使用 Spark 机器学习 K-means 集群库,基于坐标划分数据集。该脚本通过加载绿色出租车数据并添加指示每一行被分配到哪个集群的列来执行作业。该脚本采用 parquet 格式将表保存到 Amazon s3 存储桶 (目标文件)。可以使用 Amazon Athena […]

Read More

AWS DevOps – 配合Jenkins和CodeDeploy实现代码自动化部署

作为DevOps和微服务的深入践行者,Amazon在内部积累了许多持续集成、交付和部署的自动化工具和平台。本文主要介绍如何在AWS云上,使用CodeDeploy,并配合Jenkins来构建持续集成/持续交付的管道,自动化代码部署和版本迭代。 在查看本文之前,建议大家先阅读一下代闻老师写的关于CodeDeploy的文章。 https://aws.amazon.com/cn/blogs/china/getting-started-with-codedeploy/ 一、创建EC2实例并安装CodeDeploy Agent 创建Amazon EC2实例,选择实例类型和添加存储。 在“高级详细信息”里面输入启动脚本 #!/bin/bash yum -y update yum install -y ruby yum install -y aws-cli cd /home/ec2-user aws s3 cp s3://aws-codedeploy-cn-north-1/latest/install . –region cn-north-1 chmod +x ./install ./install auto EC2启动成功后,使用SSH到该EC2,使用如下命令检验Agent是否工作正常。 sudo service codedeploy-agent status Result: The AWS CodeDeploy agent is running as PID 3523 二、创建应用程序负载均衡(ALB) 创建Target Group 三、创建CodeDeploy环境 点击“创建应用程序” 输入应用程序名称,和部署组的名称。CodeDeoploy支持两种部署方式,“就地部署”和“蓝绿部署”,更多关于部署类型请参考: […]

Read More

国际消费电子展 (CES) 上的 AWS IoT、Greengrass 和 Machine Learning 车联网应用介绍

上周,我参加了总部位于西雅图的 INRIX 公司总裁 Bryan Mistele 的一场演讲。Bryan 的演讲围绕交通运输的四大主要属性(通常用缩写形式 ACES 表示),展望了交通运输业的未来: 自主化 – 汽车和卡车将获得扫描和感测环境的能力,能够在无需人为输入的情况下进行导航。 互连化 – 所有类型的汽车都将能够利用与其他汽车以及与基于云的资源之间的双向连接(始终连接或间歇连接)。它们可以上传路况和性能数据、彼此通信,从而以车队的方式行驶,充分利用交通和气象数据。 电气化 – 电池和发动机技术的持续发展将使电动车更加便捷、经济且环保。 共享化 – 共乘服务会改变用车模式,从拥车模式改变为“即服务”模式(听起来是否有几分熟悉?)。 无论单独来看还是整体来看,这些新兴的属性都意味着,未来十年我们将看到和使用的汽车和卡车将与过去截然不同。 AWS 伴您出行 AWS 客户已经在利用我们的 AWS IoT、边缘计算、Amazon Machine Learning 和 Alexa 产品来让这样的未来照进现实 – 汽车制造商、其一级供应商和汽车科技初创公司都在将 AWS 用于自己的 ACES 计划。AWS Greengrass 在这方面发挥了重要作用,富有吸引力的设计俘获了客户,并帮助他们在边缘处增加处理能力和机器学习推测。 AWS 客户 Aptiv(前身为 Delphi)在 AWS re:Invent 会议上探讨了他们的 Automated Mobility on Demand (AMoD) 智能汽车架构。Aptiv 的 […]

Read More

Amazon SageMaker 现已推出 DeepAR 算法,用于实现更精确的时间序列预测

今天,我们推出了 Amazon SageMaker 的最新内置算法 Amazon SageMaker DeepAR。DeepAR 是一种适用于时间序列预测的监督学习算法,该算法使用递归神经网络 (RNN) 生成点预测和概率预测。我们很高兴能为开发人员提供这种可扩展的高精度预测算法,协助 Amazon 制定任务关键型决策。正如其他 Amazon SageMaker 内置算法一样,DeepAR 算法同样无需建立和维护基础设施进行训练和推理即可使用。 预测无处不在 预测是跨众多行业应用机器学习的切入点。无论是通过更好的产品需求预测优化供应链,通过预测 Web 服务器流量更有效地分配计算资源,还是通过为医院配置人员以满足患者需要进而挽救生命,几乎进行精确预测投资的所有领域都会很快得到回报。 在 Amazon,我们利用预测协助制定各个应用领域的业务决策。其中一些应用领域包括预测我们订单履行中心的产品和劳动力需求 (尤其是在“会员日”、“黑色星期五”和“网络星期一”这类重要日期),或者确保我们可以灵活扩展所有 AWS 客户的 AWS 计算和存储容量。Amazon 的科学家们开发了诸如 DeepAR 这样的算法,以高度准确地解决 Amazon 同等规模的这类实际商业应用的问题。 DeepAR 算法的亮点 与自回归移动平均模型 (ARIMA) 或指数平滑法 (ES) (许多开源和商用软件包中都采用这两种技术进行预测) 等传统预测技术相比,DeepAR 预测算法可以提供更高的预测精度。而且,DeepAR 算法还支持其他功能和场景,特别适合实际应用。 冷启动预测 当我们想要为一个历史数据很少或无任何历史数据的时间序列生成预测时,会出现冷启动情况。这种情况在实践中常有发生,比如在引入新产品或推出新的 AWS 区域服务时。ARIMA 或 ES 等传统方法完全依赖于单个时间序列的历史数据,因此在冷启动情况下通常不太准确。我们以服装类商品 (例如运动鞋) 预测为例。 基于神经网络的算法 (例如 DeepAR) 可以根据其他类型运动鞋首次发布时的销售模式,学习新款运动鞋销售的典型行为。 通过学习训练数据中多个相关时间序列的关系,DeepAR 可以提供比现有算法更精确的预测。 概率预测 […]

Read More

在 Amazon EMR 中构建由 Spark 支持的 Amazon SageMaker Notebook

在 2017 年 AWS re:Invent 上介绍的 Amazon SageMaker 可以为数据科学和机器学习工作流程提供完全托管服务。Amazon SageMaker 的其中一个重要组成部分是功能强大的 Jupyter Notebook 接口,该接口可用来构建模型。通过将 Notebook 实例连接到 Amazon EMR 上运行的 Apache Spark 集群,可以增强 Amazon SageMaker 的功能。Amazon EMR 是一个用于处理大量数据的托管框架。通过将二者结合,可以基于大量数据构建模型。 Spark 是一个可以快速处理大数据的开源集群计算框架,并且包含适用于机器学习工作负载的 MLlib。为了方便在 Amazon SageMaker Notebook 与 Spark EMR 集群之间建立连接,需要使用 Livy。Livy 是一个开源 REST 接口,无需 Spark 客户端便可从任何位置与 Spark 集群交互。 本博文将向您介绍如何运行 Spark EMR 集群,如何配置必要的安全组以便在 Amazon SageMaker 与 EMR 之间进行通信,以及如何打开 Amazon […]

Read More

如何利用 AWS Lambda 和 Tensorflow 部署深度学习模型

深度学习已经彻底变革了我们处理和加工真实数据的方式。深度学习的应用程序有多种类型,包括用于整理用户照片存档、推荐书籍、检测欺诈行为以及感知自动驾驶车辆周边环境的应用程序。 在这篇文章中,我们将向您逐步演示如何通过 AWS Lambda 使用自定义的训练模型,从而大规模利用简化的无服务器计算方法。在此过程中,我们将介绍一些核心 AWS 服务,您可以使用这些服务以无服务器的方式运行推理。 我们还将了解图像分类:现在已有多种表现非常出色的开源模型可供使用。通过图像分类,我们可以使用深度学习中两种最常用的网络类型:卷积神经网络和全连接神经网络 (也称为 Vanilla 神经网络)。 我们将向您演示在 AWS 中的什么位置放置训练模型,以及以何种方式打包您的代码,以便 AWS Lambda 通过推理命令执行这些代码。 在这篇博客文章中,我们将讨论以下 AWS 服务:AWS Lambda、Amazon Simple Storage Service (S3)、AWS CloudFormation、Amazon CloudWatch 和 AWS Identity and Access Management (IAM)。使用的语言和深度学习框架包括 Python 和 TensorFlow。此处介绍的流程也适用于任何其他深度学习框架,例如 MXNet、Caffe、PyTorch、CNTK 及其他框架。 整体架构 AWS 架构 从流程的角度而言,深度学习系统的开发和部署与开发和部署传统解决方案应该没有不同。 下图描述了一种可能的开发生命周期: 如您从图中可见,通常的软件开发流程经过多个阶段,从开发环境中的概念成形和建模,直到生产环境中的最终模型部署。在大部分情况下,开发阶段会有多次快速迭代,需要不断对环境进行更改。通常,这会影响在软件/模型开发期间所用资源的性质和质量。对于敏捷开发而言,能够快速构建/重建/停用环境至关重要。所构建软件的快速改变随之而来的应该是基础设施调整。敏捷开发和加速创新的先决条件之一是能够通过代码管理基础设施 (称为 IaC:基础设施即代码)。 软件设计管理、构建和部署的自动化是持续集成和持续交付 (CI/CD) 的一部分。虽然本文不会深入介绍精心编排的 CI/CD 管道的细节,不过,对于任何开发运营团队来说,如果希望构建可重复的流程,以实现开发/部署敏捷性和流程自动化,就应该记住这一点。 AWS 在社区中推出了众多服务和实践,可简化开发任务。一个环境,只要使用自动化代码构建,那么只需数分钟就可以轻松地采用和复制,例如,可以根据开发环境所用的模板构建暂存和生产系统。 此外,AWS […]

Read More

首批 AWS 机器学习能力合作伙伴简介

在由云驱动的所有创新中,人工智能 (AI) 和机器学习 (ML) 领域或许是最令人兴奋的。比如,IDC 预测到 2020 年,AI 系统的市场收益将达到 460 亿美元。这一数字远高于 2017 年的 125 亿美元,并以 54.4% 的复合年增长率 (CAGR) 增长。另外,根据 AngelList 的统计,专注于人工智能的初创公司超过 3000 家。 AI/ML 正被应用到每个能想象到的使用案例中,包括确保我们免遭欺诈,帮助我们更轻松地发现娱乐内容,改善客户体验,以及预测工业设备何时需要维护。或许最重要的是,AI/ML 现在正被应用到医疗保健行业。在该行业中,计算机视觉算法将自动进行影像学诊断,而使用临床数据可以更好地预测患者健康状况,针对各个患者的治疗情况量身定制精准医疗方案,并且 ML 很有可能会发现新的救命药。 尽管人们对 AI 的增长预期持积极态度,但仍有一些人怀疑它是否能够真正超越研究范畴并带来真正的业务价值。但是,在当今 AWS 的基础之上,许多客户已在大规模应用 AI/ML 并解决众多领域中存在的各种问题。 诸如 Arterys 之类的 AWS 客户正在应用计算机视觉进行医学影像诊断。其他客户正在通过以下方式使用 AI/ML:通过 Stitch Fix 获得时尚推荐,通过 Expedia 制定旅行计划,通过 Redfin 进行不动产评估,通过 Zendesk 为客户提供支持,通过 9fin 进行财务文档分析,以及通过 Signal Media 获得商业智能。我们还看到,公司正在使用基于深度学习 […]

Read More

现已推出:新的数字培训,可帮助您了解 AWS 上的机器学习和人工智能

AWS 培训和认证最近发布了免费的数字培训课程,这将使您更容易地培养云技能并了解机器学习 (ML) 和人工智能 (AI)。这包括深度学习简介和 Amazon SageMaker 简介。 您可以在 aws.training 免费且无限制地访问由 AWS 专家打造的超过 100 个全新数字培训课程。很容易访问我们的 ML 和 AI 数字培训。仅需在我们的查找培训页面上选择“人工智能”类别进行浏览即可。您还可以使用关键字筛选器在培训中搜索特定服务。 推荐的培训 刚入门或想了解新服务?查看以下数字培训课程: AWS 机器学习服务概述(5 分钟) 本课程介绍了 Amazon 机器学习和人工智能工具,它们能够跨框架和基础架构、机器学习平台和 API 驱动服务实现功能。 机器学习简介(10 分钟) 本课程向您介绍机器学习的概念和数据扮演的角色。我们将会探讨使用案例,讨论构建智能应用程序的创新方法,并述评可用于机器学习的 AWS 框架和服务。 人工智能简介(10 分钟) 在本课程中,我们将讨论 AI 是什么以及它为何重要,并简要了解机器学习和深度学习 (DL,它是 AI 的子集),并描述 Amazon 在其产品中使用 AI 的方式。 深度学习简介(10 分钟) 在本课程中,我们将讨论可用于 DL 的 AWS 服务,并演练一个通过 DL 进行创新的 AWS […]

Read More

AWS Direct Connect 最新动态 – 2017 年末新增了十个地点

2018 年快乐!我期盼重返日常工作,与我们的团队通力合作,了解他们即将发布的内容,然后写博文向您传达相关信息。目前的博文还是关于 2017 年末发布的一些内容和公告。 今天,首先为大家介绍一下最近刚刚开始提供 AWS Direct Connect 服务的城市。世界各地的 AWS 客户都使用 Direct Connect 创建从本地到 AWS 的专用网络连接,以便降低网络成本、提高吞吐量,并打造更加一致的网络体验。 12 月份,我们的 Direct Connect 服务列表新增了十个地点,这十个地点全都提供 1 Gbps 和 10 Gbps 连接,以及合作伙伴为速度低于 1 Gbps 的地区提供的选项。以下是新增的地点,以及数据中心和相关的 AWS 地区: 印度班加罗尔 – NetMagic DC2 – 亚太地区(孟买)。 南非开普敦 – Teraco Ct1 – 欧盟(爱尔兰)。 南非约翰内斯堡 – Teraco JB1 – 欧盟(爱尔兰)。 英国伦敦 – Telehouse North Two […]

Read More

新一代负载均衡器服务NLB概述

在去年9月份,AWS发布了托管的网络负载均衡器服务Network Load Balancer,NLB是继Classic Load Balancer,Application Load Balancer之后,AWS发布的第三款负载均衡器服务,本文将着重介绍NLB的工作原理,特点以及在使用配置上的注意事项,帮助读者更好地在自己的业务场景中运用NLB服务。 NLB能够在极低的延迟下,支持每秒数千万的请求,在API上兼容现有的ALB应用负载均衡器,下面是NLB的一些主要功能和特点: 静态IP地址 每个NLB在每个可用区中提供单个静态IP地址,用户端发往该IP地址的流量会被负载分发到同可用区内的多个后端实例上,用户可以为NLB在每个可用区中分配固定的弹性IP,如此设计使得NLB能够被纳入企业现有的防火墙安全策略中,并且能够避免DNS缓存带来的问题。 同可用区内分发流量 客户端的流量到达NLB在某个可用区提供的IP后,NLB会向相同可用区内的后端实例分发流量,通过避免跨可用区的流量分发能够获得更好的延迟性能。 源地址保留 NLB在转发流量的同时,并不会修改数据包的源IP地址,后端实例无需支持诸如X-Forward-For,proxy协议,就能够直接从数据包的包头获取客户端的IP,从而很方便地分析客户端的地理位置等信息。 长连接支持 NLB内置的容错机制能够保证长连接应用的稳定运行,从而更好的贴合诸如IoT,游戏,消息应用等业务场景。 故障切换 利用Route 53的健康检查,NLB支持在一个区域内及跨区域和本地站点实现故障切换。 下面我们来看一下如何在AWS控制台创建NLB,可以看到,客户在创建负载均衡器页面中,目前可以有三种负载均衡器可选,我们选择NLB。 NLB和其他AWS提供的负载均衡器一样,支持创建面向internet及internal两种场景,除此之外,用户需要配置NLB监听的端口及所处的子网,如果创建面向internet的NLB,需要注意将NLB放到公有子网中。 考虑NLB本身的冗余,建议至少选择2个可用区,同时用户可以根据需要为NLB在每个可用区绑定弹性IP。 后续的配置与ALB的配置十分类似,用户需要配置目标组,目标组监听的协议、端口以及健康检查等相关配置,目前无论ALB还是NLB都支持将EC2实例及某个IP作为目标,前者实现VPC内部的负载均衡,后者通过IP可以为本地站点的实例提供负载均衡。 这里选择实例类型的目标类型,之后需要选择注册的实例。 需要注意的是,为了能够接受外部客户端的访问以及健康检查流量,建议后端实例的安全组做如下设置,如果用户觉得健康检查源地址设置VPC CIDR过于宽泛的话,建议可以设置为NLB的私有IP,NLB的私有IP可以在ENI界面通过NLB名字搜索到相关NLB的ENI来获取。 除了安全组设置上的考虑,对于面向internet的NLB来说,后端实例收到的流量的源IP地址是处于公网的客户端IP,对于接收internet流量的这部分后端实例,建议放到公有子网中,即默认路由指向IGW,如果用户不希望后端实例能够被外界直接访问,可以在将后端实例放入公有子网的同时,选择不分配公网IP,从而保证外界只能通过NLB来访问到后端实例。 选择完后端实例后,就可以完成NLB的创建。 NLB对外提供的是一个域名,客户端通过访问该域名将流量发给NLB,用户可以通过设置DNS CNAME记录来方便客户端通过自定义的域名来访问用户的后端系统。 以上介绍了面向internet的NLB的配置方法,对于面向internal的NLB,用户可以做类似的配置,这里不做过多的介绍,只是如果NLB后端对接的是容器业务,并且网络模式是bridge模式,需要做额外的考虑。 这里先给出结论再解释相关的原理,对于两个需要通过NLB互访的内部容器应用,建议将这两个应用的容器调度到不同的EC2节点上,对于AWS ECS,用户可以通过为两个应用创建不同的ECS Cluster或者在一个ECS Cluster内通过亲和性调度算法实现。 为什么需要做上述的设置呢?下面解释下如果将这两个应用调度到相同的ECS Cluster上会出现什么问题。 在上面这个场景中,App1和App2使用容器部署在EC2中,App1需要通过NLB来访问App2,如果网络模式使用bridge,App1的流量在发出所在EC2实例的时候,源IP地址会从App1的容器IP转换成EC2的IP,如果NLB通过负载分发算法将流量发往处于相同EC2上的App2容器,NLB会将目的IP转换成相同的EC2的IP地址,流量到达EC2后,EC2会将目的IP转换成App2的容器IP,问题在于App2回包的时候,当流量到达EC2 OS层,OS通过查询路由表发现目的地址是自己,会在OS层面直接处理流量,而不会将流量返回给NLB,导致App1访问App2失败。 这个问题是由于NLB的工作原理导致的,NLB在接收到流量后,保持源IP地址不变,通过负载均衡算法选择后端实例,并将目的IP转换成后端实例的IP地址进行流量分发,我们需要在设计上避免上述问题,将App1和App2的容器调度到不同的EC2实例上,从而在根本上避免App1访问App2的流量的发起和终止在同一台EC2实例上。 以上我们的介绍了NLB的主要特点,配置方法及常见的配置注意事项,读者如果感兴趣的话,可以通过下面的链接来进一步学习NLB的相关内容: https://aws.amazon.com/documentation/elastic-load-balancing/ https://aws.amazon.com/elasticloadbalancing/faqs/ 作者介绍 余骏,AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广。在加入AWS之前,在思科中国担任系统工程师,负责方案咨询和架构设计,在企业私有云和基础网络方面有丰富经验。  

Read More