Tag: Amazon EC2


使用 Amazon EC2 Run Command 在不使用 SSH 访问的情况下大规模地管理实例

以下博文的投稿者为 Ananth Vaidyanathan (EC2 Systems Manager 高级产品经理) 和 Rich Urmston (Pegasystems 公司云架构高级总监),介绍了如何使用 EC2 Run Command 在不使用 SSH 的情况下管理大量 EC2 实例。

-Jeff


企业通常具有若干托管环境和成千上万的 Amazon EC2 实例。安全地管理系统非常重要,同时也要避免棘手的安全外壳 (SSH)。Run CommandAmazon EC2 Systems Manager 的一部分,可以让您以可控制和可审查的方式对实例 (或使用标签的实例组) 运行远程命令。这有效地提升了每天都要依赖 Run Command 服务的 Pega 云操作的效率。

您可以通过标准 IAM 角色和策略控制 Run Command 访问,定义文档以获取输入参数,控制用于返回命令输出的 S3 存储桶。您还可以与其他 AWS 账户共享文档或将文档公开。总而言之,Run Command 提供了一组很有用的远程管理功能。

优于 SSH

Run Command 优于 SSH 且 Pegasystems 已将其作为主要远程管理工具的原因如下:

Run Command 所需时间较短 – 安全地连接到一个实例需要几个步骤,例如要连接的跳转盒或要列入白名单的 IP 地址等。使用 Run Command,云操作工程师可以直接从笔记本电脑调用命令,而不必找到密钥甚至实例 ID。相反,系统安全性依赖于 AWS 身份验证、IAM 角色和策略。

Run Command 操作完全经过审查 – 使用 SSH,无法真正控制他们的操作,也没有审查跟踪。使用 Run Command,每个调用的操作都会在 CloudTrail 中进行审查,包括调用用户的信息、运行命令的实例、参数和操作状态。您拥有完全控制权,能够限制工程师可以在系统上执行的功能。

Run Command 无需管理 SSH 密钥 – Run Command 利用标准 AWS 凭证、API 密钥和 IAM 策略。通过与企业身份验证系统的集成,工程师可以根据其企业凭证和身份与系统进行交互。

Run Command 可以同时管理多个系统 – 使用 SSH 完成某些简单任务会很麻烦,如查看 Linux 服务的状态或在托管实例队列中检索日志文件。Run Command 允许您通过 ID 或标签指定实例列表,并在指定队列中并行调用命令。除非是最小的 Pega 群集,否则这会在进行故障排查或管理时提供巨大的优势。

Run Command 使自动化复杂任务更容易 – 实现操作任务标准化需要详细的程序文档或描述准确命令的脚本。在整个队列中管理或部署这些脚本会很麻烦。Run Command 文档提供了一种封装复杂功能并处理文档管理和访问控制的简单方式。当与 AWS Lambda 结合使用时,文档提供了强大的自动化平台来处理任何复杂任务。

示例 – 重新启动 Docker 容器

下面是一个用于重新启动 Docker 容器的简单文档示例。它包含一个参数,即要重新启动的 Docker 容器的名称。它使用 AWS-RunShellScript 方法调用命令。该服务自动收集输出并将输出返回调用方。有关最新文档架构的示例,请参阅创建 Systems Manager 文档

{
  "schemaVersion":"1.2",
  "description":"Restart the specified docker container.",
  "parameters":{
    "param":{
      "type":"String",
      "description":"(Required) name of the container to restart.",
      "maxChars":1024
    }
  },
  "runtimeConfig":{
    "aws:runShellScript":{
      "properties":[
        {
          "id":"0.aws:runShellScript",
          "runCommand":[
            "docker restart {{param}}"
          ]
        }
      ]
    }
  }
}

在 Pegasystems 上实际应用 Run Command

Pegasystems 配置系统位于AWS CloudFormation上,后者用于部署和更新 Pega 云资源。在此之上是 Pega Provisioning Engine,这是一个无服务器的基于 Lambda 的服务,它管理着 CloudFormation 模板和 Ansible 操作手册库。配置管理数据库 (CMDB) 跟踪每个部署和更新的所有配置详细信息和历史记录,并使用分层目录命名约定布置其数据。下图显示了不同系统的集成方式:

对于云系统管理,Pega 操作使用名为 cuttysh 的命令行版本和基于 Pega 7 平台的图形版本,名为 Pega Operations Portal。这两种工具都允许您浏览部署环境的 CMDB,查看配置设置,并通过 Run Command 与部署的 EC2 实例进行交互。

CLI 演示

下面是一个 CLI 演示,用于查看客户部署并使用 Run Command 与实例交互。启动 cuttysh 工具可以显示 CMDB 的根目录和配置客户的列表:

% cuttysh
d CUSTA
d CUSTB
d CUSTC
d CUSTD

您可以使用标准 Linux shell 命令 (例如 cdlscatgrep) 与 CMDB 进行交互。带有 s 前缀的项目表示可查看其属性的服务。带有 d 前缀的项目表示 CMDB 层次结构中可导航的子目录。在此示例中,将目录更改为 CMDB 层次结构的客户 CUSTB 部分,然后再将其更改为名为 env1 的配置 Pega 环境,位于 Dev 网络下。此工具显示了为该环境配置的项目。这些条目映射到配置的 CloudFormation 模板。

> cd CUSTB
/ROOT/CUSTB/us-east-1 > cd DEV/env1

ls –l 命令显示配置资源的版本。这些版本号映射到源代码控制 – CloudFormation、Ansible 和构成 Pega 云版本的其他组件的托管项目。

/ROOT/CUSTB/us-east-1/DEV/env1 > ls -l
s 1.2.5 RDSDatabase 
s 1.2.5 PegaAppTier 
s 7.2.1 Pega7 

现在,使用 Run Command 与部署的环境进行交互。要执行此操作,可使用 attach 命令并指定要进行交互的服务。在以下示例中,可挂载到 Pega Web Tier。使用 CMDB 和实例标签中的信息,CLI 可以找到相应的 EC2 实例,并显示有关它们的一些基本信息。此部署有三个实例。

/ROOT/CUSTB/us-east-1/DEV/env1 > attach PegaWebTier
 # ID         State  Public Ip    Private Ip  Launch Time
 0 i-0cf0e84 running 52.63.216.42 10.96.15.70 2017-01-16 
 1 i-0043c1d running 53.47.191.22 10.96.15.43 2017-01-16 
 2 i-09b879e running 55.93.118.27 10.96.15.19 2017-01-16 

