亚马逊AWS官方博客

Tag: 大咖专栏

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