AWS Cloud Essentials
入门指南
简介
当我们开始在云上构建时,往往会不知所措。特别是对于习惯传统本地化部署方式(配置硬件和构建应用程序)的用户而言,可能需要一段时间习惯云原生方法。熟悉云计算和 AWS Cloud 的核心概念会让您在开始云之旅时充满信心。在以下部分中,我们将回答有关云计算的常见问题并探索关于 AWS 构建的最佳实践。
-
什么是云计算?
云计算是通过互联网云服务平台按需提供计算能力、数据库存储、应用程序和其他 IT 资源,采用按使用量付费定价模式。传统方式下,若想构建应用程序,开发人员必须购买、设置和维护物理基础设施与应用程序。而云计算解决了这些痛点。
您可以通过云服务平台快速获取灵活的低成本 IT 资源,然后使用这些资源构建和维护软件和数据库,并创建令客户满意的应用程序。您不需要在硬件上进行大量前期投资,也不需要花费大量时间在繁琐的硬件管理工作上。您可以根据需要访问(几乎是即时访问)任意数量的资源,而且只需为所用资源付费。云计算模型的基础就是以按量付费方式按需提供服务。
云计算的优势
云服务为开发人员提供了更高的灵活性与可扩展性并能加快创新。使用云计算,您可以:
- 按实际使用量付费:使用计算资源才付费,并且只按使用量付费。
- 享受大规模经济效益:AWS 在云中汇集了数十万云用户,可实现更高的规模经济效益,从而提供更低的按使用量付费价格。
- 无需估算容量:如果您在部署应用程序前确定了容量,结果往往会造成昂贵资源的闲置或容量不足。使用云计算,您可以获得任意大小的所需容量,并根据需要扩展或收缩,一切只需几分钟就能完成。
- 提高速度和敏捷性:只需轻点鼠标便可获取 IT 资源,这意味着,您可以将开发人员的资源获取时间从数周缩短到数分钟。这大大减少了实验和开发所需的成本和时间,极大地提高了组织的敏捷性。
- 节省成本:企业可以专注于通过开展项目实现业务差异化,而无需维护数据中心。使用云计算,您可以专注于客户服务,而无需为繁琐的机架、机器堆栈以及物理基础设施供电工作而烦恼。
- 数分钟内实现全球化部署:只需轻点几下鼠标,即可在全球多个区域轻松部署应用程序。这意味着,您可以以最小的成本为您的客户提供更低延迟的服务和更好的体验。
-
什么是 AWS Cloud?
AWS 通过互联网按需提供技术服务,采用按实际使用量付费的计费方式。这就是所谓的云计算。
AWS Cloud 包含一系列基于云的全球化产品,包括计算、存储、数据库、分析、网络、移动、开发人员工具、管理工具、物联网、安全和企业应用程序。这些产品都能实现在数秒内按需提供服务,并采用按使用量付费的计费方式。借助全球数据中心提供的 200 多种全功能服务,AWS Cloud 可以满足您开发、部署和运营应用程序的一切需求,同时还能帮您降低成本、提高敏捷性并加快创新。
例如,您可以使用 AWS Cloud 启动虚拟机,在数秒内便可指定 vCPU 核数、内存容量、存储容量和其他特性,并且仅在基础设施运行时以秒级粒度计费。AWS 全球基础设施网络的一个优势在于,您可以在最适合您的特定使用场景的一个或多个区域中预配资源。当您使用完资源后,可直接将其删除。基于这种内置的灵活性和可扩展性,您可以先构建一个应用程序服务您的第一个客户,然后对其进行扩展后给后面的一亿客户提供服务。
本视频探讨了我们的数百万客户如何在 AWS 上利用云计算技术提高效率。
详情请访问以下额外资源
AWS 云计算
按类别划分的 AWS 服务的完整列表 -
本地和云计算
在云计算出现之前,企业和组织在他们自己的数据中心托管和维护硬件,通常需要由整个基础设施部门管理这些数据中心。这就产生了高昂的运营成本,导致一些工作和试验无法顺利开展。随着互联网使用的普及,对计算、存储和网络设备的需求也日益增加。一些企业和组织无法持续支撑大规模物理设备维护的成本。而云计算的出现正好解决了这一问题。
为帮助您区分本地和云端的工作负载,我们假设一个这样的场景,一个开发团队想在其应用程序中部署一些新功能。部署前,开发团队想在一个与生产环境配置相同的单独质量保证(QA)环境中测试这些功能。在本地解决方案中,您需要为搭建额外的 QA 环境购买和安装硬件、连接必要的电缆、提供电源以及安装操作系统等等。这些任务既耗时又费钱。此外,开发团队为等待 QA 环境部署,只能推迟新功能发布。相比之下,如果在云端运行应用程序,您可以根据需要在数分钟甚至数秒钟内完成整个生产环境的复制。该解决方案通过互联网进行管理,而无需实地安装物理硬件和连接电缆。使用云计算可节省安装时间,消除了无差别的繁重工作。若您研究任何应用程序,便会发现它的某些方面对您的业务至关重要,比如代码。而其他方面与您可能构建的任何其他应用程序并没有什么不同,比如运行代码的计算机。作为开发人员,您可能希望专注于那些能提高应用程序价值的任务,而非配置服务器之类的常见任务,因为这些任务并不会为您的应用程序带来差异化竞争优势。例如,克莱姆森大学的一组科研人员在研究主题建模时取得了具有里程碑意义的显著成果,主题建模是与自然语言处理(NLP)相关的机器学习的重要组成部分。在不到 24 小时的时间内,他们在单个 AWS 区域中启动的 Amazon EC2 竞价型实例上运行了逾 110 万个 vCPU,由此在云端创建了一个高性能集群。这只是证明 AWS 能够如何帮您实现更快创新的其中一个例子。 -
IaaS、PaaS 和 SaaS
云计算让开发人员能够专注于最重要的事情,无需关注基础设施采购、维护、容量规划或其他无差别的繁重工作。
随着云计算的日益普及,多种不同的服务模型应运而生,以满足不同用户的特定需求。每种类型的云服务都提供了不同级别的抽象、控制、灵活性和管理能力。了解基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)之间的差异,有助于开发人员根据需求选择合适的服务类型。
基础设施即服务(IaaS)
基础设施即服务(IaaS)包含云 IT 的基本构建基块,通常提供对联网功能、计算机(虚拟或专用硬件)以及数据存储空间的访问。IaaS 为您提供了最高级别的灵活性和对 IT 资源的管理控制,并且与当今许多开发人员熟悉的现有 IT 资源极其相似。平台即服务(PaaS)
平台即服务(PaaS)让您无需管理底层基础设施(一般是硬件和操作系统),从而可以将更多精力放在应用程序的部署和管理上面。这有助于提高效率,因为您不用操心资源购置、容量规划、软件维护、补丁安装或与应用程序运行有关的任何无差别的繁重工作。
软件即服务(SaaS)
软件即服务(SaaS)提供了一种完善的产品,其运行和管理皆由服务提供商负责。在大多数情况下,人们所说的 SaaS 指的是最终用户应用程序。使用 SaaS 产品时,服务的维护和底层基础设施的管理都不用您操心,您只需要考虑怎样使用该软件就可以了。SaaS 的常见应用是基于 Web 的电子邮件,您可以使用它来收发电子邮件,而不用管理电子邮件产品的功能添加,也不需要维护电子邮件程序运行所在的服务器和操作系统。
深入了解:AWS 上的软件即服务(SaaS)
详情请访问以下额外资源
云计算类型
AWS 上的软件即服务(SaaS) -
全球基础设施
借助云,您可以扩展到新的地理区域,并在几分钟内进行全局部署。例如,AWS 的基础设施遍布全球各地,因此开发人员只需单击几下即可在多个物理位置部署应用程序。将应用程序部署在离终端用户更近的位置,可减少延迟并改善用户体验。AWS 正在逐步扩展全球基础设施,以帮助我们的客户实现更低的延迟性和更高的吞吐量,并确保他们的数据仅驻留在他们指定的 AWS 区域。在我们的客户拓展其业务时,AWS 将持续提供满足其全球需求的基础设施。AWS Cloud 基础设施围绕 AWS 区域和可用区构建。区域是指全球范围内的某个物理位置,每个区域由多个可用区组成。可用区由一个或多个离散的数据中心组成,每个数据中心都有冗余电源、联网和连接,并封装在独立的设施内。可用区能够提高生产应用程序和数据库的运行效率,使其具备比单个数据中心更强的可用性、容错能力以及可扩展性。
AWS Cloud 基础设施覆盖广泛,遍布全球的数据中心可提供 200 多种功能完备的服务。AWS 拥有任何云服务提供商无法比拟的、覆盖范围最广的全球基础设施,可随时随地提供您所需的云基础设施。
AWS 全球基础设施地图
详情请访问以下额外资源
全球基础设施:概述
区域和可用区
AWS 区域性服务列表 -
开发人员工具
如何与 AWS 交互
当基础设施像云计算一样变得虚拟化时,开发人员使用基础设施的方式也会略微变化。您可以通过 AWS 应用程序编程接口(AWS API)对基础设施进行逻辑管理,而非物理管理。当您创建、删除或更改任何 AWS 资源时,需要在 AWS 上调用 API 来执行相关操作。
您可以采用多种方式调用这些 API,但本节中我们将重点介绍以下主题:
- AWS 管理控制台
- AWS 命令行界面(AWS CLI)
- IDE 和 IDE 工具包
- AWS 软件开发工具包(SDK)
AWS 管理控制台
刚开始使用 AWS 时,人们通常会从 AWS 管理控制台开始。这是一个基于 Web 的控制台,您可以通过浏览器登录。该控制台集合了一系列用于管理 AWS 资源的服务控制台。使用控制台时,您无需担心脚本或语法。您还可以选择特定区域部署 AWS 服务。
使用控制台后,您可能不再会想手动部署 AWS 服务,也许是因为您已经更加了解 AWS 或者您的生产环境有一定程度的风险管理需求。这时您可以使用 AWS CLI。
AWS CLI
AWS CLI 是一款开源工具,可以让您在命令行 Shell 中使用命令创建和配置 AWS 服务。在 Linux 或 macOS 中,您可以使用 bash、zsh 和 tcsh 等常见的 Shell 程序运行命令;在 Windows 中,您可以使用 Windows 命令提示符或 PowerShell 运行命令。若想通过 AWS CLI 快速启动和运行,您可以选择使用 AWS CloudShell。这是一个基于浏览器的 Shell,为您提供命令行的方式来访问 AWS 资源。已通过控制台凭证对 CloudShell 进行了预先身份验证。此外,系统预先安装了常用的开发和运维工具,因此无需进行本地安装和配置。
若将其移动到 AWS CLI,您可以编写 API 调用脚本或程序。创建命令时您不必使用 GUI,而是使用定义好的 AWS 语法。使用 CLI 的一个好处是,您可以通过单条命令来创建多个 AWS 资源,这有助于降低在选择和配置资源时出现人为错误的可能性。使用 CLI 前,您需要学习命令的正确语法,但在编写这些命令的脚本时,需要注意确保它们的可复用性。从长远来看,这应该可以帮您节省时间。
IDE 和 IDE 工具包
AWS 支持热门的集成式开发环境(IDE)和 IDE 工具包,因此您可以在您喜欢的环境中使用 AWS 编写、调试和部署代码。支持的 IDE 和 IDE 工具包包括 AWS Cloud9、IntelliJ、PyCharm、Visual Studio、Visual Studio Code、Azure DevOps、Rider 以及 WebStorm。
软件开发工具包
您可以使用软件开发工具包(SDK),以编程的方式与 AWS API 进行交互。AWS 会创建和维护主流编程语言的 SDK,如下图所示。
若您希望将应用程序源代码与 AWS 服务集成,可以使用 SDK。例如,您可以使用 Python SDK 编写代码,以便将文件存储在 Amazon Simple Storage Service (Amazon S3)而非您的本地硬盘。SDK 支持您在源代码运行位置管理 AWS 服务(包括条件、循环、数组、列表和其他编程元素),并提供多项功能和可创造性。
此处仅列举了开发人员可以在 AWS 上用到的部分工具。有关可以帮您快速轻松开发应用程序的 AWS 工具的完整列表,请参阅 AWS 构建工具。
-
基础设施即代码(IaC)
与软件开发人员编写应用程序代码的方式类似,AWS 提供的服务支持以开发式、描述式和声明式编程的方式创建、部署和维护基础设施。
AWS CDK
AWS Cloud Development Kit(AWS CDK)是一个软件开发框架,用于在代码中定义云基础设施,并通过 AWS CloudFormation 对其进行预配。AWS CDK 支持常见的编程语言,如 TypeScript、JavaScript、Python、Java、C#/.Net 和 Go(开发人员预览版)。云应用程序预配可能存在一定难度,需要编写自定义脚本、维护模板或学习特定领域的语言。AWS CDK 利用编程语言的常见性和表达能力为应用程序建模。CDK 提供名为结构的高级组件,使用经过验证的默认值预置云资源,因此您无需成为专家即可构建云应用程序。AWS CDK 通过 AWS CloudFormation 以安全、可重复的方式预置您的资源。它还支持您编写和分享体现组织要求的自定义结构,帮助您更快启动新项目。
以下是它的工作原理:
AWS 还提供了适用于 Kubernetes 的 AWS Cloud Development Kit(cdk8s),这是一个开源软件开发框架,可使用通用编程语言定义 Kubernetes 应用程序。
快来试试:AWS CDK 入门
AWS CloudFormation
AWS 资源建模与设置可能非常耗时。这时候就可以用到 AWS CloudFormation。CloudFormation 可帮您完成 AWS 资源的建模和设置,从而减少资源管理时间,这样您就有更多的时间专注于应用程序。您可以使用 CloudFormation 创建一个模板,该模板用于描述您需要的所有 AWS 资源,例如 Amazon EC2 实例或 Amazon RDS DB 实例。创建好模板后,CloudFormation 负责为您提供和配置这些资源。您无需单独创建和配置 AWS 资源,也无需弄清这些资源之间的依赖关系。交给 CloudFormation 帮您搞定。CloudFormation 可帮助您简化基础设施管理,快速复制基础设施,并轻松管理和跟踪基础设施的更改。
以下是它的工作原理:
详情请访问以下额外资源
AWS CDK v2
什么是 AWS CloudFormation? -
Well-Architected 基础设施
框架概览
设计出可靠的云架构是整个技术团队的基础工作。了解 AWS Well-Architected Framework 的六大支柱将帮助您在使用 AWS 服务时将思维导向最佳实践。
AWS Well-Architected 可帮助云架构师和开发人员为各类应用程序和工作负载构建安全、高性能、弹性高效的基础设施。AWS Well-Architected 围绕六大支柱 — 卓越运营、安全性、可靠性、性能效率、成本优化和可持续性,为您提供用于评估架构和实施可扩展设计的一致方法。
AWS Well-Architected Framework 包含特定领域的详解、动手实验和 AWS Well-Architected Tool。可在 AWS 管理控制台中免费使用 AWS Well-Architected Tool,提供一种定期评估工作负载、识别高风险问题和记录改进情况的机制。
将鼠标悬停在下图中的各个板块,可了解更多信息:
-
安全性
在 AWS 上构建应用程序时,管理安全性和合规性是 AWS 和您的共同责任。为了描述这种共同责任,AWS 创建了责任共担模式(见下图)。责任的区别通常被称为云“本身”的安全和云“内部”的安全。
AWS 的责任
对云“本身”的安全负责意味着 AWS 可以保护和保障运行所有 AWS Cloud 服务的基础设施。AWS 负责:
- 保护和保障 AWS 区域、可用区和数据中心的安全性,甚至建筑物的物理安全
- 管理运行 AWS 服务的硬件、软件和联网组件,例如物理服务器、主机操作系统、虚拟化层和 AWS 联网组件。
客户责任
客户或在云上进行构建的任何人都对云“内部”的安全负责。使用任何 AWS 服务时,除了确保数据安全外,您还有责任正确配置服务和应用程序。
您的责任级别取决于 AWS 服务。有些服务要求您执行所有必要的安全配置和管理任务,而其他更抽象的服务则要求您只管理数据和控制对资源的访问权限。
由于工作量各不相同,客户必须考虑他们应该使用哪些 AWS 服务,并查看保护每项服务所需的责任级别。他们还必须审查共享安全模式如何与其 IT 环境中的安全标准以及任何适用的法律和法规保持一致。
一个关键概念是,客户可以保持对其数据的完全控制,并负责管理与其内容相关的安全性。
这份关于云安全的简短摘要仅介绍了核心概念。浏览安全性学习页面,了解有关 AWS 上云安全性的关键主题、研究领域和培训机会的更多信息。
安全性
AWS 责任共担模式
安全性学习
后续步骤
-
启动您的首个应用程序
-
AWS Free Tier
-
AWS Educate— 免费课程
-
启动您的首个应用程序
-
AWS 为您提供了可以快速组装的构建块,几乎支持任何工作负载。您可以在 AWS 上找到一整套高可用性服务。这些服务旨在共同构建复杂的可扩展应用程序。若想快速入门,请从以下链接中选择一个分步教程主题,帮助您在 30 分钟内启动并运行应用程序,或者您可以访问 AWS 开发人员中心学习其他教程。
-
AWS Free Tier
-
AWS Free Tier 可让您通过广泛选择 AWS 产品与服务而获得实践经验。在 AWS Free Tier 中,您可以通过测试工作负载和运行应用程序了解更多信息,并为您的组织构建合适的解决方案。
探索 Free Tier
探索 100 余种产品,并使用 Free Tier 在 AWS 上开始构建。根据所使用的产品,有三种不同类型的免费优惠可供选择。点击下面的图标了解我们的优惠。注意:注册过程中需要使用信用卡,但在您开始使用服务后才会收费。无长期使用合约,您可以随时停止使用 AWS。
-
AWS Educate— 免费课程
-
AWS Educate 免费提供了数百小时可自定进度的在线培训资源,还提供了 AWS 管理控制台的操作实践机会。AWS Educate 专为刚刚接触云的新手学习者设计,为其提供简单、无障碍的云技能学习、练习与评估途径。无需提供信用卡、登录 Amazon.com 或创建 AWS 账户。
简单、无障碍地获取
年龄达到 13 岁的学习者只需使用电子邮件地址就可以注册 AWS Educate,由此访问 AWS 控制台中的动手实验室,以实时学习、练习和评估云技能。无需信用卡。
为新手设计的内容
AWS Educate 提供数百小时主在针对云技术新手学习者的学习资源。更喜欢通过视频学习还是在 AWS Cloud 中琢磨? 我们有适用于每个人的内容。
与就业关联
学习者可以访问 AWS Educate 求职板,以探寻、搜索和申请数以千计的热门岗位以及在世界各地所有类型的组织中进行实习的机会。
构建您的网络
完成包含动手实验的课程以获得数字徽章并获得加入 AWS 新兴人才社区的邀请,您可以在这里接触到其他初入职场的人才。