在这里,您可以使用 run 命令调用 Run Command 文档。在以下示例中,您可以对实例 0 (列表中的第一个实例) 运行 docker-ps 文档。EC2 执行命令并将输出返回到 CLI,CLI 将显示输出。

/ROOT/CUSTB/us-east-1/DEV/env1 > run 0 docker-ps
. . 
CONTAINER ID IMAGE             CREATED      STATUS        NAMES
2f187cc38c1  pega-7.2         10 weeks ago  Up 8 weeks    pega-web

使用相同的命令和已定义的其他文档,您可以重新启动 Docker 容器,甚至将文件的内容撤回到本地系统。当您获得文件时,Run Command 还会在 S3 存储桶中留下一个副本,以备您希望将链接传递给同事。

/ROOT/CUSTB/us-east-1/DEV/env1 > run 0 docker-restart pega-web
..
pega-web

/ROOT/CUSTB/us-east-1/DEV/env1 > run 0 get-file /var/log/cfn-init-cmd.log
. . . . . 
get-file

Data has been copied locally to: /tmp/get-file/i-0563c9e/data
Data is also available in S3 at: s3://my-bucket/CUSTB/cuttysh/get-file/data

现在,利用 Run Command 可一次完成多个操作。在以下示例中,您挂载到具有三个正在运行的实例的部署,并希望查看每个实例的正常运行时间。将 par (并行) 选项与 run配合使用,CLI 将指示 Run Command 对所有实例并行执行正常运行时间文档。

/ROOT/CUSTB/us-east-1/DEV/env1 > run par uptime
 …
Output for: i-006bdc991385c33
 20:39:12 up 15 days, 3:54, 0 users, load average: 0.42, 0.32, 0.30

Output for: i-09390dbff062618
 20:39:12 up 15 days, 3:54, 0 users, load average: 0.08, 0.19, 0.22

Output for: i-08367d0114c94f1
 20:39:12 up 15 days, 3:54, 0 users, load average: 0.36, 0.40, 0.40

Commands are complete.
/ROOT/PEGACLOUD/CUSTB/us-east-1/PROD/prod1 > 

总结

Run Command 通过提供更快的系统访问和跨一组实例运行操作,可以提高工作效率。Pega 云操作将 Run Command 与其他操作工具集成,为管理系统提供了一种简单安全的方法。这大大提高了操作效率,并更好地控制了每个主体在托管部署可以执行的操作。Pega 持续改进过程会定期评估操作者需要访问权限的原因,并将这些操作转换为新的 Run Command 文档以添加到库中。事实上,它们的长期目标是停止在启用 SSH 时部署云系统。如果您有任何问题或建议,请给我们留言!

-Ananth 和 Rich

AWS 深度学习之旅

如果您和我一样,就会对人工智能 (AI)、机器学习 (ML) 和深度学习这些主题有极大兴趣和深感兴奋。AI、ML 和深度学习的应用越来越广泛,对我来说,这意味着艾萨克·阿西莫夫博士的科幻小说、《星球大战》中机器和医疗的进步,以及让柯克船长和他的《星际迷航》舰员能够“前往没有人去过的地方”的那些技术都可成为现实。

大多数对前述主题感兴趣的人都熟悉深度学习支持的 AI 和 ML 解决方案,如实现图像和视频分类的卷积神经网络、语音识别、自然语言接口和推荐引擎。但是,设置基础设施、环境和工具,让数据科学家、机器学习实践者、研究科学家和深度学习爱好者/拥护者能够深入钻研这些技术并不总是那么容易。大多数开发人员都渴望能够快速上手深度学习,从而使用深度学习技术来训练模型和开发解决方案。

因此,无论您是经验丰富的数据科学家,还是急切想在这方面入门的开发人员,我都乐意分享一些资源,帮助您快速构建深度学习解决方案。

深度学习资源

Apache MXNet 是 Amazon 选择的深度学习框架。借助强大的 Apache MXNet 框架和 NVIDIA GPU 计算,您可以在 AWS 云中方便地启动您的可扩展深度学习项目和解决方案。随着您开始探索 MxNet 深度学习,有很多自助教程和数据集可供您使用:

  • 启动 AWS 深度学习 AMI:该指南可引导您完成基于 Ubuntu 启动 AWS 深度学习 AMI 的步骤
  • MXNet – 创建计算机视觉应用程序:该实践教程使用预构建的笔记本指导您完成使用神经网络实现计算机视觉应用程序来识别手写数字的整个过程
  • AWS 机器学习数据集: AWS 在您可以免费访问的 AWS Marketplace 中托管机器学习数据集。这些大型数据集可供任何人用来分析数据,而无需下载或存储这些数据。
  • 预测和提取 – 学习使用预先训练的模型来进行预测:实践课程将指导您借助预先训练的模型并使用完整 Imagenet 数据集来进行预测和特征提取。

AWS 深度学习 AMI

AWS 提供可在 Amazon EC2 上使用的 Amazon 系统映像 (AMI),用于快速部署开启您的深度学习之旅所需要的基础设施。AWS 深度学习 AMI 预先配置了主流的深度学习框架,使用 Amazon Linux 上的 Amazon EC2 实例和可以为 AI 目标解决方案和模型启动的 Ubuntu 来构建。在深度学习 AMI 中支持和预配置的深度学习框架有:

  • Apache MXNet
  • TensorFlow
  • Microsoft Cognitive Toolkit (CNTK)
  • Caffe
  • Caffe2
  • Theano
  • Torch
  • Keras

此外,AWS 深度学习 AMI 为 Jupyter 笔记本安装与 Python 2.7/3.4、适用于 Python 的 AWS 开发工具包有关的预配置库以及其他与 Python 程序包和依赖项相关的数据科学内容。这些 AMI 还随附 NVIDIA CUDA 和与所有受支持的深度学习框架一起预安装的 NVIDIA CUDA 深度神经网络 (cuDNN) 库,对于 Apache MXNet 框架则会安装 Intel Math Kernel 库。您可以使用尝试深度学习 AMI 链接访问 AWS Marketplace,从而启动任何深度学习 AMI。

总结

现在是深入钻研深度学习的大好时机。通过使用在 AWS 云中运行的 AWS 深度学习 AMI,可以让您的深度学习环境快速运行起来,从而加快您在深度学习方面的工作进度,您也可以通过使用 AWS 自助资源详细了解 AWS 上使用 MXNet 的深度学习。当然,您还可以通过查看 AWS 深度学习页面Amazon AI 产品页面AWS AI 博客,了解有关 AWS 上深度学习机器学习人工智能的更多信息。

