亚马逊AWS官方博客

Category: 大咖专栏

Oracle数据库备份上云

数据库作为一种常见的应用系统架构组件,存储着跟业务或系统相关的各种数据。基于数据库所存储的数据的价值,用户会实施不同的方案来保障数据库以及数据的可用性。本文将详细介绍如何通过Oracle Secure Backup(OSB) Cloud Module(以下简称OSB Cloud Module)来对Oracle数据库进行备份,并将备份内容安全可靠的存储在云端。

Read More

走近Fargate,动手配置属于自己的Fargate集群

Fargate简介 就在大约三年前,AWS宣布Amazon Elastic Container Service(Amazon ECS)在AWS上大规模运行和管理容器。 利用Amazon ECS,您可以高规模和高可用性地运行您的工作负载,而无需担心运行自己的集群管理和容器编排软件。 现在,AWS宣布推出AWS Fargate ,使您能够将容器作为基本的计算单元,而无需管理底层实例。 借助Fargate,您不需要在集群中配置,部署或扩展虚拟机来运行容器。 今天,Fargate可以与Amazon ECS一起使用,计划在未来支持Kubernetes(Amazon EKS)的亚马逊弹性容器服务。 Fargate具有灵活的配置选项,因此您可以紧密匹配您的应用程序需求和精确的每秒计费。 无需管理任何EC2实例 基于任务的源生API 计费到CPU和Memory级别,按照Task使用的这些资源按秒计费 Fargate优势 无需管理群集 使用 AWS Fargate,您只需考虑容器,以便能够集中精力构建和运行应用程序。AWS Fargate 消除了管理 Amazon EC2 实例群集的需要。您不必再选择实例类型、管理群集调度和优化群集利用率。使用 Fargate,所有这些麻烦都将不复存在。 无缝扩展 借助 Fargate,您可以轻松扩展应用程序。您不必再担心是否为容器应用程序预置了足够多的计算资源的问题。在您指定应用程序要求 (例如 CPU、内存等) 后,AWS Fargate 会以高度可用的方式管理运行您的容器所需的所有扩展和基础设施。您不再需要决定何时扩展群集,也不需要将其打包即可实现最佳利用率。使用 Fargate,您可以在几秒钟内启动数以万计的容器,并轻松扩展以运行最重要的关键任务型应用程序。 与 AMAZON ECS 和 EKS 集成 AWS Fargate 与 Amazon ECS 无缝集成。您只需按照定义 Amazon ECS 的方式定义您的应用程序。您可以将应用程序打包到任务定义中,指定所需的 CPU […]

Read More

如何使用AWS CodePipeline,AWS CodeBuild与AWS CloudFormation实现Amazon ECS上的持续集成持续部署解决方案

作者:郭威 1. 前述 通过本文章,您将了解如何通过AWS CodePipeline,AWS CodeBuild,AWS CloudFormation 来实现基于Amazon ECS的持续集成持续部署方案。 开发人员在GitHub中提交的新版本代码,会自动触发代码获取,打包镜像,上传镜像仓库,更新新版本容器服务,注册到负载均衡器等操作。 方案中会涉及使用如下组件: GitHub:示例使用的源,一个提交到GitHub上的PHP示例网站。AWS CodePipeline支持GitHub, AWS CodeCommit服务,或者S3作为源。此次实例使用的Demo软件工程可以从以下链接Fork: https://github.com/awslabs/ecs-demo-php-simple-app Docker:作为发布服务使用的容器。演示方案的Build阶段会使用AWS CodeBuild托管的ubuntu/docker 1.12.1基础镜像。 Amazon EC2:作为ECS的容器宿主机集群。 Amazon VPC:服务所在的网络。 Amazon ECS:AWS托管的容器编排服务。文档链接 http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/Welcome.html Amazon ECR:AWS 托管的容器镜像仓库。文档链接 http://docs.aws.amazon.com/zh_cn/AmazonECR/latest/userguide/what-is-ecr.html AWS CodePipeline:AWS 托管的持续集成持续交付服务,可以快速可靠的更新应用程序和服务,集成支持GitHub,Jenkins等主流开源工具。文档链接 http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/welcome.html AWS CodeBuild:AWS 托管的构建服务,用于打包代码生成可部署的软件包。文档链接 http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/welcome.html AWS CloudFormation:批量创建和管理AWS资源的自动化脚本。文档链接 http://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/Welcome.html 2.方案架构 流程如下: 开发者将一个新版本的代码工程提交到GitHub Pipeline的Source阶段,检测到指定GitHub的repo有新版本的更新,从GitHub上拉取代码工程,开启已设定好的CICD Pipeline Pipeline的Build阶段,AWS CodeBuild将新版本的代码工程打包为Docker镜像 AWS CodeBuild将打包好的镜像推送到Amazon ECR Pipeline的Deploy阶段,AWS CodePipeline触发AWS CloudFormation,其定义了Amazon ECS的Task […]

