【每周快报】0206-0212 AWS 服务更新
前言
AWS 于二月初终于发布了 AWS CLI v2 了!本篇文章将会介绍此版本的几项新功能,希望能为用户带来更棒的体验。另外也会和大家分享 AWS CloudFormation StackSets 的新功能,现在可以透过 AWS Organizations 实现跨区域自动部署了。最后我们将详细介绍这周各项服务功能的增强,包含了 Amazon ECS, Amazon Lex Slot, Amazon RDS, AWS RoboMaker… 等多项服务的改动。
一、新服务
AWS Command Line v2
经过了一段时间的 Developer preview,AWS CLI v2 正式 GA (Generally Available) 发布!
AWS CLI v2 透过全新的 Installers 进行安装,取代 Linux 原先需要透过 pip install --upgrade awscli
的方式。 另外也支持透过 AWS Single Sign-On (SSO) 方式取得 Configuration、进而改善 v1 要宣告不同 Profiles 来配置多个身份操作权限,在权限切换、配置上更为便捷。
另外也基于优化用户体验,在 CLI v2 加入了 Auto-completion
自动完成带入参数、--cli-auto-prompt
一步步提示用户输入参数、wizard
像是 AWS Console 般带领用户创建服务等新的参数,可以带入到不同的服务、 CLI 动作中。
二、服务的新功能
AWS CloudFormation StackSets 透过 AWS Organizations 实现跨区域、账号的自动部署
透过 StackSets,用户现在可以经由 AWS Organizations,将一个 Template 同时部署在 Organizations 底下的多个帐户,甚至可以跨区域部署!
StackSets 透过在 Target Account 里创建 Stack instances 作为在各帐户、各 Region 中部署的执行单位,当创建、更新、删除 Stack 时,Stack instances 将会同步执行操作。此外,用户也可以更改 Stack set operation options,帮助控制部署的时间及 Stack 数量。
- Maximum concurrent accounts:设定 CloudFormation 一次部署 Stack 的数量。例如:假设需要在 10 个帐户中的 2 个 Region 中部署,设定百分之五十,那 CloudFormation 会在一个 Region 一次部署 5 个帐户。
- Failure tolerance:设定部署失败的 Stack 数量达到设定百分比时,停止继续部署,以帮助更快速找到问题并实时停止,避免浪费资源。
在开始使用之前,用户需要先登入 Master Account,启用 AWS CloudFormation 与 AWS Organizations 之间的 trusted access。
三、功能的增强或改动
Amazon ECS Task Sets 支持 Tagging
ECS Task Sets 为 ECS Service 在部属时可以指定不同 Revision,在 Service 层级下做版本切换、改善部署的便利性。 在 Task Set 当中可以宣告 Task Desire Count、Capacity Provider、Task Definition、ELB 配置、Scale 逻辑… 等有关于 ECS Service 的设定细节。
现在开始支持用户为 Task Set 打上 Tag 卷标,透过自定义的 Meta data 加以管理、使用,也同时可以针对 Task Set 做 Tag-based 的存取控管、搜寻等。
Amazon ECS 支持透过 AWS CodeDeploy 实现 Canary 部署
原先 ECS 仅支持做 In-place 的方式,或是透过 CodeDeploy 切换 ALB 下面 Target groups 的方式做 Blue/Green 部署策略。若想要实作出 Canary 或是 Linear rolling update 的方式,则需要透过 Lambda 搭配 DNS Record 做权重分流方式切换版本。
在去年 11 月 ALB 支持了在同一个 Listener 底下可以做不同 Target groups 之间的 Weight routing,这个大大的改善了原先需要多个 ALB 切换 DNS 的部署方式,仅需要透过 CloudWatch Event 搭配 Lambda 的方式调整 ALB Weight 权重比,便能实现在 Endpoint 不变的情况下实作出 Canary 部署效果。
现在 ECS 新增 CodeDeploy 做部署动作的 Deployment Configuration。以原先实作 Blue/Green 的方式,透过修改 CodeDeploy 的部署配置,在部署阶段 CodeDeploy 会自动地切换 ALB Target groups 之间的 Weight 权重比,进而实现 Canary / Linear 部署策略;大大降低了用户要自己透过 CloudWatch Event & Alarm 搭配 Lambda 实现部署、Rollback 的功夫!
🥳 CodeDeploy now does canary deployments to ECS! https://t.co/O72skjzJUD
I'm super excited about this feature, so I thought I'd do a little visual journey about how these deployments work. Thread! 👇 👇 pic.twitter.com/VYGZUqaWRD
— Clare Liguori (@clare_liguori) February 6, 2020
参考来源至:AWS CodeDeploy now supports linear and canary deployments for Amazon ECS
Amazon Lex Slot 类别支持 AlphaNumeric 型态
过往在使用 自定义的 Slot 时,用户都需耗费大量时间建立大量样本。而 AlphaNumeric 型态的 Slot 类别可以辨识由字母与数字所组成的字符串,并透过正规表示式定义 Slot 并限制用户输入的格式。如车牌 ABD8899
则可用 [A-Z]{3}[0-9]{4}
表示车牌前三码必须为英文,后三码须为数字。此功能可以加速用户在设定自定义 Slot 的开发时间,并确保用户输入正确格式。
参考来源至:Amazon Lex announces support for Alphanumeric slot type
AWS CodeBuild 新增支持 Amazon EFS
用户现在可以在 CodeBuild Project 中,指定一个或多个 EFS filesystem ID。透过在 buildspec 设定,CodeBuild 在建置的过程中,会确保该指定的 EFS filesystem 已成功挂载且可被存取。
Amazon Personalize 现在可使用更多项目属性(item attributes)来提高个人化推荐的准确性
原先用户在建构 ML 模型时,最多使用 5 个项目属性作为分析的依据。现在此限制数量提升至 50 个,用户可提供有关商品的更多信息,例如:类别、品牌、价格、尺寸、发布年份等,以提高推荐的准确性。
参考来源至:Amazon Personalize can now use 10X more item attributes to improve relevance of recommendations
Amazon RDS Data API 现在支持 AWS PrivateLink
利用 RDS Data API,当用户建立与 Aurora Serverless DB cluster 的联机时,无需保持长时间的联机,而是透过安全的 HTTP endpoints 对 DB 发出 SQL 指令,进而减少管理联机的时间。此次更新之后,用户可以在呼叫 RDS Data API 时,使用 AWS PrivateLink 作为联机的方式,不需要经过因特网,以提升数据存取的安全性及稳定度。
AWS RoboMaker 新增批处理 API
使用 RoboMaker 的用户常常会同时仿真多个 Simulate Job 来测试仿真环境,但时常会碰到 RoboMaker 单次同时仿真的 Service Limit,导致无法有效率的测试。 此次更新的Batch API 则可以有效的解决此问题,当用户 透过此 API 仿真多个 Simulate Job 后,会进入队列中等候,并以 Service Limit 为上限进行批处理,当有某个 Simulate Job 完成后, 便会自动启动下一个 Simulate Job,让用户能够不需要浪费过多的时间在等待上。
参考来源至:AWS RoboMaker now supports creating simulation jobs in batch with a single API call
AWS AppSync 支持 AWS X-Ray 及 GraphQL
现在你可以在 AppSync 上启用 X-Ray,利用 X-Ray 追踪在 AppSync 执行的请求,且可以透过 GraphQL API,进而启用 X-Ray tracing,例如我们执行下面的 GraphQL query:
query getPost {
getPost(id: "1") {
id
title
}
}
透过 getPost
query 可以看到在 X-Ray 中 DynamoDB data source 里 API 延迟的信息:
进而帮助用户分析、解决在后端服务中的问题和错误。
参考来源至:AWS AppSync releases integration with AWS X-Ray and GraphQL Info object support
Amazon EventBridge 新增数字内容过滤
Amazon EventBridge 原先就有支持针对事件内容进行过滤,用户可以设置规则,针对不同的条件与情况做筛选,倘若规则不符合便不会将事件传送至后端,以减少后端流量与成本。而 此次内容过滤则针对“数字内容” 进行过滤,例如:某个值是否存在或介于某个范围内等相关比较,大幅的提高了规则的灵活性。
AWS Elemental MediaConnect 输出数量限制更动
透过 AWS Elemental MediaConnect 将影片发送到的指定的地址、protocol 和 port,原先每个 flow 输出的数量上限为 20,此次更新后将数量上限提升到 50,提升直播的便利性。
參考來源至:Up to 50 Outputs per Flow Now Supported in AWS Elemental MediaConnect
Amazon Elasticsearch Service 增加权限控制的颗粒度
针对许多不同的使用场景,时常会出现不同职位(权限)的人需要查阅同一个 Board 的情况,如何让这些人仅阅读他们权限范围内的东西是一件非常头痛的事情。此次更新后,将权限控管颗粒度缩小,能够针对索引(index)、文件、与字段进行设定只读。
参考来源至:Configure fine-grained data access with Amazon Elasticsearch Service
Amazon Cognito User Pools 支持设定 case insensitivity
Amazon Cognito User Pools 现在建立 User Pools 时可以设定 case insensitivity,让使用在登入时可避免因大小写输错而无法登入的问题。目前新建的 User Pools 会默认为 case insensitivity,而用户可透过 Console 调整为 case sensitive。至于已建立的 Users Pool 则继续维持 case sensitive,而透过 Cognito API 所建立的 Users Pool 默认亦为 case sensitive。
参考来源至:Amazon Cognito User Pools service now supports case insensitivity for user aliases
Amazon RDS for Oracle 导入 FIPS 140-2 协议
现在可以透过 Oracle SSL 设定去启用 FIPS 140-2,将其中的设定的参数 FIPS.SSLFIPS_140
设定为 TRUE
,就可以启用 FIPS 标准,让 Client 端及 Oracle 数据库之间的数据进行加密,不但可以提升安全性,且符合部分国家的规范。
Tag:AlphaNumeric, Amazon Cognito User Pools, Amazon ECS Task Sets, Amazon EFS, Amazon Elasticsearch Service, Amazon EventBridge, Amazon Lex Slot, Amazon Personalize, Amazon RDS Data API, Amazon RDS for Oracle, API, AWS AppSync, AWS CloudFormation StackSets, AWS CodeBuild, AWS CodeDeploy, AWS Command Line v2, AWS Elemental MediaConnect, AWS Organizations, AWS PrivateLink, AWS RoboMaker, AWS X-Ray, Canary, case insensitivity, FIPS 140-2, GraphQL, Tagging