愿大家都得到深度学习之原力。

Tara

AWS 降价 – 在Amazon EC2 上运行的 SQL Server 标准版

我很高兴地宣布,AWS 迎来了第 62 次降价,本次降价适用于在 EC2 上运行的 Microsoft SQL Server 标准版

许多企业工作负载都在 Microsoft Windows 上运行,主要是在本地部署或企业数据中心。AWS 上提供了各种各样的服务,由我们覆盖全球的基础设施合作伙伴生态系统提供支持,因此,我们认为它是构建、部署、扩展和管理 Windows 应用程序的最佳位置。AdobePitney BowesDeVry University 等客户都已将核心生产 Windows Server 工作负载移到了 AWS。他们的应用程序囊括从 SharePoint 站点到自定义 .NET 应用程序和 SAP 的全部范围,且经常使用 SQL Server。

Microsoft SQL Server on AWS 运行在 EC2 Windows 实例上,并可为您的应用程序开发和迁移提供支持。通过它,您可以控制所有设置,就像在本地部署中运行关系数据库时控制设置一样,它支持 32 位和 64 位版本。

今天,我们将降低在 R4、M4、I3 和 X1 实例上运行的 EC2 上的 Microsoft SQL Server 标准版的按需和预留实例价格,降幅高达 52%,具体取决于实例类型、大小和区域。您可以构建和运行企业级应用程序、可大规模扩展的网站及移动应用程序,成本比以往任何时候都低。

下面是针对每个区域和实例类型的最大降价幅度:

区域 R4 M4 I3 X1
[iad] -51% -29% -50% -52%
[cmh] -51% -29% -50% -52%
[pdx] -51% -29% -50% -52%
[sfo] -51% -30% -50%
[yul] -51% -51% -50% -44%
[gru] -49% -30% -48%
[dub] -51% -29% -50% -51%
[fra] -51% -29% -50% -50%
[lhr] -51% -51% -50% -44%
[sin] -51% -31% -50% -50%
[syd] -51% -30% -50% -50%
[nrt] -51% -29% -50% -50%
[icn] -51% -31% -50% -50%
[bom] -51% -33% -50% -50%

按需实例新的更低价格自 2017 年 7 月 1 日开始生效。预留实例的新定价从今日开始生效。

-Jeff

EC2 降价 – 预留实例和 M4 实例

随着 AWS 的发展,我们不断寻求方法来让它更好地提供价值。我们与供应商合作降低成本,并且不断地探索能够以更加高效、更具成本效益的方式来构建硬件和软件的方法。除了定期和经常性的减价之外,我们还向客户提供了各种选项,可以帮助他们优化对 AWS 的使用。例如,预留实例 (首次发布于 2009 年) 与按需定价相比,使得 Amazon EC2 用户能够获得显著的折扣,并且在特定可用区中使用时可预留容量。我们的客户使用多种战略来购买和管理其预留实例。一些客户偏好进行预付从而得到更高的折扣;一些客户则偏好无预付款,不过折扣较低 (折扣仍然很可观)。介于这两者之间的客户则对只需部分预付款,即可享受到介于这两种选项的折扣感到非常满意。为了满足各种各样的偏好,我们为大部分最新一代的实例类型增加了 3 年无预付标准预留实例。我们还降低了无预付保留实例、可转换预留实例和通用 M4实例 (包括按需实例和预留实例) 的价格。这是我们的第 61 次 AWS 降价。详细信息见此处 (所有更改和降价都立即生效):

最新 3 年标准预留实例的无预付款选项-我们以前提供的无预付款选项为 1 年期的标准预留实例。现在,我们面向 C4、M4、R4、I3、P2、X1 和 T2 标准预留实例增加了 3 年期的无预付选项。

无预付预留实例降价-我们降低了 C4、M4、R4、I3、P2、X1 和 T2 实例类型的无预付 1 年标准实例和 3 年可转换预留实例的价格,根据实例类型、操作系统和区域,降幅最高可达 17%。下面提供了在多个代表性区域中面向 Linux 的无预付预留实例的平均降价:

美国东部 (弗吉尼亚北部) 美国西部 (俄勒冈) 欧洲 (爱尔兰) 亚太地区 (东京) 亚太地区(新加坡)
C4 -11% -11% -10% -10% -9%
M4 -16% -16% -16% -16% -17%
R4 -10% -10% -10% -10% -10%

可转换预留实例降价-使用可转换预留实例时,您可以随时更改实例系列以及与预留实例关联的其他参数;这让您可以随着应用程序的演变和需求变化来调整预留实例清单。我们降低大部分最新一代实例 (C4、M4、R4、I3、P2、X1 和 T2) 的 3 年可转换预留实例价格,最高可达 21%。下面提供了在多个代表性区域中面向 Linux 的可转换预留实例的平均降价:

美国东部 (弗吉尼亚北部) 美国西部 (俄勒冈) 欧洲 (爱尔兰) 亚太地区 (东京) 亚太地区(新加坡)
C4 -13% -13% -5% -5% -11%
M4 -19% -19% -17% -15% -21%
R4 -15% -15% -15% -15% -15%

类似的降价在几乎所有其他区域中也将实施。

M4 实例降价 – 我们将 M4 Linux 实例的价格最多减少 7%。请访问“EC2 预留实例定价”页面“EC2 定价”页面,或者参考 AWS 价格表 API 来了解所有新价格。

了解更多:以下博客帖子包含有关我们对 EC2 预留实例模型所做的改进的更多信息:

您还可以阅读 AWS 定价预留实例常见问题来了解更多信息。

-Jeff

EC2 内存中处理更新:具有 4 到 16 TB 内存 + SAP HANA 横向扩展到 34 TB 的实例

我每个月都会多次在西雅图的执行简报中心与 AWS 客户畅谈。我会介绍我们的创新过程,并讨论如何根据客户的要求和反馈更好地制定每个 AWS 产品的路线图。一个很好的例子就是,在我们的努力下,AWS 已经成为 SAP 业务解决方案产品组合的理想平台。多年来,我们的客户向我们透露,他们在 AWS 中运行大规模 SAP 生产应用程序,而我们一直努力为他们提供旨在满足其工作负载的 EC2 实例。由于 SAP 安装始终是任务关键型应用产品,因此 SAP 对其产品可以在特定类型和大小的 EC2 实例上使用进行认证。我们直接与 SAP 合作以取得认证,并使 AWS 成为运行其产品的强大可靠的平台。下面快速回顾我们在这个领域的一些最重要的公告:

2012 年 6 月 – 我们扩大了在 AWS 上提供的经过 SAP 认证的解决方案系列。2012 年 10 月 – 我们宣布 SAP HANA 内存中数据库现在可以在 AWS 上开展生产运行。2014 年 3 月 – 我们宣布,SAP HANA 现在可以在具有高达 244 GB 内存的 cr1.8xlarge 实例上开展生产运行,并且能够创建比以往更大的测试集群。2014 年 6 月 – 我们发布了“SAP HANA 部署指南”和一套 [cloudformation] 模板,并且宣布 r3.8xlarge 实例获得 SAP 认证。2015 年 10 月 – 我们宣布推出配备 2 TB 内存的 x1.32xlarge 实例,这些实例旨在运行 SAP HANA、Microsoft SQL Server、Apache Spark 和 Presto。2016 年 8 月 – 我们宣布,X1 实例集群现在可用于创建具备高达 7 个节点或 14 TB 内存的生产 SAP HANA 集群。2016 年 10 月 – 我们宣布推出具有 1 TB 内存的 x1.16xlarge 实例。2017 年 1 月 – 经过认证,SAP HANA 可在 r4.16xlarge 实例上运行。今天,来自各行各业的客户在 AWS 上运行生产 SAP 应用程序 (SAP 和 Amazon Web Services 页上提供了一个非常长的客户成功案例列表)。我的同事 Bas Kamphuis 最近撰写了一篇文章:借助 SAP 和云开启数字化之旅 (要求注册)。他介绍了 SAP 在数字化转型中的作用,并探讨了提供底层支持的云基础设施的关键特征,并且指出了云相比其他托管选项可提供的众多优势。他在文章中阐述了下面这些优点:我们会继续努力,让 AWS 成为运行生产 SAP 应用程序的更好平台。下面是我们正在大力改进的几个方面:

  • 更大的 SAP HANA 集群 – 您现在可以使用高达 17 个节点 (34 TB 内存) 构建横向扩展 SAP HANA 集群。
  • 4 TB 实例 – 即将推出的 x1e.32xlarge 实例将提供 4 TB 内存。
  • 8 到 16 TB 实例 – 最高具有 16 TB 内存的实例正在开发中。

我们来深入探讨一下!构建更大的 SAP HANA 集群 – 我非常高兴地宣布,我们一直在与 SAP 合作进行认证,以便将 x1.32xlarge 实例用于高达 17 个节点 (34 TB 内存) 的横向扩展集群。这是目前在所有云提供商中能够提供的最大横向扩展部署,这让我们的客户能够在 AWS 上部署超大型 SAP 工作负载 (请访问 x1.32xlarge 实例的 SAP HANA 硬件目录认证来了解更多信息)。要了解如何设计和部署自己的横向扩展集群,请参阅 AWS 上的 SAP HANA 快速入门扩展内存密集型 X1 系列 – 我们将继续投资完善这个实体系列和其他实例系列,以满足您的需求并为您提供一个平坦的发展途径。今年晚些时候,我们计划在多个 AWS 区域中提供 x1e.32xlarge 实例,同时推出按需实例和预留实例两种形式。这些实例将提供 4 TB DDR4 内存 (x1.32xlarge 实例的两倍)、128 个 vCPU (4 个 2.3 GHz Intel® Xeon® E7 8880 v3 处理器)、高内存带宽以及大型 L3 缓存。这些实例将是仅 VPC 实例,可以使用 Elastic Network Adapter 提供高达 20 Gbps 的网络带宽,同时最大限度地减少延迟和抖动。默认情况下对这些实例进行了 EBS 优化,可提供高达 14 Gbps 的专用 EBS 吞吐量。下面是来自外壳程序的一些屏幕截图。在第一个截图中, dmesg 显示了引导时的内核消息:

在第二个截图中, lscpu 显示了 vCPU 数和插槽数量,还有许多其他值得关注的信息:

此外, 顶部 显示有接近 900 个进程:

下面是来自 HANA Studio 中的视图:

通过这个新实例以及针对更大集群的认证,扩大了您在 EC2 上运行 SAP 的横向扩展和纵向扩展选项集,从下图中可以看出这一点:

长期内存密集型路线图 – 因为我们知道规划大规模 SAP 安装可能需要相当长的时间,所以我还想与您分享一下我们路线图的一部分。今天,客户能够在第三方托管数据中心运行更大的 SAP HANA 认证服务器,并通过 [dc] 将它们连接到自己拥有的 AWS 基础设施,但客户告诉我们,他们真的希望像现在的 X1 实例一样使用云原生解决方案。为了满足这种需求,我们正在开发具有更多内存的实例!在 2017 年和 2018 年,我们计划推出内存在 8 TB 和 16 TB 之间的 EC2 实例。利用这些即将推出的实例以及 x1e.32xlarge,您可以创建更大的单节点 SAP 安装和多节点 SAP HANA 集群,并运行其他内存密集型应用程序和服务。它还将为您提供一些纵向扩展的余地,当您开始达到较小实例的极限时,这对您会非常有用。我会尽早分享有关我们计划的更多信息。来自 SAPPHIRE 大会上的问候 – AWS 团队将在 SAPPHIRE 的展台 539 上与大家相见;届时我们的团队、客户以及合作伙伴将在展台演讲厅中主持一系列研讨会。我们也将在整个展会期间参加许多研讨会。下面列举了一些研讨会 (有关完整清单,请参阅 SAP SAPPHIRE NOW 2017):AWS 上适用于大型企业和大型工作负载的 SAP 解决方案 – 时间:5 月 17 日星期三中午。主讲人:Bas Kamphuis (AWS 的 SAP 业务部总经理) 和 Ed Alford (BP 业务应用程序服务副总裁)。通过迁移到 AWS 上的 SAP HANA 在速度方面实现质的飞跃 – 时间:5 月 17 日星期三中午 12:30 – 主讲人:Paul Young (SAP 副总裁) 和 Saul Dave (Zappos 企业系统高级主管)。Zappos 主持的 AWS 炉边谈话 (快速 SAP HANA 迁移:真实效果) – 时间:5 月 18 日星期四上午 11:00 – 主讲人:Saul Dave (Zappos 企业系统高级主管) 和 Steve Jones (AWS 的 SAP 解决方案架构高级经理)。[jeffsig] PS – 如果您具有一些 SAP 使用经验,并希望将这些经验带到云中,请考虑下主产品经理 (AWS 快速入门)SAP 架构师职位。