Read More

AWS之旅:混合云构建及常见的应用场景

作者:袁春华,AWS解决方案架构师 混合云融合了公有云和私有云,是企业上云的中间之旅,也是云计算发展过程中的一种模式和阶段。出于如信息保密、行业合规、市场细分等因素或考虑,有些企业更愿意将数据存放在本地数据中心或私有云中,但是同时又希望可以获得公有云的计算资源、存储资源。在这种情况下,混合云在企业上云之初被广泛的采用。 1     构建混合云的关键技术点 1.1   网络连接 第一点,公有云具备用户自定义网络的能力。这里自定义网络泛指云上的私有网络,Amazon VPC允许企业用户在AWS云上自定义逻辑隔离的专用网络的能力,包括允许用户可以自行划分子网、配置路由,设置公网、VPN网关等基础能力。 第二点,多样、稳定的网络接入能力。混合云最突出的特点就是连接,连接方式主要分为两种:公网接入和专线接入。 为保护用户的信息安全,公网接入在Internet上的流量通常需要经过IPsec VPN加密,AWS提供了托管VPN服务和用户自建VPN两种方式,如果采用用户自建方式,一般小型VPN网关(200Mbps以下)可以通过虚拟软件VPN网关实现,中或大型VPN网关(300Mbps及以上)可通过硬件VPN网关设备实现。VPN部署一般半天即可完成,可以快速满足企业用户需求。 AWS Direct Connect(简称DX专线)为企业上云提供了专线接入能力,能够全时段、全方位的保障用户数据传输隔离加密,并保证可用网络带宽,用户无需担心容量太大而无法承载的问题。 示图1:AWS DX专线与VPN混合组网示意图 1.2   安全与监控 混合云在网络层面上将私有云和公有云进行了连接,如果发生网络故障或者攻击,需要有能力保障网络间故障不会相互影响,将攻击或者故障限制在一定范围之内。云上的网络环境需要具备灵活、易配置的网络安全访问控制能力。Amazon VPC提供了有状态的EC2实例级别的网络防火墙功能(安全组),还则提供了无状态的子网级别的网络访问控制(网络ACL)。 监控方面,Amazon VPC 提供了流日志(flow log)功能,可以利用此项功能来捕获传入和传出的网络IP流量信息。流日志数据使用 Amazon CloudWatch Logs 存储,创建流日志后,用户可以在 Amazon CloudWatch Logs 中监控和查看其VPC网络的流量传入和传出状态,并可通过CloudWatch预设告警策略以及时反馈网络异常。VPC流日志还可以帮助用户排查网络故障等问题,比如流量为什么没有进入到EC2实例的原因。另外,针对VPC流日志的分析,可以帮助检查AWS云上的网络安全设置,消除网络安全漏洞。 1.3   统一服务,混合云管理平台 云管理平台的定义是Gartner提出来的,总结起来就是两块,第一是管理,管理公有云、私有云,形成混合云。第二是自服务,镜像划分,计量与计费,以及基于策略的负载优化。云管理平台最终的目标是应用在云平台上运行时取得最优化的效果。 企业用户构建混合云平台之后,首先需要解决的就是服务门户的统一,资源状态监控界面的统一,在一个平台上实现本地数据中心(或私有云)和公有云资源的统一申请、统一审批、统一监控、统一计费。这样能够大幅度降低用户跨平台切换带来的复杂运维工作量,让用户跨平台的资源使用与监控更加方便。 示图2:混合云管理平台(CMP)功能示例图 2     常见的混合云应用场景 2.1   利用AWS公有云应对业务的爆发式增长 大多数互联网业务呈指数型增长,很难预测基础设施的储备量。一般在业务成长初期很长一段时间内,小规模的物理机托管可以满足用户需求。但随着市场推广活动展开,业务规模爆发增长,原物理托管机房可部署机位有限,只能选择公有云作为弹性手段,快速部署业务,满足用户需求。 今天已经有越来越多的企业用户将他们的互联网业务系统,诸如电子商务系统、Web网站、移动端产品和信息订阅服务系统迁移到AWS云上。应对业务规模爆发增长的用户需求,AWS云服务采用多种方式确保应用系统的可靠性和稳定性,作为最基础的云服务,Amazon EC2提供了大小可调的计算容量,用户可以根据自己的实际需求,完全控制所需的计算资源。配合AWS的Auto Scaling功能,用户可以按照事先设定的条件自动扩展Amazon EC2容量,确保所使用的Amazon EC2数量在需求峰值期间实现无缝增长以保持性能,同时也可以在需求平淡期间自动减少Amazon EC2数量以降低成本。此外,Elastic Load Balancing可以在多个Amazon EC2实例之间自动分配应用程序的访问流量,也可以检测出系统中不健康的实例并自动更改路由,将应用的访问流量导向健康的实例。通过不同功能云服务之间的组合,AWS云平台可以确保应用系统的高可靠性和稳定性。 示图3:混合云架构下的电商平台三层系统架构图 与早期基于传统数据中心的系统相比,依托AWS云平台的新系统在稳定性、可靠性和响应速度等方面都有了极大的提升,同时大幅度降低了固定资产投资(CAPEX)和运营成本(OPEX)。在传统数据中心模式下,用一台服务器的寿命大约为5年来计算,购入一台与Amazon EC2 c3.4xlarge机型(16 […]

Read More

Amazon IoT 安卓SDK 中国区实践

作者:任庆杰,AWS解决方案架构师。 简介 物联网(IOT)是现在非常火热的一个概念。那么怎么样利用AWS提供的IoT服务,快速在自己的安卓智能设备上搭建起IoT的消息推送和订阅呢? 本文将分两部分为你解读: 1)如何动态生成和绑定设备证书 2)如何利用MQTT协议接入Amazon IoT 平台 服务简介 AWS IoT平台 AWS IoT 是一种托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。AWS IoT 可以支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。借助 AWS IoT,您的应用程序可以随时跟踪您的所有设备并与其通信,即使这些设备未处于连接状态也不例外。 Amazon Cognito Cognito Identity 可让您轻松实现联合身份,您可以让用户通过Amazon, OpenID, SAML或者自定义的身份认证系统进行认证。匿名或认证登录后,IoT设备被赋予临时性受限权限凭证,可以利用此凭证访问 AWS 资源。 过程介绍 1.  获取连接IoT的权限证书 1)通过安装在安卓设备上的SDK连接Amazon Cognito,认证用户(本文示例将采用匿名模式),并且获取临时权限的Access Key和Secret Key。 2)使用临时权限向AWS IoT发起创建证书请求,激活证书并且下载。 3)将证书加密存储为Keystore在设备上,用以认证之后的IoT请求。Android Keystore保护你存储在设备上的证书,让它不容易被它人破解和提取。 2.  通过MQTT协议连接AWS IoT,并订阅和推送消息。 1)连接设备与AWS IoT,使用Keystore来通过认证 2)与AWS IoT的设备网关交互来订阅和推送消息 3)通过规则引擎还可以过滤消息,并调度AWS各种服务 操作指南 1.  配置环境 1)下载并安装Android Studio 2)下载样例代码https://github.com/awslabs/aws-sdk-android-samples/ 3)在Android […]

