AWS云服务指南:适合工作的工具
以下是云的最常见用途,以及需要使用哪些Amazon Web Services组件。
云服务正从最初的“我们正在用它,因为每个人都是这样”的状态转移到更加谨慎、有计划的迁移,IT部门对他们的需求做了仔细的评估,并决定什么迁移到云中,以及什么将继续留下。
到达云端需要一些艰难的教训。IDG的一项研究发现,多达40%的工作负载从云端移出并返回到本地环境。这是因为公司错误地认为他们可以迁移到云端并继续像他们在本地环境中那样运维,而事实并非如此。
定义云的一个元素是它的弹性。它的价值在于突发容量,使用户能够在短时间内快速增加计算能力或服务访问权限,然后能够将其关闭,并在完成后不再为其付费。但是有哪些云服务可以利用这些优势?
为了简化这个过程,我编制了一个云的最常见用途列表以及需要的Amazon Web Services组件。AWS当然是当今最流行的云平台。
默认情况下,所有这些服务都假定你将使用EC2,S3和Amazon Data Transfer(亚马逊数据传输)。它们构成了每个人使用的基本核心,然后构建。
用于DevOps,软件开发和测试的AWS服务
开发人员发现很容易启动一个云主机实例;在线进行开发,编译和测试;完成后关闭云主机。挑战在于跟踪使用情况并在不使用时将其关闭。
你将从基础开始:AWS Developer Tools(AWS开发者工具)。这套四项服务可让你定期构建和提供应用更新。这四项服务是:
·AWS CodeCommit,用于将代码存储在私有Git存储库中
·AWS CodePipeline,用于持续集成和交付
·AWS CodeBuild,用于构建和测试代码
·AWS CodeDeploy,用于自动执行代码部署
使用开发人员工具构建的应用程序可以在AWS或本地运行。
对于特殊情况,还有其他一些与代码相关的服务:
·Amazon Elastic Container Service(ECS)是一种高度可扩展的高性能容器管理服务,支持在实例中运行Docker容器。
·如果正在尝试无服务器计算,AWS Lambda允许运行代码而无需配置或管理服务器。它几乎支持任何类型的应用程序或后端服务,无需管理。
·两个服务支持基础架构即代码(IAC)配置。IAC是一个通过代码自动构建,管理和配置虚拟机等系统的过程,而不是通过灵活性较低的脚本或手动过程。这就是为什么基础架构即代码有时被称为可编程基础设施。
接下来是管理层:
·AWS CloudFormation为开发人员和系统管理员提供模板,以创建和管理相关AWS资源的集合,根据需要进行配置和更新。
·AWS OpsWorks是一种配置管理服务,它使用Chef,一种将服务器配置视为代码的自动化平台。应用程序部署在EC2实例或本地环境中。
所有这些都可以构建在AWS网络服务之上,以复制你自己的基础架构。Amazon Virtual Private Cloud(VPC)允许在已定义的虚拟网络中启动AWS,因此,如果你要构建本地应用程序,它可能类似于你自己的基础架构。
最后,为避免计费突增,还有AWS CloudWatch,它提供有关数据传输,磁盘使用和CPU利用率的指标。你可以在超过特定阈值时设置警报,以控制每月帐单。
AWS用于长期归档和灾难恢复的服务
大多数公司都会在内部进行备份和长期归档,但如果数据中心出现火灾,可以保留备份,但会发生什么?异地备份是最安全的措施,当然可以使用AWS进行长期备份和灾难恢复。
AWS的主要备份服务是Glacier,亚马逊承诺99.999999999%的可用性以及完全符合法规要求。还可以对数据运行分析。存储数据费用为每月每千兆字节0.004美元。
然而,Glacier被警告,因为一位消费者发现了困难:Glacier意味着保存数据但不能检索过多数据。该客户了解到,只能免费获取总存储空间的5%。之后它会花费--并且快速增加。因此,如果希望定期或甚至半定位地检索数据,BackBlaze,Dropbox或OneDrive等备份服务可能更适合。
此外,正如冰川以非常缓慢的速度移动,不要指望立即获取数据。请求最多可能需要一天才能完成。2016年,亚马逊增加了新的选项,以加快检索速度。对于存储了100TB或更多数据的用户,可以加快检索,费用为每千兆字节0.03美元和每个请求0.01美元,这比标准成本0.01美元/千兆字节和0.030美元/1,000请求更高。
对于灾难恢复,你可以使用各种AWS部件。
首先,你必须选择存储数据的数据中心区域,原因有很多,例如符合存储要求和管理延迟。
从那里可以使用Amazon Simple Storage Service(S3),Glacier,AWS Elastic Block Storage创建数据卷快照,AWS Import/Export(Snowball)和AWS Storage Gateway,以将本地软件设备与基于云的存储连接起来。所有这些都是服务,但Snowball是一个明确的离线解决方案。
将数TB的数据传输到亚马逊的数据中心可能会非常昂贵,因此亚马逊会向你的设施发送坚固耐用的Snowball设备,以便连接到你的网络并传输大量数据。你将其发送回亚马逊,并将其添加到你的存储帐户。如果你有很多数据,那就是Snowmobile,一个带有45英尺集装箱的18轮车,可以运送高达100 PB的数据。
用于分析的AWS服务
AWS有特定类型分析的绝佳资源。如果你希望从云资源中收集洞察力--也就是从云和互联网收集的数据--它运作良好。但是,如果你希望将数据仓库的内容发送到云进行处理并将结果发回,则不建议使用AWS,因为成本会暴涨。但是,如果需要这些功能,亚马逊将支持此类处理。
亚马逊拥有一套全面的分析工具,从Athena开始,用于分析存储在S3实例中的数据,用于Hadoop的EMR,用于业务分析的QuickSight,用于PB级数据仓库的Redshift,用于在数据存储上执行ETL任务的Glue,以及数据管道安全地移动数据。最近,它将AWS IoT Analytics添加到IoT设备收集的物联网传感器和其他数据的菜单中。
Athena是主要的分析服务,运行在S3上的数据。它支持各种数据格式,包括ORC,JSON,CSV和Parquet。可以使用Apache Parquet将数据转换为柱状格式。Athena使用开源查询引擎Presto作为其SQL查询引擎。
对于商业智能,AWS的重点是Redshift。它是一个大规模并行,面向列的数据库,部署为一个集群,用于大规模并行处理。(甚至无法部署Redshift的单个节点。)它专为OLAP样式的工作负载而设计,例如数据仓库,分析和ETL。
Redshift适用于更高级的数据仓库用户。对于客户数据的可视化,QuickSight是一种BI服务。它使用存储在任何Hadoop存储库,Amazon Redshift数据仓库或某些第三方源(如Salesforce.com和Oracle)中的数据。
针对“弹出式”应用和网站的AWS服务
像电影推广或产品发布这样的短期营销计划意味着一个专门的网站,它会在很短的时间内看到很多活动,然后就会消亡。AWS不是通过设置你自己的网站来满足这些短期需求,也不是使用GoDaddy或1and1等服务,而是提供各种可扩展的Web托管服务。
简单网站托管服务是一个单一的Web服务器,具有内容管理系统(CMS),如WordPress,电子商务应用程序(如Magento)或开发堆栈(如LAMP)。这些最适合频繁更改内容的中低流量站点,因为它不会扩展到超过五台服务器。
然后是Lightsail,它专为不需要像PHP或ASP.Net这样的服务器端脚本的站点而设计,但需要偶尔扩展以获得高流量。它提供存储和数据管理以及静态IP和DNS注册。
最后,还有Enterprise Web Hosting,它为至少两个数据中心提供多个服务器,具有大量容量,具有负载平衡,高CPU利用率和大量应用程序。拟将使用各种服务,尤其是CloudFront,内容交付网络以及用于处理在线销售的AWS电子商务应用程序。
用于应用迁移的AWS服务
这是AWS的主要卖点之一。你可以将它们迁移到AWS并在云中运行,而无需在本地系统上运行应用程序,从而无需维护大型数据中心。
但并非每个应用程序都适用于云迁移:
·例如,需要全天候全天候运行的应用程序不适合云计算,云计算的一切都是计量的,你需要为每个CPU时钟周期付费。
·大量数据必须在云和网络之间来回移动的应用程序不支持云,因为带宽使用量也是计量的。
·可能存在合规性问题。例如,虽然亚马逊及其竞争对手在HIPAA医疗记录合规方面取得了很大进展,但有些事情必须保持在公司数据中心的范围内。
在有意义的地方,迁移到云需要非常仔细地规划和评估哪些应用可以并且应该迁移到云。一旦清除了相当大的障碍,就可以使用最近添加的名为Server Migration Service的AWS服务来帮助迁移。它附带一个连接器,用于分析虚拟化服务器环境并收集有关您正在使用的实例的信息。
从那里,VM被复制为存储在AWS Elastic Block Store(EBS)服务中的亚马逊机器映像(AMI)。然后可以在EC2实例上移动和运行AMI。此时,您在AWS上拥有本地虚拟实例的副本。
你也可以像迁移到网络上的其他数据库一样从MySQL迁移到Amazon RDS。对于更多分析工作负载(例如OLAP),其供应商提供的工具将帮助您从内部部署迁移到EC2数据库AMI,就像将数据从一台计算机迁移到另一台计算机时一样。
原标题:AWS cloud services guide:The right tools for the job