从永恒之蓝开始,安全防范没有结束

信息安全现状

时钟进入到2017年,物联网安全DDoS攻击勒索软件被越来越多的国内外信息安全预测机构列为年度最大信息安全威胁。上周爆发的勒索软件WannaCry (又称作永恒之蓝)已席卷全球99个国家,让各类技术宅男们和信息安全的童鞋们又错过了一个美好的周末。尽管目前该病毒已被安全人员找到了阻止其传播的方法,但是类似的安全事件依然给我们敲响了云端安全运维的警钟。

WannaCry事件回顾,5月12日晚, WannaCry 蠕虫病毒在全球大肆爆发。据外媒报道,攻击在99个国家实施了超过75000次攻击。该攻击利用漏洞MS17-010中的某些版本的SMB服务器协议进行传播,利用Windows 445 端口的安全漏洞潜入电脑并对多种文件类型加密并使用户无法打开,攻击者称需支付比特币解锁,补丁程序已于2017年3月14日发布,但未打补丁的用户有可能遭受此次攻击。通过这个事件我们发现只要是购买正版操作系统并及时更新补丁的用户,都不会受到影响。永久解决办法有2个,1.开启windows的自动更新功能,将最新补丁打上; 2.对于部分比较老的windows系统可以手动下载更新包并安装。

这样的安全事件不是第一次也不会是最后一次,要确保我们的信息安全,需要做的事情有太多,比如完善的信息安全应对机制,一系列自动化运维工具或服务,坚决的执行能力以及定期的审核机制。如果你恰好开始关心信息安全,而我们又专业,不妨看看AWS是如何看待信息安全的。

AWS信息安全理念

数据属于谁?

虽然是一个老生常谈的问题,但确实一个非常重要的问题,而且答案永远只有一个,数据属于客户。当你上云之后,如何确保你的数据真的属于你是很多客户评估是否上云时最纠结的问题!在AWS,你可以非常清晰的从上图中看到这个界限。所有操作系统以上(包括操作系统本身)的内容都是客户自己自主可控,AWS没有任何权限访问,同时如果你使用的是AWS提供的Windows或者Linux镜像,该镜像 的补丁机制是全球一致管理的,我们会从各个合作厂商那得到补丁,并第一时间更新到镜像里。如果是开篇提到的流氓攻击,在AWS上的客户可以不需要担心了,因为该补丁在镜像中自动更新了。

如何确保我在云上是安全的?

如何数据安全可能是一个说上三天三夜都没法说完的话题,今天我们从AWS信息安全最佳实践出发,给大家从几个层面来分析信息安全的层级,并重点介绍如何帮助客户在理解理念之后的安全落地问题。首先我们可以看到在云上我们需要这么几个维度的安全,底层基础架构的安全网络的安全权限及审计的安全服务本身的安全事先预防等等。总之,信息安全从来都不是靠说的,而是靠做的,所以接下来我们给大家做一些简单示范,让你在使用AWS时更加得心应手。

底层基础架构的安全

熟悉AWS的同学可能知道,AWS底层的虚拟化平台使用的是Xen,套用一句官话,不管我们的工程师是多么的小心,我们依然需要时刻告知我们的客户对于AWS服务底层安全的疑虑,所以大家可以在以下链接找到关于Xen的信息安全公告,同时大家也可以从AWS信息安全白皮书中看到AWS如何对于底层基础架构的安全设计,限于篇幅的原因本文不作展开。

Xen Security Advisiories

https://aws.amazon.com/cn/security/security-bulletins/

AWS Security Best Practices

https://d0.awsstatic.com/whitepapers/aws-security-whitepaper.pdf

网络安全

  • 上云的安全

当你的数据需要上云时,你有三种非常安全的方式来传输您的数据,通过TLS加密的HTTPS协议将数据直接通过互联网传输到S3, 建立专用VPN进行数据传输以及通过专线将AWS与您的数据中心打通,并将AWS纳入您现有的全球专线网络中,让你全球任何一个办公室或者数据中心都通过内网的方式随时的安全访问云端的数据或者系统,如同您多了一个拥有无限扩展能力的远端数据中心。

  • 云上的安全

当您的数据或者系统已经部署在AWS上时,你可以通过上图的简单示意图来对您的系统进行网络隔离及控制。比如,你可以按照不同的应用划分不同的VPC,不同的VPC之间网络隔离,同时在同一个VPC内设置不同安全级别网络区域,如公有访问区,DMZ区,私有网络区。利用VPC内的免费防火墙工具安全组,网络ACL来对云端的机器及网段进行精细化控制。如图上的例子,你可以通过图形界面在安全组上关闭该机器137,139,445 端口就能轻松的规避本文开篇提到的流氓攻击。如果您确实需要开启这些端口,也可以在安全组内指定对具体的源IP开放端口,或者将这些机器放置在私有网段,当这些私有网段的机器需要访问互联网的某些站点进行补丁升级等操作时,通过NAT的方式允许VPC的出向流量。

如果您还需要对VPC内不同私有网段的机器访问进行更精细化控制,还可以通过另外一个免费的防火墙网络ACL来实现。

当您的网络与AWS云端VPC通过VPN或者专线联通时,你还可以通过路由表来控制您哪些数据中心的网段可以访问云端的哪些网段。

权限及审计安全
当你的业务上云后,你可能面临不同人员需要管理你云端资源,这些人可能包括,您公司的开发人员,运维人员,财务部,人事部以及您外部形形色色的服务供应商或者运维外包供应商,如何给予这些人员适当权限去访问他们需要访问的AWS资源以及事后审核这些人员的访问情况,是很多企业客户迫切需要解决问题。

AWS IAM不但可以轻松解决上述所有访问权限问题,还可以帮您打通绝大部分企业遇到的SSO问题,让你数据中心的AD或者第三方机构与AWS建立授权机制,当您的用户在本地AD通过验证后,直接访问AWS上的数据,无需重复创建用户。同时可以给所有IAM用户开启复杂密码功能,并强制用户每隔一段时间修改密码。

内审或者外审通常是一个企业每年必做的事情,在AWS只需开启CloudTrail服务就可以自动记录所有AWS资源的使用情况,下图是一个CloudTrail的简单示例,我们可以看到什么时间哪个用户对什么资源做了什么事情。