Read More

Amazon Cognito集成Login with Amazon详解

作者:薛峰,亚马逊AWS解决方案架构师 背景介绍 Amazon Cognito可以为我们移动开发中的终端用户维护唯一标识符,跨不设备和平台维护用户登录的一致。Cognito还可以为我们的应用提供限制权限的临时凭据来访问 AWS的资源。 使用Amazon Cognito我们的应用可以支持未验证用户,以及使用公开的身份提供方来验证用户,目前支持的身份提供方包括Facebook, Google 和Login with Amazon。 未验证的用户绑定到设备,即通过Cognito客户端SDK在用户使用相同设备时为他们维护唯一标识符。而已验证的用户则可以跨设备维护唯一标识符,即使他们使用iOS和Android这样不同的操作系统。 今天我们通过一个Android开发实例,详细讲解Amazon Cognito 与 Login with Amazon 集成,以针对移动应用程序和 Web 应用程序用户提供联合身份验证。 Login with Amazon 使用Amazon账号登录,可以省去注册账号的繁琐,使用用户已经熟练使用的账号直接登录。借助Amazon.com相同的验证机制,可以轻松享受其健壮的安全性和可扩展性。开发者可以不必自己再构建用户管理系统,而集中精力于自己的产品。Login with Amazon使用业界主流的OAuth 2.0标准,方便更快速地接入开发,也基于此Amazon Cognito也可以方便地接入。 我们使用当前主流的 Android Studio,为了方便调试先使用模拟器进行开发和演示。这些基础工作请大家自行准备好。 注册Login with Amazon 首先需要注册成Amazon开发者,然后到以下网址注册一个应用。 http://login.amazon.com/manageApps 左上角Applications 模块下点击“Register New Application”按钮。Name 和 Description按自己需求填写。 Privacy Notice URL这是在登录时显示给用户的隐私协议页面,生产环境中需要是你的网站的一个页面。这里我们可以使用演示页面的URL https://www.example.com/privacy.html Logo Image 这里是显示给用户的我们的应用图标,该图片会被自动缩小到50 x150像素,所以选择一个适当尺寸的图片上传。点击 save保存即可。 创建成功后,我们到该应用详情页,标题名称右下角有一行形如下面的应用ID: App ID: […]