同时还可以进一步查看某个事件的详细信息,便于审核,如下图所示:

服务本身的安全机制

由于AWS服务众多,限于篇幅的原因,本文重点讲解AWS虚拟机(EC2)的安全,如您对其他服务也很感兴趣,欢迎阅读AWS安全白皮书。

AWS Security Best Practices

https://d0.awsstatic.com/whitepapers/aws-security-whitepaper.pdf

     Amazon EC2多层安全模型

Amazon EC2多层安全模型包含底层物理服务器的操作系统,虚拟操作系统或者客户操作系统,防火墙和签名的API调用。目标是防止EC2内的数据被未授权的系统或者用户访问,在不牺牲客户配置灵活性的时,尽最大限度保证EC2本身的安全。

Amazon EC2当前利用了一个AWS高度定制化的Xen hpervisor,底层托管主机操作系统执行Ring0(最高权限),客户操作系统执行Ring1,应用执行Ring3(最低权限)在虚拟化层面来隔离客户和hypervisor。

当多台EC2运行在同一台底层物理服务器时,他们被Xen hypervisor隔离,如上图所示,在hypervisor层中有防火墙,且该防火墙位于底层物理网卡和客户EC2虚拟网卡之间。所有流量都需要通过该层,所以任意一个EC2实例无法访问其他EC2实例,底层的内存(RAM)也是使用类似机制实现隔离。

底层硬件的操作系统都必须通过MFA的方式进行访问,且这个系统通过AWS
特殊设计,构建及配置,确保其安全,所有访问都会自动记录且被审计。

客户操作系统完全有客户控制,客户拥有完整的根或者管理员权限,AWS没有任何权限可以访问。

重要数据经常备份,重要数据经常备份,重要数据经常备份,重要的事情说三遍。 在AWS你可以将常用对象数据存放在EBS或者S3,对于存放在EBS的数据每天EBS快照,确保任何重要数据都有一份最近的拷贝。对于S3上的对象数据,通过S3 桶策略进行精细控制,同时开始S3的版本控制功能防止误删或脏数据。

事先预防

如何做好事先预防工作呢?比如某用户处于某种原因开启了一些高端口或者公司命令禁止的网络端口,IT部门如何迅速发现并纠正呢?AWS Config服务可以帮到你。Config可为您提供 AWS 资源的详细库存及其当前配置,并会持续记录对这些资源配置所做的更改(例如,安全组的出/入规则、适用于 VPC 的网络 ACL 规则和 Amazon EC2 实例上标签的值)。

您可以通过创建 AWS Config 规则进行评估,规则规定了您理想的配置设置。AWS Config 能够提供可自定义的预定义规则 (称作托管规则),以帮助您开始进行评估。您还可以创建自己的自定义规则。在 AWS Config 持续跟踪您的资源中出现的配置更改时,它会检查这些更改是否违反了规则中的任何条件。如果某个资源违反了规则,那么 AWS Config 会将该资源和规则标记为不合规。例如,当创建 EC2 卷时,AWS Config 可以按照需要卷加密的规则来评估该卷。如果卷没有加密,AWS Config 会将卷和规则标记为不合规。AWS Config 还可以在您的所有资源中检查有无账户范围内的要求。例如,AWS Config 可以检查账户中 EC2 卷的数量是否在所需总数以内,或者账户是否使用 AWS CloudTrail 进行登录。

如何进行远程系统管理

Amazon EC2 系统管理器是一系列可帮助您自动执行管理任务的功能,例如收集系统清单、应用操作系统补丁、自动创建 Amazon 系统映像 (AMI) 以及大规模配置操作系统和应用程序。您可以使用 Systems Manager 以远程方式安全地管理托管实例的配置。托管实例是您混合环境中已经针对 Systems Manager 配置的任意 Amazon EC2 实例或本地计算机。系统管理器所提供的功能和共享组件无需额外费用。您仅需为实际使用的 Amazon EC2 资源付费。

 

系统管理器支持对下列操作系统进行管理:

Windows操作系统 Windows Server 2003 至 Windows Server 2016,包括 R2 版本
Linux操作系统

64 位和 32 位系统

Amazon Linux 2014.09、2014.03 或更高版本

Ubuntu Server 16.0.4 LTS、14.04 LTS 或 12.04 LTS

Red Hat Enterprise Linux (RHEL) 6.5 或更高版本

CentOS 6.3 或更高版本

仅 64 位系统

Amazon Linux 2015.09、2015.03 或更高版本

Red Hat Enterprise Linux (RHEL) 7.x 或更高版本

CentOS 7.1 或更高版本

如果大家感兴趣,可以参考下面链接进行具体的配置安装。

http://docs.amazonaws.cn/systems-manager/latest/userguide/what-is-systems-manager.html

接下来介绍使用系统管理器来进行补丁安装。由于北京区的系统管理器暂无补丁管理组件,我们使用Run Command组件来进行补丁安装。您可以使用系统管理器的Run Command以远程方式安全地管理托管实例的配置。托管实例是您混合环境中已经针对系统管理器配置的任意 Amazon EC2 实例或本地计算机。利用 Run Command,您可以自动完成常用管理任务以及大规模执行临时配置更改。

管理员使用 Run Command 可以在其托管实例上执行以下类型的任务:安装或引导应用程序,安装系统补丁,获取系统资产信息,构建部署管道,从 Auto Scaling 组终止实例时捕获日志文件,以及将实例加入 Windows 域等等。

写在最后的话

一波热闹的攻击事件已经过去,下一次攻击开始还会远吗?如果您能事先利用AWS提供的信息安全服务(文中提到的很多服务是免费的),配合完善的审核机制,不管是什么类型的信息安全风险来临你都能处乱不惊。

 

使用AWS控制台或命令行将AWS IAM角色附加到现有的Amazon EC2实例中

简介

AWS IAM(身份和访问管理服务)中的角色使您的应用程序在Amazon EC2上能够使用临时的安全凭证自动实现AWS服务的创建,发布和内容修改。使用这样的临时凭证是IAM的最佳做法,因为您不再需要在实例上维护一个或多个长期密钥。对EC2使用IAM角色也无需再使用必须手动或以编程方式管理的长期AWS访问密钥。

例如,应用程序必须通过AWS证书签署API请求。因此,如果您是应用程序开发人员,您需要一个策略来为EC2实例上运行的应用程序管理证书。您可以安全地将您的AWS证书分配至实例,从而允许这些实例上运行的应用程序使用您的证书签署请求,并保护其免受其他用户的影响。但是,要将凭证安全地分配至每项实例有一定难度,尤其是AWS以您的名义创建的实例,例如竞价型实例或Auto Scaling组中的实例。当您更换AWS证书时,您还必须能够更新每项实例上的证书。IAM角色能够委托授权以发出API请求,而不用创建并分配您的AWS证书。详细解决方案,请查阅文档适用于Amazon EC2的IAM角色

之前,IAM角色只能在实例创建设置时添加,这导致了过去创建的实例和忘记添加IAM角色的实例无法使用IAM角色操作实例,从而被迫重新部署实例及应用程序。从现在开始,您可以通过将IAM角色附加到现有的尚未被角色附加的EC2实例,来使用AWS提供的临时安全证书操作EC2实例,您还可以随时替换附加到现有EC2实例的IAM角色。

适用范围

文中的操作步骤已于2017年2月23日验证通过,其中AWS CLI版本1.11.48,在AWS全球和AWS中国区均能正常使用。

解决方案

1.   创建IAM角色

2.   将IAM角色附加给现有EC2实例(最初没有IAM角色附加)

3.   更换附加到Amazon EC2的IAM角色

4.   移除附加到Amazon EC2的IAM角色

本文假设您具有创建IAM角色的权限,并具有调用EC2 API的权限。

AWS命令行操作步骤中所有出现的占位符{Some Words},都应该替换为实际资源名称。

AWS控制台操作步骤

1.  打开EC2控制面板,并选择左侧边栏的“实例”。

2.  选择您的实例,依次点击上方的操作->实例设置->Attach/Replace IAM role

3.  打开IAM role下拉菜单,选择您想要附加给当前EC2的IAM角色,No Role代表不附加角色,选好后点击右侧的Apply按钮。选择并应用的过程实际上包含了:将IAM角色附加给现有EC2实例(最初没有IAM角色附加);更换附加到Amazon EC2的IAM角色;移除附加到Amazon EC2的IAM角色。

4.  如果您选择了No Rule(即移除EC2上的IAM角色),会显示如下页面:

5.  如果您未作出有效的修改,会显示如下页面:

6.  如果您的修改有效,会显示如下页面:

AWS命令行操作步骤

开始操作之前,请确保您的CLI版本大于等于1.11.48。如果您对当前自己的CLI版本有疑问,可以在命令行中执行以下命令进行版本查询:

$aws --version

如果您已经有 pip 和支持的 Python 版本,则可以使用以下命令安装 AWS CLI:

# pip install --upgrade --user awscli

一、创建IAM角色

在从AWS CLI创建IAM角色之前,必须先创建角色信任策略。信任策略允许AWS服务(如EC2)代表您的应用程序承担IAM角色。

要创建信任策略,请复制以下策略,并将其粘贴到使用名称{YourNewRole}-Trust-Policy.json保存的文本文件中,注意后缀名为.json:

♦AWS中国区

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": {

"Service": "ec2.amazonaws.com.cn"

},

"Action": "sts:AssumeRole"

}

]

}

♦AWS全球

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": {

"Service": "ec2.amazonaws.com"

},

"Action": "sts:AssumeRole"

}

]

}

 

现在您已成功创建信任策略,接下来创建IAM角色{YourNewRole}:

1.  基于信任策略创建IAM角色{ourNewRole},打开命令行并执行以下命令:

$aws iam create-role --role-name {YourNewRole} --assume-role–policy-document file://{FilePath}/{YourNewRole}-Trust-Policy.json

注意:  file:// 不能省略,策略路径可以是当前相对路径也可以是全路径。

例如:

相对路径: file://TestRole-Trust-Policy.json

全路径:

Windows:file://C:/test/TestRole-Trust-Policy.json

Linux: file:///data/test/TestRole-Trust-Policy.json

2.  给予此IAM角色访问帐户中资源的权限。在本示例中,我假设您的应用程序需要只读访问您帐户中的所有Amazon S3存储桶和存储桶中的对象。因此,您将使用AmazonS3ReadOnlyAccess AWS托管策略。有关AWS托管策略的详细信息,请参阅使用托管策略。在命令行中执行以下命令:

$aws iam attach-role-policy --role-name {YourNewRole} --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

3.  创建IAM实例配置文件{YourNewRole-Instance-Profile}。实例配置文件允许EC2将IAM角色{YourNewRole}传递给EC2实例。要了解更多信息,请参阅使用实例配置文件。在命令行中执行以下命令:

  $aws iam create-instance-profile --instance-profile-name {YourNewRole-Instance-Profile}

  $aws iam add-role-to-instance-profile --role-name {YourNewRole} --instance-profile-name {YourNewRole-Instance-Profile}

至此,您已成功创建IAM角色{YourNewRole}。

 

二、将IAM角色附加给现有EC2实例(最初没有IAM角色附加)

您现在可以将IAM角色{YourNewRole}附加到EC2实例{YourInstanceId}:

1.  获取现有EC2实例详细信息(记录InstanceId)。在命令行中执行以下命令:

$aws ec2 describe-instances

2.  将新创建的IAM角色{YourNewRole}的实例配置文件{YourNewRole-Instance-Profile} 附加到您的EC2实例{YourInstanceId}。在命令行中执行以下命令:

$aws ec2 associate-iam-instance-profile --instance-id {YourInstanceId} --iam-instance-profile Name={YourNewRole-Instance-Profile}

3.  验证IAM角色是否已附加到实例。在命令行中执行以下命令:

$aws ec2 describe-iam-instance-profile-associations

4.  打开AWS EC2控制台,查看实例的描述信息:

5.  进入EC2实例内,查看实例IAM角色具体信息:

$curl http://169.254.169.254/latest/meta-data/iam/security-credentials/{YourNewRole}

至此,您可以使用IAM角色访问AWS资源来更新应用程序,并把实例中的长期密钥删除。

三、更换附加到Amazon EC2的IAM角色

如果角色的使用需求发生改变,并且您希望通过修改IAM角色来授予EC2实例权限,则可以更换换附加到EC2的IAM角色。但是,这也将修改使用此IAM角色的其他EC2实例的权限。

可以采用调用replace-iam-instance-profile-association调用替换IAM角色命令, 将当前附加的IAM角色{YourNewRole}更换为另一个IAM角色{YourReplacementRole}(例如:EC2role2),而不终止您的EC2实例:

步骤:

1.  创建新的IAM实例配置文件{YourReplacementRole-Instance-Profile}指向新的IAM角色{YourReplacementRole},例如EC2Role。创建命令参考上节内容。