Read More

如何使用Amazon EC2 Systems Manager自动创建数据一致的EBS快照(Part 2)

作者:王宇 上一期我们讨论了如何在不关机的前提下实现AWS上实例的数据一致性快照问题,传送门:《如何使用Amazon EC2 Systems Manager自动创建数据一致的EBS快照(Part 1)》 在本文的介绍中,我们将共同探索如何利用Amazon EC2 Systems Manager(SSM)和Microsoft VSS (Volume Shadow Copy Service)来创建数据一致的EBS快照。 SSM + VSS数据一致快照的原理 VSS (Volume Shadow Copy Service)是一个Windows操作系统内置的服务,用来协调与VSS兼容的应用程序(如SQL Server、Exchange Server等)的备份工作,如冻结或释放这些应用程序的I/O操作等。 VSS服务能够启动和监督副本拷贝的创建。“副本拷贝”是指一个逻辑卷在某一个时间点上的数据一致快照。比如:“C:”是一个逻辑卷,它与EBS快照不同。创建副本拷贝的步骤包括: 请求方向VSS发出创建副本拷贝的请求。 VSS provider创建并维护副本拷贝。 VSS写入器(writer)保证数据的一致性。写入器负责在VSS provider创建副本拷贝之前固化临时数据并冻结I/O操作,并在VSS provider完成创建后释放I/O操作。通常情况下,会为每一个与VSS兼容的应用程序分配一个独立的写入器(writer)。 我们可以使用Run Command在windows实例中运行一个PowerShell脚本: $EbsSnapshotPsFileName = “C:/tmp/ebsSnapshot.ps1” $EbsSnapshotPs = New-Item -Type File $EbsSnapshotPsFileName -Force Add-Content $EbsSnapshotPs ‘$InstanceID = Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id’ Add-Content $EbsSnapshotPs ‘$AZ = […]