2.  获取现有EC2实例IAM附加信息(记录AssociationId)。在命令行中执行以下命令:

$aws ec2 describe-iam-instance-profile-associations

使用过滤条件和控制查询输出内容,获取指定EC2实例的

$aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Values=i-79dxxxx --query

    'IamInstanceProfileAssociations[*].{InstanceId:InstanceId,AssociationId:AssociationId}' --output table

3.  更换IAM角色。在命令行中执行以下命令:

$aws ec2 replace-iam-instance-profile-association --association-id {YourCurrentAssociationId}

    --iam-instance-profile Name={YourReplacementRole-Instance-Profile}

4.  根据AssociationId的值看出,IAM角色的更改已生效。打开AWS EC2控制台,查看实例的描述信息:

四、移除附加到Amazon EC2的IAM角色

在实际使用过程中,您的EC2可能不再需要通过角色使用AWS资源。这时候您可以选择移除附加在EC2上的IAM角色。

可以采用调用disassociate-iam-instance-profile调用移除IAM角色命令:

步骤:

1.  获取现有EC2实例IAM附加信息(记录AssociationId)。获取IAM信息命令参考上一节所述

2.  移除IAM角色。在命令行中执行以下命令:

$aws ec2 disassociate-iam-instance-profile --association-id {YourCurrentAssociationId }

3.  根据第二次查询现有EC2实例IAM附加信息为空可以看出,当前实例的IAM角色已被移除。

而在上述所有操作的过程中,均未影响EC2的运行状态。

总结:

做为安全最佳实践,让我们现在就行动起来,将所有需要使用AWS资源的Amazon EC2上添加对应的角色。

参考

[1]New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI

[2]AWS命令行参考手册

[3]Demo脚本下载

 

作者介绍:

王元恺

AWS实习解决方案架构师,上海交通大学学生,有数年C++程序开发以及一年PHP前后端开发经验,同时致力于AWS云服务在国内的应用和推广。熟悉网站架设与网络应用开发,对于TCP/IP及网络协议有自己的理解和实践经验。

陈琳涛

AWS解决方案架构师。拥有超过15年的IT行业以及软件开发领域的工作经验。2000年投身互联网大潮,创办过自己的公司。长期从事网络相关研发和管理工作,热爱DevOps实践。随后,投身游戏行业,参与多个项目的研发,运维,上线工作。致力于使用云计算来帮助更多的创业者迈向成功。

敬请期待——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 Elastic GPU平台上得到认证感到振奋,其将帮助我们的客户推动边界设计与工程技术创新。

新的认证程序

为了帮助软件供应商与开发者确保自身应用程序充分发挥Elastic GPU及其它基于GPU方案的全部潜能,我们今天启动了AWS Graphics Certification Program(AWS图形认证程序)。该程序旨在提供信用认证及工具选项,帮助客户以自动化方式快速在各类受支持的实例与GPU类型组合之上进行应用程序测试。

敬请期待

一如既往,我们将在这一服务正式上线后及时发布更多细节信息,敬请期待!

原文链接:https://aws.amazon.com/cn/blogs/aws/in-the-work-amazon-ec2-elastic-gpus/

 

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

众所周知,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/小时,好,准备举牌了!

一个小时……两个小时……小编的请求没被接受,此时的请求状态是Open,处于等待执行状态。因为目前的市场价格是$0.160,而小编出的最高价格$0.155低于目前的现货价格。

两个小时后,市场价格降到$0.155啦。嗯,机会来了。小编暗喜。高兴的有点儿早哎,这个时候,只能说有机会,但不能肯定这个实例一定被小编买到。果真,被隔壁老王抢了机会…… 继续等待。

再等等,一个小时后,现货价格降到$0.150。这时候低于小编的最高出价,请求生效,实例立刻启起来,第一个小时的价格$0.150 。

又两个小时过去了……市场价格涨到$0.152,但这个价格仍然低于小编的最高价。现在需要按照新的市场价格$0.152付费。

一个小时后,市场价格涨到了最高价$0.155,跟上面的情况一样,小编的实例不确定会不会被终止。由根据供求情况决定,假设没有出现意外,继续运行,现在这一小时按照$0.155收费。

又过了十个小时,现货价格涨到$0.158,高于小编出的最高价$0.155,Amazon EC2收回了容量终止了小编的实例。由于小编的竞价型实例在运行小时的中间被Amazon EC2中断,则小编无需为中断的不足 1 个小时部分付费。 当然了,如果是小编在实例运行小时的中间主动中断了竞价型实例,则需要为该小时付费。

现在是不是对竞价实例有了一点点了解?这里讲到的只是其中小小一部分啦,更多精彩的内容,请参看以下文档。小编最想说的是,不管是按需、预留还是竞价实例,每一种都有自己的优势,选择最适合的,灵活地为您的应用程序选择适当的价格组合,更好的优化成本才是目的。

相关参考链接:

https://aws.amazon.com/cn/ec2/spot/

http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/using-spot-instances.html

 

作者介绍:

郭雯,亚马逊AWS CS Concierge专员,负责AWS企业级支持服务客户的成本、账单和帐户等非技术问题的解答。

 

开发者预览版——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硬件开发工具包

在了解了F1实例之后,我的第一个问题是如何处理FPGA、CPU以及主内存之间的接口。F1硬件开发工具包(简称HDK)当中包含多款预配置I/O接口及示例应用,适用于包括主机到FPGA、FPGA到内存以及FPGA到FPGA等的多种通信方法。其还提供编译脚本、参考示例以及一套现场调试工具。这套工具包可供F1开发者预览版的各位用户随意使用。

总结评述

总体来讲,F1实例、云开发工具与相关功能的结合共同实现了独特且强大的FPGA型应用方案。FPGA模式的强大性能及灵活性如今已经可供每位AWS用户使用; 可以肯定,这将激发出前所未有的应用方式与企业业务实现途径。

预览版现已上线!

正如之前提到,全新 F1实例现已在美国东部(北弗吉尼亚州)区域推出开发者预览版(我们还将在2017年年初将该实例的正式版本推向其它服务区)。如果大家此前拥有FPGA编程经验并对F1实例很感兴趣,请访问:

https://aws.amazon.com/ec2/instance-types/f1/

马上报名加入。

-Jeff

原文链接:

https://aws.amazon.com/cn/blogs/aws/developer-preview-ec2-instances-f1-with-programmable-hardware/