Read More

Amazon S3 深度实践系列之一:S3 CLI深度解析及性能测试

背景 作者在实际的工作当中遇到越来越多关于S3的实践问题,其中被问的最多的也是使用最广泛的工具就是AWS S3 CLI命令行;AWS S3 CLI命令行工具对大文件提供了默认的分段上传下载的能力,同时支持并发上传下载多个文件;AWS S3 CLI 命令行不仅仅提供了高级抽象的cp、sync等操作同时还提供了相对底层的s3api相关的操作以帮助客户应对各种高度定制化的应用场景。 本文通过实验帮助大家更好地理解AWS S3 CLI常用命令的底层原理及在AWS EC2上使用该命令行工具与AMAZON S3交互场景下,影响性能的几个关键要素及几个常见EC2实例类型上的上传下载测试性能情况。 本文是AMAZON S3深度实践系列之一,接着作者会带着大家从AWS CLI探索到Python boto3 S3多线程应用开发实践,再到如何利用前面学到的知识,基于AWS平台利用托管服务构建一个实用的跨区域迁移S3数据的解决方案架构探讨及实践。 基本概念 并发上传vs 分段上传 刚刚使用AWS S3命令行工具的时候,总是混淆分段上传和并发上传的含义;分段上传是指将单个大文件切分成多个小数据块进行上传,而并发上传特指有多个待上传文件或小数据块的情况下,利用多线程同时并发上传多个文件或小数据块。 如下图所示,分段上传首先将文件切分成固定数量的小数据块,再利用多线程并发上传这些小数据块,等 S3收到该文件所有的数据块之后再将它们合并成原始的文件存放在存储桶里。分段上传功能默认会帮你实现并发上传;这样做的好处,显而易见,既可以充分利用网络带宽进行文件处理,同时还可以在网络带宽有限的情况下,减小因网络抖动导致的整个大文件需要重传的问题,即当分段上传中的某个数据块因各种异常没能上传成功时,只需要重新尝试上传该数据块即可。 分段上传vs 断点续传 AWS CLI S3命令行工具默认并没有帮大家实现断点续传的功能,也就是说哪怕我们用cp或sync命令上传一个文件的时候,默认后台会做文件分片进行分段并发上传,但如果由于网络抖动导致其中某些数据块传输失败,那么整个文件又得需要重头开始上传。 但同时我们可以利用 AWS CLI s3api底层接口非常容易地实现断点续传,后面章节我们再展开探讨。 AWS CLI S3 cp命令是如何工作的? AWS S3 cp 命令是最常用的单文件和多文件复制方法,很多人使用过该命令,但大家知道该命令是如何帮我们执行文件复制的吗? 该命令有帮我们自动做分段上传和下载吗? 分段上传切分文件的依据是什么?每个数据块大小是多大? 这么多数据块,有多线程并发上传吗?我们可以指定线程数量吗? 多个文件的上传下载是如何工作的? 下面我们通过实验来观察和研究下这些问题,整个测试环境基于如下Amazon Linux上如下版本的AWS CLI命令行: aws-cli/1.11.132 Python/2.7.12 Linux/4.9.51-10.52.amzn1.x86_64 botocore/1.5.95 AWS […]

Read More

如何使用Amazon Macie 进行安全数据自动分类和用户行为监控

概述 当我们在Amazon S3中存储大量内容时,识别和分类其中潜在敏感数据可能会有点像在一个非常大的干草堆中找绣花针针,整个的过程是非常低效。那么能否有一种工具可以在数据加入到S3后就自动的识别敏感信息并自动进行分类? 同时在我们日常的工作中,访问数据的时间间隔及物理位置相对的固定。如果发生异常的事件,例如原来某个用户一天访问一到两个文件,但如果突然在某天访问超过一百个文件,能否由系统发出告警事件提醒相关人员进行相关检查,确保安全? 本文从如下几部分介绍Amazon Macie服务及主要功能,同时还列出常见使用场景,以及如何配置的简要步骤。希望能给大家带来帮助。 什么是Macie Amazon Macie 是一种支持人工智能技术的安全服务,可以帮助您通过自动发现、分类和保护存储在 AWS 中的敏感数据来防止数据丢失。Amazon Macie 使用机器学习来识别敏感数据 (例如,个人身份信息 [PII] 或知识产权),分配业务价值,提供此数据的存储位置信息及其在组织中的使用方式信息。 Amazon Macie 可持续监控数据访问活动异常,并在检测到未经授权的访问或意外数据泄漏风险时发出警报。 为什么要使用Macie 对现存的海量文件进行自动的分类并且根据不同的分类制定不同的监控策略,一旦发生异常的访问需要得到及时的告警,是每个组织面临的挑战。 Amazon Macie提供了简单高效并且安全的方案,Macie通过使用机器学习来了解存储的内容和用户行为,同时提供可视化界面,展示安全分类,从而使客户能够专注于保护敏感信息,而不是浪费时间手工的处理。 Amazon Macie内置检测个人身份信息(PII)或敏感个人信息(SP)的常见敏感信息的引擎,可以自动识别出S3存储文件是否包含例如个人身份信息(PII)或其他公司财报等敏感信息,在没有Macie之前,这样的工作都需要手工的处理或者使用第三方平台。而现在可使用Macie很容易解决上述问题。 Amazon Macie持续监控数据和账户凭证 。 在发现可疑行为或对实体或第三方应用程序进行未经授权的数据访问时撤销访问或触发密码重置策略,来防范安全威胁。当Amazon Macie发出警报时,您可以使用预先在Amazon CloudWatch设置的规则发送告警,以便迅速采取行动,保护数据。 Macie主要功能 Amazon Macie首先功能分为两部分,一方面是使用自然语言处理(NLP)来理解数据,Macie可以自动对您的S3桶中的数据进行分类。另外一个是使用机器学习理解用户访问数据的行为,同时利用动态分析数据访问模式的预测分析算法,并使用日常访问的用户行为数据不断的训练并优化模型。 Macie 主要功能 自动化处理数据:分析,分类和自动处理数据,从现有的数据和访问日志分析出有规律的历史模式,用户认证数据,用户位置信息及时间信息。 数据安全和监控: 主动监控 日志数据,检测到的异常情况,转发告警信息到CloudWatch 事件或和Lambda以进行后续处理,例如自动修复安全漏洞或者发送邮件通知。 主动预防的数据的丢失,提供即时保护,无需手动干预。 可视化分析:提供存储数据的可视化详细信息。 数据研究与报告:允许用户管理配置报告。 Macie如何运作 在数据分类过程中,Amazon Macie 识别 S3 存储桶中的对象,并将对象内容流式传输到内存中进行分析。 当需要对复杂文件格式进行更深入的分析时,Amazon Macie 将下载对象的完整副本,并在短时间内保存,直到完成对象的全面分析。Amazon Macie […]

Read More