AWS-基础笔记-全-
AWS 基础笔记(全)
001:A代表Amazon API Gateway 🚪
在本节课中,我们将要学习AWS云服务系列的第一个核心服务:Amazon API Gateway。这是一个用于创建、发布、维护和保护API的全托管服务。
什么是Amazon API Gateway?
Amazon API Gateway是一项完全托管的无服务器服务。你可以使用它在AWS上创建、发布、维护和托管你的API。
它支持多种类型的API,包括:
- HTTP APIs
- REST APIs
- WebSocket APIs
核心功能与集成

上一节我们了解了API Gateway的基本定义,本节中我们来看看它的核心功能和如何与其他服务协同工作。



API Gateway可以与许多不同的后端AWS服务集成。一个非常常见的集成模式是与AWS Lambda函数结合使用。



你可以将AWS Lambda函数配置为API Gateway的后端,从而允许用户通过API Gateway来调用该Lambda函数。这通常通过以下方式实现:
# 示例:在CloudFormation中关联API Gateway与Lambda
MyApi:
Type: AWS::ApiGateway::RestApi
Properties:
...



MyResource:
Type: AWS::ApiGateway::Resource
Properties:
RestApiId: !Ref MyApi
ParentId: !GetAtt MyApi.RootResourceId
PathPart: "myendpoint"

MyMethod:
Type: AWS::ApiGateway::Method
Properties:
RestApiId: !Ref MyApi
ResourceId: !Ref MyResource
HttpMethod: GET
Integration:
Type: AWS_PROXY
IntegrationHttpMethod: POST
Uri: !Sub "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyLambdaFunction.Arn}/invocations"
安全性
在将API暴露给外部后,保护它们至关重要。API Gateway提供了多种方式来确保API的安全。
以下是API Gateway支持的主要授权和认证方法:
- API密钥:用于控制对API的访问。
- 授权器:
- 使用Amazon Cognito进行用户身份验证和授权。
- 使用自定义的AWS Lambda授权器来实现复杂的授权逻辑。
- IAM授权:通过使用AWS Identity and Access Management (IAM) 角色和策略来控制访问权限。
管理与部署
作为一个完全托管服务,其可扩展性是内置的。你通常无需手动扩展服务,只需管理配额即可。
你可以为API设置节流限制,并且账户内也有配额来决定可以进行的并发API调用数量。你可以调整这些设置,但底层的可扩展性由AWS管理。
当你对API Gateway进行更改时,需要将其部署到所谓的阶段。阶段可以指向不同的环境,例如生产环境、QA环境或开发环境。它还可以并行托管多个版本的API。如果你有多个需要不同版本的API消费者,可以将它们托管在不同的阶段中。此外,通过使用阶段,它还支持你进行金丝雀发布。



监控



为了确保API的健康运行,监控是必不可少的。API Gateway与AWS的监控服务深度集成。



API Gateway与Amazon CloudWatch以及AWS X-Ray集成,使你能够深入了解API的运行状况和性能。



本节课中我们一起学习了Amazon API Gateway的基础知识。我们了解到它是一个用于创建和管理API的全托管、无服务器服务,支持多种API类型和强大的安全功能,并能与Lambda等服务无缝集成。其内置的可扩展性、阶段化部署以及集成的监控工具,使得构建和维护API变得简单高效。


在下一节课中,我们将继续AWS ABC系列,学习以字母“B”开头的AWS服务。
002:B代表Amazon Bedrock
在本节课中,我们将要学习AWS云服务中一个以字母“B”开头的核心服务:Amazon Bedrock。这是一个用于构建和扩展生成式AI应用程序的服务。
上一节我们介绍了AWS的基础概念,本节中我们来看看一个具体的AI服务。
什么是Amazon Bedrock?🤔
Amazon Bedrock是一项完全托管的服务,它为用户提供了通过API访问来自领先AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Stability AI和Amazon自身)的高性能基础模型(FMs)的能力。
它的核心目标是让开发者能够轻松地使用各种前沿的AI模型,而无需管理底层基础设施。
核心功能与优势 ✨
以下是Amazon Bedrock提供的主要功能和优势:
- 模型选择丰富:提供多种顶尖的基础模型,用户可以根据需求选择最适合的模型。
- 完全托管:AWS负责所有基础设施的维护、扩展和安全,用户只需关注应用开发。
- 数据隐私与安全:用户的数据和定制内容不会被用于改进基础模型,确保了商业数据的安全。
- 无缝集成:可以轻松地与AWS的其他服务(如Amazon SageMaker)集成,构建端到端的AI工作流。
- 简化定制:支持使用自己的数据对选定的基础模型进行私有定制,而无需标注大量数据。
核心概念解析 🔍
为了理解Bedrock的工作原理,我们需要了解几个关键概念。
基础模型 是指在大规模数据集上预训练好的大型机器学习模型,它们是生成式AI应用的基石。在Bedrock中,你可以通过一个统一的API来调用不同的FM。
提示工程 是与这些模型交互的主要方式。你通过编写提示词(一段文本指令)来引导模型生成所需的输出。例如,一个简单的文本生成提示可以这样构造:
prompt = “请用一句话解释什么是云计算。”

模型会根据这个提示生成相应的回答。
如何使用Amazon Bedrock 🛠️
使用Amazon Bedrock构建应用通常遵循以下几个步骤:

- 访问服务:通过AWS管理控制台、CLI或SDK访问Bedrock服务。
- 选择模型:从模型库中浏览并选择一个适合你用例的基础模型。
- 尝试与评估:使用Bedrock提供的“Playground”环境,直接输入提示词来测试模型的效果。
- 集成与部署:通过API将选定的模型集成到你的应用程序代码中,并进行部署。
总结
本节课中我们一起学习了Amazon Bedrock。我们了解到它是一个托管的生成式AI服务,提供了访问多种高性能基础模型的统一方式。它通过简化模型选择、确保数据安全以及提供便捷的定制功能,降低了构建生成式AI应用的门槛。掌握Bedrock是迈向利用AWS强大AI能力的第一步。
003:AWS CloudFormation - 基础设施即代码 🏗️
在本节课中,我们将学习AWS CloudFormation,这是一个用于自动化、可重复地创建和管理AWS资源的服务。我们将了解它如何帮助您从手动配置转向代码驱动的资源管理。
概述
当您初次使用AWS时,通常会使用基于浏览器的AWS管理控制台来创建和配置资源。然而,如果您希望将一个AWS账户中的所有基础设施复制到另一个账户,使用控制台操作会非常繁琐且容易出错。因此,虽然控制台适合学习,但在实际工作中,我们应当以自动化和可重复的方式配置资源。
上一节我们讨论了手动配置的局限性,本节中我们来看看如何通过AWS CloudFormation实现基础设施即代码。

什么是AWS CloudFormation?


AWS CloudFormation是一个基础设施即代码工具,它可以帮助您以可重复且可靠的方式自动化资源供应。使用CloudFormation,您无需在控制台中点击操作,而是创建基于JSON或YAML格式的文档。
这些文档被称为模板,它们包含了您要创建的所有资源及其配置信息。CloudFormation会读取此模板,并代表您配置资源。
核心概念公式:
基础设施状态 = CloudFormation模板
CloudFormation的核心优势
CloudFormation能够处理资源间的依赖关系、参数化输入,以及在供应过程中出现错误时自动回滚资源。它能确保资源按照您提供的配置以正确的顺序创建,与手动配置相比,这节省了时间并降低了错误风险。

核心概念代码示例(YAML片段):
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-0abcdef1234567890
模板与堆栈


在一个模板中创建的所有资源会形成一个称为堆栈的单元。您可能会根据应用程序、团队或堆栈的不同层级来组织多个CloudFormation模板。如何组织代码完全取决于您,但我们确实将其视为代码,因此建议您将模板检入源代码控制仓库,并像对待其他代码工件一样管理它。
以下是组织模板时的一些常见考虑:
- 嵌套堆栈:相同的资源可能被多个堆栈使用。为了避免在不同模板中重复定义这些资源,模板可以引用其他模板,从而创建所谓的嵌套堆栈。
- 多环境管理:考虑一个场景,您有多个AWS账户分别承载测试、QA和生产环境。您可以使用相同的CloudFormation模板,借助堆栈集功能在这些账户中创建完全相同的环境。当需要对资源进行更改时,您可以更新模板,然后通过AWS CloudFormation API执行更新,从而以自动化方式保持所有环境的一致性。
总结与后续学习

本节课中我们一起学习了AWS CloudFormation的基础知识。我们了解到它是一个强大的基础设施即代码服务,通过模板自动化资源供应,支持堆栈管理、嵌套引用和多环境部署,从而提升了效率、可靠性和一致性。



CloudFormation是一个庞大的主题,本视频只是一个非常简短的介绍。如果您想了解更多,建议查阅AWS官方文档,并阅读《DevOps简介》白皮书。您可以通过提供的链接直接跳转到该白皮书中关于CloudFormation的章节。
004:D代表Amazon DynamoDB 🗄️

在本节课中,我们将要学习AWS的NoSQL数据库服务——Amazon DynamoDB。我们将了解它的核心概念、特点以及它与传统关系型数据库的区别。
过去,关系型数据库确实是大多数应用程序的默认选择。但现在我们有了更多选择。NoSQL数据库非常适合需要灵活模式、大规模可扩展性或需要个位数毫秒级响应时间的场景。Amazon DynamoDB是AWS提供的一款NoSQL无服务器数据库服务,专为需要任何规模下高性能的应用程序而设计。
例如,在最近的亚马逊Prime会员日期间,DynamoDB API接收了数万亿次请求,其峰值达到每秒约1.26亿次请求。它始终保持了高可用性以及我们所期待的个位数毫秒级响应时间。这项服务是真正为大规模可扩展性而构建的。





DynamoDB核心概念

上一节我们介绍了DynamoDB的定位,本节中我们来看看它的基本概念。
与创建包含多个相互关联表的关系型数据库不同,在DynamoDB中,您创建的是独立的表。这些表包含项目。DynamoDB表中的每个条目都称为一个项目。项目具有属性,这类似于关系型数据库中的列。
然而,区别在于,DynamoDB提供灵活的模式,这意味着表中的每个项目并不要求拥有完全相同的属性。尽管如此,表中的每个项目都必须有一个分区键,这是项目的唯一标识符。您还可以选择性地定义一个排序键,当仅凭分区键不足以使项目唯一时,可以使用排序键。排序键也可用于各种不同的用例。
之所以提到这一点,是因为分区键和排序键是表中唯一可直接查询的属性(如果您没有定义任何二级索引的话)。但这并不意味着您不能查询非分区/排序键的其他属性。只是您需要使用扫描API,它的效率低于查询API。





了解查询和扫描之间的区别非常重要,同时也要了解您的表设计或定义的分区键和排序键如何影响表的性能以及您与表的交互方式。


高级功能与学习资源
如果您希望有更多可以查询的属性选项,可以创建二级索引。二级索引包含表中属性的一个子集,以及一个用于支持查询操作的备用键。
DynamoDB的其他功能包括自动扩展以处理需求变化,以及备份功能以确保数据安全且可恢复。
关于DynamoDB,有很多知识需要学习,我们在这个简短的视频中只是触及了皮毛。因此,我建议您查阅AWS开发者指南,您可以通过以下链接访问,在那里您可以了解更多信息。



本节课中我们一起学习了Amazon DynamoDB,这是一款高性能、无服务器的NoSQL数据库服务。我们了解了它的核心概念,如项目、属性、分区键和排序键,以及查询与扫描操作的区别。我们还提到了其自动扩展和备份等高级功能。请继续关注更多AWS ABCs课程。
005:E代表Amazon EC2 🖥️

在本节课中,我们将要学习AWS云服务中的核心计算服务——Amazon Elastic Compute Cloud(EC2)。我们将了解EC2是什么、它的核心特性、如何工作以及它如何帮助您灵活、经济高效地运行应用程序。
什么是Amazon EC2?
Amazon EC2是AWS提供的弹性计算云服务。应用程序需要在计算资源上运行,当您使用AWS时,可以通过Amazon EC2创建虚拟机。您创建的每一台虚拟机都称为一个Amazon EC2实例。
EC2遵循按需付费的定价模式,这意味着您只需为实际使用的资源付费。
EC2的核心特性与优势

上一节我们介绍了EC2的基本概念,本节中我们来看看它的一些核心特性和优势。



弹性伸缩



假设您在EC2上运行一个工作负载,当该工作负载的需求突然激增时,您可以使用Amazon EC2 Auto Scaling功能进行横向扩展,以满足需求高峰。当需求下降时,您可以再缩减规模。在缩减时,您可以停止或终止不再需要的EC2实例,同时停止为这些实例付费。


灵活性
EC2具有极高的灵活性,因为您本质上获得了一台安装了您所选操作系统的虚拟机。您可以在上面运行各种软件。
以下是您可以在EC2实例上运行的一些常见工作负载类型:
- Web应用程序
- 批处理作业
- 高性能计算集群
- 数据库
- 几乎所有其他您想在虚拟机上运行的软件类型
EC2的架构与组件
了解了EC2的用途后,我们来看看构成一个EC2环境的主要组件。
虚拟网络与安全
EC2实例被放置在一个称为Amazon Virtual Private Cloud的虚拟网络中。您可以使用多种工具来控制哪些类型的流量可以到达您的EC2实例。



以下是用于保护EC2实例的主要安全机制:
- 安全组:充当实例的虚拟防火墙。
- 网络访问控制列表:在子网级别提供额外的安全层。
- AWS WAF:如果您使用Application Load Balancer在实例群之间进行负载均衡,可以配合使用AWS Web Application Firewall来保护Web应用。


存储



您可以使用Amazon Elastic Block Store为EC2实例附加持久化的存储卷。可以将其想象成连接到笔记本电脑的外置硬盘。


实例模板
实例是使用Amazon Machine Image创建的。AMI就像是EC2实例的一个快照,它包含了操作系统、预装软件以及启动一个EC2实例所需的其他组件。您可以从单个AMI启动许多完全相同的实例,这使得横向扩展以满足需求以及从故障中恢复变得非常容易。
选择与部署EC2实例
当您准备启动一个EC2实例时,需要为其选择大小和类型。这是云计算的优势之一:有大量不同类型的EC2实例可供您选择。
这些EC2实例类型提供了CPU、内存和网络能力的不同组合,每种类型都针对不同的使用场景进行了优化。
以下是几种主要的实例类型优化类别:
- 计算优化型:适用于计算密集型任务。
- 内存优化型:适用于处理大型数据集的工作负载。
- 通用型:为计算、内存和网络资源提供平衡配置。
关于EC2的一个最佳实践是:将您的工作负载复制到至少两个可用区中,然后使用Application Load Balancer等服务在这些实例之间进行负载均衡,以提高可用性和容错能力。




总结
本节课中我们一起学习了AWS的基础计算服务——Amazon EC2。我们了解到EC2提供了可调整大小的虚拟服务器(实例),采用按需付费模式,并具备弹性伸缩能力。我们还探讨了其关键组件,包括用于网络的VPC、用于存储的EBS、用于模板的AMI,以及用于安全的安全组和NACL。最后,我们介绍了如何根据CPU、内存和网络需求选择不同类型的实例,并了解了跨可用区部署以实现高可用的最佳实践。

这只是对Amazon EC2的初步介绍,还有更多内容值得深入学习。如果您有兴趣了解更多,建议查阅AWS官方文档。请继续关注更多AWS基础知识。
006:F代表AWS Fargate 🚢
在本节课中,我们将要学习AWS Fargate,这是一个用于在AWS上运行容器的无服务器计算引擎。我们将了解它的核心概念、工作原理、适用场景以及如何实现成本优化。
概述
AWS Fargate是一个无服务器计算引擎,专为在AWS上运行容器而设计。它允许开发者无需预置、配置或管理底层服务器集群,即可部署和扩展容器化应用程序。本节课将详细介绍Fargate如何与容器编排服务(如Amazon ECS和EKS)协同工作,以及它相较于传统EC2实例集群的优势。
什么是AWS Fargate?
AWS Fargate是一个无服务器计算引擎,用于在AWS上运行容器。与任何应用程序一样,容器需要计算资源才能运行。在Fargate出现之前,您通常需要创建一个Amazon EC2实例集群来运行容器,这意味着您需要负责预置、配置和扩展这个EC2集群。

使用AWS Fargate,您可以创建一个用于容器托管的无服务器集群。这意味着托管您集群的底层基础设施的预置、配置和扩展工作都由AWS处理。





容器编排与计算选项
然而,要成功大规模运行容器,仅靠计算资源是不够的。在AWS上托管容器时,您首先需要选择一个容器编排服务,例如Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。
容器编排是指对容器进行自动化管理,例如在服务器集群中部署、扩展或管理容器。
选择了容器编排服务后,您接下来需要选择要使用的计算选项。这将是以下两者之一:
- 一个Amazon EC2实例集群。
- 一个AWS Fargate集群(无服务器)。
Fargate与ECS和EKS都兼容。
如何选择:Fargate vs. EC2
以下是选择计算选项时的关键考虑因素:



- 选择Amazon EC2的情况:如果您的合规性或安全要求规定您需要访问底层操作系统,或者需要对运行容器的实际主机拥有完全控制权,那么Amazon EC2将是您的最佳选择。
- 选择AWS Fargate的情况:如果您没有上述任何要求,那么您可以利用AWS Fargate的无服务器特性。这使您能够更专注于构建应用程序,而减少在管理服务器上的精力。


Fargate的扩展性
关于在Fargate上运行容器的扩展性,需要理解两个层面:
- 容器本身的扩展:由容器编排服务处理。例如,如果您使用ECS,您可以使用服务自动扩展来控制在任何给定时间要运行多少个容器。其配置可能类似于:
{ "serviceAutoScalingConfiguration": { "minCapacity": 2, "maxCapacity": 10, "targetCpuUtilization": 70 } } - 底层计算基础设施的扩展:由AWS Fargate处理。它会根据工作负载的需求自动扩展底层计算资源。
成本优化:Fargate Spot
为了提升成本效益,AWS Fargate提供了Fargate Spot。它的运作方式与Amazon EC2 Spot实例非常相似。
Fargate Spot让您能够以更低的价格运行容器。其工作原理是:AWS有时会有额外的计算容量,这些额外容量可以通过Fargate Spot提供给您使用,从而让您享受到更低的价格点。这是一个非常经济高效的选择。


然而,当AWS需要收回这些容量时,它会向运行在Fargate Spot上的容器发送一个两分钟的通知警告。这为您的容器提供了时间来完成它们正在处理的任务,然后AWS才会回收该容量。




总结
本节课中,我们一起学习了AWS Fargate。总结如下:
- AWS Fargate 是AWS上用于容器的无服务器计算引擎。
- 它允许您更专注于构建应用程序,而减少管理服务器的工作。
- 它与 Amazon ECS 和 EKS 兼容,用于容器编排。
- 选择Fargate还是EC2,取决于您对底层基础设施控制权的需求。
- 利用 Fargate Spot 可以显著优化运行成本。

如果您想了解更多信息,请随时查阅AWS官方文档。请继续关注更多AWS ABCs课程。
007:G代表AWS Glue 🧩


在本节课中,我们将学习AWS Glue,这是一个无服务器的数据集成服务。我们将了解它的核心功能,包括数据发现、ETL/ELT作业、数据清洗、转换以及数据目录管理。通过本教程,你将理解AWS Glue如何帮助整合和分析分散在不同来源的数据。
AWS ABCs系列课程按字母顺序介绍不同的AWS服务。今天的字母是G,对应的服务是AWS Glue。
AWS Glue是一个无服务器数据集成服务,它提供了完成大数据和数据分析任务所需的各种数据集成能力。这些能力包括数据发现、创建和运行ETL或ELT作业、数据清洗、数据转换以及为数据提供集中式目录管理。



数据通常分散在许多不同的来源中。为了有效地分析这些数据,通常需要使用ETL或ELT流程来创建数据的统一视图,并在分析前提升数据质量。




什么是ETL?🔍




ETL代表提取(Extract)、转换(Transform)、加载(Load)。

ETL的第一步是从相关来源提取数据。数据被提取后,会暂存在某个地方,例如Amazon S3(这是一个常用于数据湖存储层的AWS服务)。接着,数据会被转换成更适合数据分析工具(如Amazon QuickSight、Amazon Athena或Amazon EMR)使用的格式。最后,数据被加载到目标数据库或数据仓库中,用于分析和报告。
ETL流程可以概括为:
数据源 -> 提取 -> 暂存 -> 转换 -> 加载 -> 目标(数据仓库/数据库)
ELT是一个非常相似的过程,区别在于数据会先被加载到目标位置,然后在需要时再进行转换。
你可以创建AWS Glue作业来自动化处理数据移动和转换所需的工作。为了有效地大规模组织和使用数据,你需要对数据进行编目,以便了解自己拥有什么数据以及可以处理什么数据。
AWS Glue数据目录 📚




AWS Glue为此提供了AWS Glue数据目录。这是一个用于存储数据元数据的集中式中心。AWS Glue数据目录可用于指导操作,例如在分析数据前对其进行转换。




在转换数据方面,AWS Glue作业表现出色。你需要某种代码或脚本来完成这部分工作。AWS Glue可以为你生成脚本,你也可以自己提供脚本。

你还可以使用AWS Glue Studio,在那里可以通过可视化方式组合和运行数据转换工作流。在AWS Glue Studio中,你可以从多种数据源和目标中进行选择,然后为数据湖或数据仓库中的数据分析准备数据。
数据转换示例 💡
假设你在Amazon S3中有一个CSV文件,你想将其转换为列式格式,然后存储到Amazon Redshift中。这类处理过程就可以通过AWS Glue作业来完成。
当AWS Glue中的所有组件都设置妥当后,你就可以启动ETL作业了。你可以按需运行它,也可以设置触发器在特定条件下(例如,当新数据到达时)自动运行。




本节课总结



本节课我们一起学习了AWS Glue。我们了解到它是一个无服务器的数据集成服务,核心功能是处理ETL(提取、转换、加载)和ELT(提取、加载、转换)流程。AWS Glue通过其数据目录集中管理元数据,并通过Glue作业(支持自动生成或自定义脚本)以及可视化的Glue Studio来简化数据转换工作流的创建和执行。这些功能共同帮助用户整合分散的数据源,为大数据分析和报告做好准备。
008:AWS Health 🩺
在本节课中,我们将要学习AWS Health服务。AWS Health是一项核心服务,它持续监控您的AWS账户和资源,并提供个性化的运行状况洞察和指导,帮助您规划、诊断和解决可能影响您应用程序的问题。
上一节我们介绍了AWS GuardDuty,它专注于安全威胁检测。本节中我们来看看AWS Health,它关注的是您AWS环境的整体运行状况和事件通知。
什么是AWS Health?
AWS Health提供关于AWS服务、账户和资源的个性化运行状况信息。它主要关注两类事件:
- AWS服务事件:当AWS服务本身出现可能影响您资源的问题时。
- 账户事件:与您的账户操作相关的事件,例如即将进行的维护、安全公告或服务终止通知。
通过AWS Health,您可以获得前瞻性的警报,以便在潜在问题影响您的应用程序之前采取行动。
核心功能与优势
以下是AWS Health提供的主要功能:
- 个性化仪表板:提供一个集中视图,显示所有与您的账户和资源相关的运行状况事件。
- 主动通知:在计划内维护或服务问题发生前发出警报。
- 详细的事件信息:每个事件都包含描述、受影响的资源、开始时间、结束时间以及推荐的修复步骤。
- 历史记录:可以查看过去90天内的事件历史,用于审计和问题分析。
- 与AWS Organizations集成:对于使用AWS Organizations的企业,可以聚合所有成员账户的运行状况数据。
如何使用AWS Health?
您可以通过以下几种主要方式访问AWS Health的信息:
- AWS管理控制台:在控制台中直接访问“AWS Health Dashboard”。
- AWS Health API:通过编程方式(例如使用AWS SDK)获取事件信息,以便集成到您自己的监控或通知系统中。
- Amazon EventBridge:将AWS Health事件路由到EventBridge,从而触发Lambda函数、发送SNS通知或与其他AWS服务集成。
一个简单的通过AWS CLI使用Health API查询开放事件的示例代码如下:

aws health describe-events --filter '{"eventStatusCodes": ["open"]}'
此命令会列出您账户中所有状态为“开放”的运行状况事件。

实际应用场景
想象一下,您正在运行一个关键的生产应用程序。AWS Health可以:
- 提前一周通知您,承载您EC2实例的底层主机计划进行维护,建议您启动新的实例或启用自动恢复。
- 实时警报您,您正在使用的某个AWS区域的服务出现中断,并列出您在该区域受影响的特定资源(如RDS数据库、ELB负载均衡器)。
- 提醒您关于安全漏洞的公告,并提供修补建议的链接。
本节课中我们一起学习了AWS Health服务。它就像您AWS环境的私人健康顾问,通过提供主动、个性化的洞察,帮助您维持应用程序的高可用性和性能。理解并利用好AWS Health,是进行有效的云运维和事件管理的关键一步。
009:I代表AWS IAM 👤
在本节课中,我们将要学习AWS身份与访问管理服务,即IAM。IAM是管理对AWS访问的核心服务,它决定了谁可以访问您的AWS资源,以及他们能对这些资源执行什么操作。
在深入IAM概念之前,我们首先需要了解认证与授权的区别。
认证与授权 🔐
认证意味着证明“你就是你所说的那个人”。这通常通过用户名和密码或生物识别技术等系统来验证身份。认证的核心是确认身份。



授权则关乎权限。即使你成功认证了身份,也不意味着你可以为所欲为。授权决定了你在通过认证后,被允许执行哪些操作。在AWS的上下文中,授权控制着你被允许对AWS账户内的不同资源发起哪些AWS API调用或请求。
IAM服务同时处理认证和授权。
上一节我们介绍了认证与授权的区别,本节中我们来看看IAM的核心概念,以便更好地理解如何设置这些内容。
IAM核心概念 🧩
以下是IAM中的几个核心实体和概念。
用户 👤




用户是获取AWS账户访问权限的主要方式之一。用户拥有静态凭证,如用户名和密码,可用于登录AWS管理控制台。用户身份通常由单个人使用。




用户也可以关联AWS凭证,用于通过AWS软件开发工具包或AWS命令行界面进行编程访问。默认情况下,用户没有任何权限,您必须明确允许用户执行所需的AWS API调用。
用户组 👥
用户组是用户的集合。通过将具有相似角色或属于同一团队的用户分组,可以更轻松地管理权限。
权限与策略 📜
权限和策略控制着授权过程。权限规定了您可以在AWS资源上执行或禁止执行哪些AWS操作。您在策略对象中定义这些权限。

策略随后可以与用户、用户组、角色或AWS资源关联。这些策略可以非常精细,使您能够遵循最小权限原则,即只授予AWS身份执行其所需AWS操作的精确权限,不多不少。




角色 🎭


角色与用户类似,但有重要区别。角色不像用户那样拥有用户名和密码等静态凭证。相反,您需要使用AssumeRole API调用来“扮演”一个角色。
角色提供会过期和轮换的临时凭证。这在某些场景下非常有用,例如,一个运行在Amazon EC2上的应用程序需要访问Amazon DynamoDB表。您可以将一个IAM角色与EC2实例配置文件关联,然后应用程序就可以访问由该角色设置的临时凭证,从而获得访问DynamoDB的权限。
总结 📝



本节课中我们一起学习了AWS身份与访问管理服务。我们首先区分了认证(验证身份)和授权(授予权限)的概念。接着,我们探讨了IAM的核心组件:用户是拥有静态凭证的个体身份;用户组帮助批量管理用户权限;权限和策略是定义和控制访问规则的核心;而角色则提供临时凭证,适用于需要动态、短期访问权限的场景,如应用程序访问AWS服务。理解这些概念是安全、高效使用AWS云服务的基础。
010:J代表AWS Jam 🎮
在本节课中,我们将学习AWS培训与认证产品——AWS Jam。这是一个结合了学习与实践的平台,旨在通过挑战赛的形式帮助用户提升AWS技能。
欢迎回到AWS ABCs系列课程,我们按字母顺序介绍不同的AWS服务。今天的字母是“J”。不过,我们并非要介绍一项AWS服务,而是要介绍一个名为AWS Jam的AWS培训与认证产品。
什么是AWS Jam?🤔
AWS Jam是一个平台,你可以在此参与动手实践的AWS挑战。通过完成挑战来赚取积分,并与其他参与者竞争。所有的AWS Jam活动都在一个托管的AWS环境中完成,因此你无需拥有自己的AWS账户。
AWS Jam巧妙地将学习与游戏相结合,同时验证你的AWS技能。




AWS Jam如何运作?⚙️


其运作方式围绕“AWS Jam活动”展开。以下是其核心特点:
- 活动类型:活动分为公开活动和私有活动。
- 参与形式:你可以独立解决一系列有时限的挑战。如果你的团队希望提升AWS技能,也可以为团队主办一场AWS Jam,以小组形式协作。
- 核心体验:在解决挑战的过程中相互竞争,同时学习和探索AWS。
这些挑战旨在教授与安全、DevOps、迁移、AI/ML等主题相关的AWS最佳实践。
AWS Jam的独特之处 ✨
AWS Jam产品内置了验证逻辑,会在你完成任务的过程中进行验证,并根据完成情况为你或你的团队授予积分,争夺排行榜的榜首位置。
AWS Jam有一个非常酷的特点,使其不同于其他动手实验:它不提供逐步的操作指南。相反,它只给出一个挑战,然后由你自己去思考如何解决问题。这种方式能真正测试你的AWS知识,找出知识盲区,同时巩固你已经掌握的概念和想法。



适合人群与获取帮助 👐



AWS Jam和AWS Skill Builder上的AWS Builder Labs等其他类型的指导实验,都是动手实践AWS服务的绝佳方式。AWS Jam的设计面向所有技术水平的个人。因此,如果你是AWS新手也无需担心,你仍然可以参与Jam。
以下是为你提供的支持:
- 平台内置了线索,可以在你需要时帮助你应对挑战。
- 现场也有AWS专家协助引导活动。
- 这些活动真正旨在促进自主探索和学习。
如何参与?🚀
如果你目前是AWS客户,并有意为你的团队主办一场AWS Jam活动,请联系你的AWS客户代表。
如果你个人希望参与下一次公开的AWS Jam活动,则需要订阅AWS Skill Builder。通过此订阅,你还可以访问各种其他有用的学习材料。请访问 skillbuilder.aws 以了解更多信息。






本节课我们一起学习了AWS Jam。这是一个通过游戏化挑战来实践和验证AWS技能的平台,适合所有水平的学习者参与。接下来我们将介绍字母“K”代表的服务,敬请期待更多AWS ABCs内容。
011:Amazon Kinesis 📡
在本节课中,我们将要学习AWS云服务家族中以字母“K”为代表的服务——Amazon Kinesis。我们将了解什么是流数据,以及Kinesis如何帮助您实时地摄取、缓冲和处理这些数据。
概述
在当今的数字时代,组织需要处理海量实时生成的数据。这些数据包括流事件、音频、视频、应用程序日志、网站点击流数据、物联网遥测数据等。数据正从四面八方源源不断地产生。流数据是由成千上万个数据源持续生成的数据,这些数据源同时发送记录,且数据量通常较小(以千字节计)。人们越来越需要在数据生成时进行实时处理,以便用于获取可操作的洞察、检测异常、做出实时决策,或用于数据分析和机器学习。传统的批处理解决方案通常无法有效处理这类数据。
因此,像Amazon Kinesis这样的服务应运而生,它让您能够实时处理这些数据。Amazon Kinesis的核心就是为您提供一种摄取、缓冲和处理流数据的方法,让您能在几分钟内而非几天后获得洞察。
Kinesis服务家族
Amazon Kinesis并非单一服务,而是一个服务家族,主要包括以下三个成员:


- Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose
- Amazon Kinesis Video Streams
接下来,我们将逐一了解这些服务。
Amazon Kinesis Data Streams
上一节我们介绍了流数据处理的必要性,本节中我们来看看Kinesis Data Streams如何实现数据摄取。该服务让您能够更轻松地摄取和捕获流数据,以便使用其他服务或工具进行处理,例如Apache Spark、Apache Flink的托管服务,或运行在Amazon EC2实例、AWS Lambda函数中的自定义代码。
随着数据源的持续生成,新数据会不断被添加到数据流中。这意味着,当您的代码正在处理现有数据时,更多的新数据正源源不断地流入。这正是实时处理的体现。
以下是其核心工作流程的简化表示:
数据源(如日志、点击流) -> Kinesis Data Streams -> 处理应用(如Lambda, EC2, Flink) -> 结果(如数据库、分析工具)
Amazon Kinesis Data Firehose

了解了Data Streams的实时处理能力后,我们来看看Kinesis Data Firehose。它同样是一个数据摄取服务,但其侧重点不同。



与Data Streams不同,Data Firehose在摄取流数据后,并不会立即进行复杂处理,而是将数据持续地、自动地输送到指定的存储和分析目的地,例如数据湖、数据存储和数据分析工具。它更侧重于数据的可靠传输和加载。



以下是其核心工作流程的简化表示:
数据源 -> Kinesis Data Firehose -> 存储/分析目的地(如Amazon S3, Redshift, Elasticsearch)
Amazon Kinesis Video Streams
最后,我们来看Kinesis家族中专门处理视频数据的成员——Kinesis Video Streams。
您可以使用此服务,更轻松、安全地从使用Kinesis Video Streams SDK的摄像设备流式传输视频数据到AWS。传输到云端后,这些视频数据可以用于分析、机器学习、回放或其他处理。处理可以是实时的,也可以是批量的。
以下是其核心工作流程的简化表示:
摄像设备(使用Kinesis Video SDK) -> Kinesis Video Streams -> 处理服务(如Rekognition, Lambda) -> 分析结果/存储
总结
本节课中,我们一起学习了Amazon Kinesis服务家族。我们了解到,Kinesis Data Streams用于实时摄取和处理流数据;Kinesis Data Firehose用于将流数据自动传输到存储和分析目的地;而Kinesis Video Streams则专门用于安全地摄取和处理来自摄像设备的视频流。这些服务共同为处理现代应用程序产生的海量实时数据提供了强大而灵活的解决方案。


如想了解更多,请查阅AWS官方文档或AWS Skill Builder学习平台。请继续关注更多AWS ABCs课程内容。
012:L代表AWS Lambda 🚀
在本节课中,我们将要学习AWS Lambda服务。AWS Lambda是一项无服务器计算服务,它允许您运行几乎任何类型的应用程序或后端代码,而无需预置和管理服务器。
什么是AWS Lambda?🤔
上一节我们介绍了AWS Lambda的基本定义,本节中我们来看看它的具体工作方式。


AWS Lambda允许您创建所谓的AWS Lambda函数。这些函数包含您的代码,并在响应事件或触发器时运行。这意味着Lambda函数不会像托管在Amazon EC2等地方的应用程序那样持续运行代码。相反,您的代码仅在需要运行时才响应事件执行。




Lambda函数的最长运行时间可达15分钟。您可以将函数的超时时间配置为1秒到15分钟之间的任意值。





以下是Lambda函数的一些典型应用场景:
- 文件处理应用
- Web应用后端
- 事件处理逻辑
Lambda函数的核心概念 💡
上一节我们了解了Lambda的用途,本节中我们来深入探讨其核心组成部分。
关于Lambda代码,它本质上是您自己的代码,只是以AWS Lambda能够使用的方式打包。这就是为什么我们说您几乎可以在Lambda上运行任何类型的应用程序。
那么,AWS Lambda支持哪些语言呢?支持的语言列表很长,举几个例子:Python、Node.js、Java。如果您想使用AWS Lambda现有运行时环境不支持的语言,您可以提供自己的运行时环境。因此,在创建函数时,您在选择使用何种语言方面确实具有灵活性。




您的代码必须包含一个称为处理程序的部分,这本质上是您的代码在被调用后开始运行的入口点。



当您创建Lambda函数时,还需要选择一个触发器。这决定了事件具体将从何而来。
以下是触发器的一些例子:
- 通过Amazon API Gateway发出的API调用
- 在Amazon S3中发生的事件
- 通过Amazon EventBridge过滤的事件
- 通过Amazon Kinesis流式传输的数据
Lambda的执行与扩展 ⚙️
上一节我们介绍了如何触发函数,本节中我们来看看函数被调用后发生了什么。
一旦您的Lambda函数被调用,AWS Lambda服务将启动您的代码,并在一个称为执行环境的单元中运行它。执行环境为您的Lambda函数提供了一个安全且隔离的运行时环境。在合理的情况下,执行环境会被重复使用,但管理执行环境生命周期的整个过程由AWS服务自身管理,而非由您管理。




您的Lambda函数的扩展由AWS处理,这是一件好事,因为它减轻了您的一部分运维负担。但您无法通过配置来控制Lambda函数扩展的某些方面。




总结 📝

本节课中我们一起学习了AWS Lambda的基础知识。我们了解到,AWS Lambda是一项无服务器计算服务,它通过响应事件来运行您的代码,无需管理服务器。我们探讨了Lambda函数、支持的编程语言、处理程序、触发器以及执行环境等核心概念。这只是开始了解AWS Lambda所需信息的很小一部分,因此强烈建议您查阅相关文档以获取更深入的知识。
AWS云基础:P13:M代表Amazon Macie 🔍
在本节课中,我们将学习AWS服务Amazon Macie。这是一个完全托管的数据安全服务,它能帮助您发现和保护存储在Amazon S3中的敏感数据。
当今世界,组织管理着难以想象的海量数据。在使用AWS时,通常会将数据存储在Amazon S3中。这些数据中,有些可能具有敏感性,有些则没有。不同类型的数据可能需要遵循不同的安全与合规规则。
那么,当您有大量数据存储在成千上万个Amazon S3存储桶中,并且跨越AWS组织内的多个账户时,如何知道哪些存储桶包含敏感数据,哪些不包含?或者,如何知道哪些存储桶是安全的,哪些不安全?
为了解决这个问题,我们引入Amazon Macie。
什么是Amazon Macie?


Amazon Macie是一项完全托管的数据安全服务,它利用机器学习和模式匹配技术,帮助您发现和保护敏感数据,例如:
- 个人身份信息
- 支付卡详情
- AWS凭证

当您启用Macie后,它会自动开始扫描您的存储桶以发现敏感数据。
Macie的核心功能
上一节我们介绍了Macie的基本概念,本节中我们来看看它的具体功能。
Macie主要提供以下三项核心功能:
-
自动发现与分类
Macie会自动对您Amazon S3存储桶中的数据进行分类。它会提供一个S3存储桶的清单,并持续监控和评估这些存储桶的安全性与访问控制设置,以检测敏感数据。 -
灵活的分类标准
您可以使用Macie提供的内置标准和机制来识别敏感数据。同时,您也可以使用正则表达式创建自己的自定义标准。或者,结合使用这两种方式。

- 风险识别与告警
如果Macie检测到数据安全或隐私存在潜在问题(例如,某个S3存储桶意外变为公开访问),它会创建一个发现项供您审查和处理。


理解“发现项”
Macie会创建多种类型的发现项。每个发现项都包含以下信息:
- 严重性评级
- 受影响资源的信息
- 其他详细信息(例如问题被检测到的时间)
这些发现项会被发布到以下位置:
- Macie控制台
- AWS Security Hub
- Amazon EventBridge
这种发布机制非常有用,因为它允许您:
- 创建自动化系统来修复或报告这些发现。
- 将它们与现有的安全及合规应用程序或服务集成。



本节课中,我们一起学习了Amazon Macie。它是一个强大的工具,通过机器学习自动发现Amazon S3中的敏感数据,评估安全风险,并通过发现项机制提供可见性和自动化修复的途径,帮助您更好地管理和保护云端数据。


要了解更多信息,请随时查阅AWS官方文档。请继续关注AWS ABCs系列的其他内容。
014:N代表Amazon Neptune 🧠
在本节课中,我们将要学习AWS云服务中以字母“N”开头的核心服务——Amazon Neptune。这是一个专为处理高度互联数据而设计的图数据库服务。
过去,关系型数据库是大多数应用程序的默认选择。然而,随着现代应用需求的发展,尤其是在处理数据间关系和数据本身同等重要的场景时,关系型数据库有时会显得力不从心。使用关系型数据库处理这类用例,可能需要编写复杂的查询语句,并且在数据量增长时可能导致性能问题。
图数据库的优势
上一节我们提到了关系型数据库的局限性,本节中我们来看看图数据库如何提供更好的解决方案。




图数据库(如Amazon Neptune)专为存储和查询数据之间的关系而优化。当您尝试建模的数据核心在于连接或关系时,图数据库是一个绝佳的选择。




以下是图数据库的典型应用场景:
- 社交媒体:分析用户之间的好友关系、关注关系。
- 推荐引擎:基于用户行为、物品属性之间的复杂关系进行商品、内容推荐。
- 欺诈检测:识别异常的交易模式或用户关联网络。
在这些场景中,您通常需要理解“谁与谁是朋友”、“谁与谁有交易往来”或“谁与谁有协作关系”。
认识Amazon Neptune
Amazon Neptune是一项全托管的数据库服务,让您在AWS上更轻松地构建和运行图数据库。
Neptune的核心优势在于其速度与规模:
- 性能:它能够存储数十亿个关系,并在查询图时提供毫秒级延迟。
- 扩展性:支持每秒数十万次查询。
- 公式化描述:其性能可以概括为
低延迟查询 + 高并发处理 = 适用于大规模关系数据。



此外,Neptune还提供内置安全功能、持续备份、无服务器计算选项以及与其他AWS服务的集成。




创建与使用Neptune数据库


创建Amazon Neptune数据库集群最简单的方法是使用AWS CloudFormation模板。该模板会自动为您创建所有必需的资源,无需手动构建。
在底层,这些数据库集群由Amazon EC2实例组成。您可以根据用例选择最佳的EC2实例类型,或者选择无服务器实例类型以实现数据库集群的自动扩展。
Neptune的一个关键架构特点是计算与存储分离:
- 主存储位于构成集群的数据库实例(即计算资源)外部。
- 这意味着计算和存储可以独立扩展。
- 存储容量会随着数据增长自动扩展,最高可达128 TiB。
创建数据库集群后,您可以使用以下查询语言连接并运行查询:
- Gremlin
- openCypher
- SPARQL

有时,将查询结果可视化会更有帮助。Neptune Workbench工具通常可以创建查询结果的可视化图表,同时也以表格形式返回结果。




Neptune还支持全球数据库功能,允许您创建一个跨越多个AWS区域的数据库,从而为全球分布式应用程序提供服务。




总结与后续学习

本节课中我们一起学习了Amazon Neptune,这是一个专为处理高度互联数据而设计的全托管图数据库服务。我们了解了它相对于传统关系型数据库在特定场景下的优势、其核心特性(高性能、易扩展、计算存储分离),以及典型的应用场景和创建使用方法。


如果您想了解更多信息,请查阅AWS官方文档或访问AWS Skill Builder。请继续关注更多AWS云基础课程。
015:O代表AWS Organizations 🏢
在本节课中,我们将要学习AWS Organizations服务。当大规模使用AWS时,将所有资源托管在单个账户中并非最佳实践。AWS Organizations是一项账户管理服务,它能帮助你将多个AWS账户整合到一个组织中,并进行集中管理。我们将了解其核心概念、主要功能以及如何简化多账户环境下的计费、权限和标签管理。
组织结构与核心概念
上一节我们介绍了多账户管理的必要性,本节中我们来看看AWS Organizations如何构建这种管理结构。


AWS Organizations允许你创建一个由AWS账户组成的层次结构。这个结构以一个管理账户(也称为组织根账户)为起点。在该根账户之下,你可以创建组织单元(Organizational Units, OUs),这些OU可以包含成员AWS账户或其他嵌套的OU。




这种层级结构可以用一个简单的树状图表示:
管理账户 (根)
├── 组织单元A (OU A)
│ ├── 成员账户 1
│ └── 成员账户 2
└── 组织单元B (OU B)
└── 成员账户 3


使用服务控制策略管理权限
了解了组织结构后,我们来看看如何利用它来集中管理权限。这是通过服务控制策略实现的。
服务控制策略(Service Control Policies, SCPs)是附加到组织根、OU或单个账户上的策略。它们的主要作用是定义成员账户内身份(用户或角色)可用的最大权限。SCP本身并不授予权限,而是作为“护栏”来限制权限范围。
例如,你可以创建一个SCP,明确拒绝所有账户访问某个特定的AWS服务(如Amazon S3)。即使某个成员账户内的IAM策略允许S3访问,该SCP也会覆盖它,最终拒绝访问。SCP的评估逻辑遵循“显式拒绝优先”的原则。





以下是SCP的一个JSON策略示例,它允许除S3外的所有操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "s3:*",
"Resource": "*"
}
]
}



集中计费功能
除了权限管理,AWS Organizations另一个主要优势是提供集中计费功能。
你可以使用管理账户来整合并支付所有成员账户的费用,无需为每个账户单独处理账单。管理账户能够访问其组织内所有成员账户的账单信息、账户活动和账户详情。这大大简化了财务管理和成本追踪。
标签策略标准化

AWS Organizations还简化了另一项常见的治理任务:标签标准化。




你可以使用标签策略(Tag Policies)来确保跨所有AWS账户的标签保持一致。这包括为标签键和标签值定义首选的命名规范(如大小写)。例如,你可以通过策略强制要求所有“Environment”标签的值必须为“Prod”、“Dev”或“Test”,从而避免拼写不一致。
总结与费用说明
本节课中我们一起学习了AWS Organizations服务。我们了解到,它是一个免费的服务,能帮助你将多个AWS账户整合到一个组织中进行集中管理。其核心功能包括:通过组织单元构建账户层级、使用服务控制策略集中管控权限边界、实现所有成员账户的集中计费,以及利用标签策略标准化资源标签。




最重要的是,使用AWS Organizations本身是免费的,它为你管理复杂的多账户环境提供了强大而经济的基础设施。
016:P代表PartyRock 🎉
在本节课中,我们将学习AWS的PartyRock服务。这是一个用于快速构建和分享AI应用的工具,无需编写代码。
概述
上一节我们介绍了AWS的其他服务,本节中我们来看看PartyRock。PartyRock是一个直观的平台,让用户能够通过简单的拖拽和配置,创建基于生成式AI的交互式应用。
什么是PartyRock?
PartyRock是AWS提供的一项服务,它允许用户利用预构建的AI模型(如大型语言模型)来创建应用。用户无需具备机器学习或深度编程知识,即可构建聊天机器人、内容生成器、游戏等应用。
其核心工作流程可以概括为:用户输入想法 -> 选择与配置AI组件 -> 生成可运行的应用。
主要特点
以下是PartyRock的几个关键特点:
- 无代码/低代码:通过可视化界面构建应用,降低了技术门槛。
- 快速原型设计:在几分钟内将想法转化为可交互的应用原型。
- 内置AI模型:直接集成强大的生成式AI模型,无需自行训练或部署。
- 易于分享:生成的应用可以轻松地通过链接分享给他人使用。
如何使用PartyRock?

使用PartyRock构建应用通常包含以下几个步骤:
- 构思想法:明确你想要创建的应用类型,例如一个旅行规划助手或一个故事生成器。
- 选择组件:从组件库中选择合适的“积木”,例如“文本输入框”、“AI文本生成器”、“图像显示区”。
- 连接与配置:通过拖拽连线定义数据流,并配置每个组件的具体参数(如给AI模型的指令)。
- 测试与发布:在构建过程中实时测试应用效果,满意后即可发布并获得分享链接。
总结
本节课中我们一起学习了AWS的PartyRock服务。它是一个强大的无代码AI应用构建器,让任何人都能轻松地将创意转化为现实。通过可视化组合预置的AI组件,用户可以快速开发出功能丰富的交互式应用,并便捷地进行分享。
017:Q代表Amazon Q 🤖
在本节课中,我们将要学习AWS云服务系列中的字母“Q”所代表的服务——Amazon Q。这是一个专为工作场景设计的生成式AI助手,能够根据您的业务数据进行定制,帮助解决各种问题。
通用AI聊天应用虽然强大,但如果它不了解您的公司、数据、客户或业务,其帮助作用就会受限。为此,AWS创建了Amazon Q。这是一个由生成式AI驱动的助手,专为工作设计,并可针对您的业务进行定制。
Amazon Q基于AWS长达17年的知识和经验进行训练,能够帮助您完成多种任务。

以下是Amazon Q的一些核心功能:
- 问题排查与诊断:帮助您解决使用AWS时遇到的问题。
- 架构与最佳实践指导:引导您了解常见的AWS架构和最佳实践。
- 服务对比:针对特定用例,帮助您比较和对比不同的AWS服务。
- 快速解答:为您提供快速且相关的AWS问题答案。







上一节我们介绍了Amazon Q的基本概念,本节中我们来看看如何访问和使用它。
您可以在多个位置找到Amazon Q的界面,包括:
- AWS管理控制台
- AWS官方文档
- 您的集成开发环境(通过Amazon CodeWhisperer)
- 其他聊天应用,例如Slack
当您在AWS管理控制台中遇到问题时,例如EC2权限错误或S3配置错误,可以点击“使用Amazon Q进行故障排除”按钮,Q会为您提供一些修复建议。
另一个使用示例是,您可以向Q提问:“如何在AWS上构建Web应用程序?”。随后,Q会回复一些建议以及在AWS上构建和托管Web应用的常见方法供您探索。Q还会在底部提供文档和资源的链接,方便您进一步阅读。




对于开发者而言,Amazon Q在IDE中的集成是一个非常实用的功能。接下来,我们专门探讨一下这个特性。

当您在IDE中使用Amazon Q时,您可以就您的代码与Q进行对话。
以下是Q在IDE中的主要用途:
- 代码建议与改进:向Q寻求编码建议或改进方案。
- 问题解决:让Q直接在您的IDE中帮助您解决问题。
- 调试、测试与优化:使用Q协助进行代码调试、测试和性能优化。
IDE中一个令人喜爱的功能是,您可以选中一段代码,然后要求Q解释这段代码的作用。这对于开发者,无论是经验丰富还是新手,都非常有用。您还可以要求Q根据对话内容为您生成代码,并将其插入到您的代码库中。
可以肯定的是,我将在未来的编码项目中使用Amazon Q和Amazon CodeWhisperer。它可以帮助您改进代码、提高生产力,并让您更深入地理解代码的具体行为。




本节课中我们一起学习了Amazon Q。总而言之,Amazon Q能够帮助您快速获得相关问题的答案,利用您公司信息库和数据中的专业知识来解决问题、生成内容并执行操作。

目前,Amazon Q仍处于预览阶段,请持续关注AWS的最新动态以了解其后续发展。这远非Amazon Q全部功能的完整介绍,请务必查阅AWS官方文档以了解更多信息。

请继续关注更多AWS云基础课程。
AWS云基础:P18:R代表Amazon RDS 🗄️
在本节课中,我们将要学习AWS云基础系列中的字母“R”,它代表Amazon关系型数据库服务(Amazon RDS)。我们将了解什么是RDS,它的核心优势,以及如何配置和使用它。
什么是Amazon RDS?
Amazon RDS是一项托管的关系型数据库服务。它简化了在AWS上创建和运行关系型数据库的过程。
要创建一个RDS数据库,你需要为你的数据库实例提供所需的配置。这些配置包括:
- 数据库引擎类型:例如MySQL、PostgreSQL等。
- 数据库实例类型:决定计算和内存能力。
- 网络配置:例如VPC和子网。
- 其他管理设置:例如备份、补丁和维护窗口。
RDS会接收所有这些配置信息,并为你创建底层的基础设施,安装好你选择的数据库引擎。这使你无需自行创建和管理基础设施,从而可以将更多时间专注于优化数据库的使用方式。




连接与使用数据库

数据库创建完成后,你可以通过以下方式连接它:
- 使用连接字符串通过应用程序连接。
- 使用数据库工具(如MySQL Workbench)连接。
连接成功后,你就可以开始加载数据库模式(Schema)、导入数据以及运行查询。
支持的数据库引擎
Amazon RDS支持多种流行的数据库引擎,包括:
- MySQL
- MariaDB
- PostgreSQL
- Oracle
- Microsoft SQL Server
- Db2
此外,还有Amazon Aurora。Aurora与MySQL和PostgreSQL完全兼容,旨在以十分之一的成本提供商业级数据库的可用性和性能。



RDS的管理优势


Amazon RDS降低了在AWS上运行关系型数据库的管理负担,因为它可以处理一些无差别的管理任务,例如:
- 配置底层基础设施
- 执行计划的维护作业
- 进行数据库备份
- 应用安全补丁



当然,如果你有需要,也可以对这些任务保留一定的可选控制权。


数据库迁移
如果你计划迁移到Amazon RDS,可以使用以下功能和服务来简化流程:
- AWS数据库迁移服务(DMS):使用DMS,你可以在几乎不停机且不丢失数据的情况下,将数据库和分析工作负载迁移或复制到AWS。
- AWS模式转换工具:此工具可以帮助你将数据库模式从一种引擎转换为另一种引擎。
网络与高可用性配置
上一节我们介绍了RDS的基本创建和管理,本节中我们来看看如何配置网络和高可用性。
网络配置
创建数据库实例时,必须选择将其放置在哪个网络中。这包括:
- 选择要使用的VPC(虚拟私有云)。
- 选择要将数据库实例放入的子网。
- 使用安全组和网络ACL来控制哪些网络流量可以访问你的实例。



一个数据库实例位于一个可用区的一个子网中。为了提高对潜在故障的恢复能力,你应该考虑使用RDS的多可用区(Multi-AZ)部署。

高可用性:Multi-AZ部署
在RDS Multi-AZ部署中:
- 你有一个位于一个可用区(AZ)的主实例。
- 在另一个不同的可用区中,会有一个备用实例。
- 这两个实例之间的数据复制由RDS自动管理。
你的应用程序通过一个单一的DNS端点连接到数据库。如果检测到故障,RDS会在后台自动故障转移到备用实例,而你的应用程序仍然可以使用相同的DNS端点进行连接,从而实现高可用性。
你还可以进行多副本(Read Replicas)部署,其中可以拥有最多两个可读的备用实例,用于扩展读取性能。
总结


本节课中我们一起学习了Amazon RDS的核心概念。我们了解到RDS是一项托管的数据库服务,它支持多种引擎,并能自动处理基础设施、备份、补丁等任务,从而减轻管理负担。我们还探讨了如何配置网络、使用Multi-AZ部署实现高可用性,以及借助DMS进行数据库迁移。掌握RDS能让你更高效地在云上运行关系型数据库。
019:Amazon S3 🗂️
在本节课中,我们将要学习AWS云基础系列中字母“S”所代表的服务:Amazon S3。Amazon S3是一个海量可扩展的对象存储服务,拥有极其广泛的应用场景。
概述
上一节我们介绍了其他AWS服务,本节中我们来看看Amazon S3。S3是AWS提供的一种对象存储服务,它设计用于存储和检索任意数量的数据,适用于从网站托管到大数据分析的多种场景。
核心概念与用途



Amazon S3的核心是一个对象存储系统。这意味着你可以将任何类型的文件作为“对象”存储在其中。以下是S3的一些主要用途:



- 数据湖与数据分析:存储用于分析的海量数据。
- 媒体存储:存储照片、视频、音乐等媒体文件。
- 文件存储:存储文本文件、日志文件、应用程序数据等。
- 静态网站托管:利用其静态网站托管功能托管网站。
- 构建产物存储:存储代码构建过程中产生的二进制文件。


你可以向S3中存储无限量的数据,但每个单独的对象大小必须小于 5 TB。
存储结构:桶与对象
当你上传一个对象到S3时,必须将其上传到一个桶中。桶是S3中对象的容器,一个桶内可以存放任意数量的对象。
关于桶,有几个关键点需要注意:
- 桶的名称必须在全球范围内唯一。
- 桶创建在单个AWS区域内。
- 默认情况下,上传到S3的对象会自动在该区域的至少三个可用区内复制,以实现高耐久性。
- 如果需要跨区域复制对象(例如为了灾难恢复),可以使用跨区域复制功能。
- 默认情况下,桶和对象是私有的。你可以通过桶策略和访问控制列表来控制访问权限。大多数用例要求桶和对象保持私有。
安全与访问控制


S3提供了多层次的安全功能来保护你的数据。



- 阻止公共访问:此功能可以覆盖ACL或桶策略的设置,强制限制对你的资源的公共访问,是防止数据意外公开的重要安全措施。
- 默认加密:S3默认会自动加密所有数据。
- 服务器端加密:支持四种密钥管理选项进行服务器端加密。
- 敏感数据保护:可以结合使用其他AWS服务(如本系列“M”章节介绍过的Amazon Macie)来发现和保护存储在S3中的敏感数据。
存储类别与成本优化
为了在不同数据访问模式下提供最具成本效益的存储,S3提供了分层的存储类别。
主要的S3存储类别包括:
- S3 Standard:适用于频繁访问的数据。
- S3 Standard-IA:适用于不常访问但需要快速检索的数据。
- S3 Glacier Instant Retrieval:适用于很少访问且需要毫秒级检索的数据。
- S3 Glacier Flexible Retrieval:适用于长期存档且检索时间从分钟到小时不等的数据。
- S3 Glacier Deep Archive:适用于极长期存档且检索时间在12小时以上的数据。
- S3 One Zone-IA:适用于可容忍单个可用区丢失的不常访问数据。
此外,你还可以使用智能分层功能。它能根据数据的访问模式,自动将数据移动到最具成本效益的存储层。


监控与管理
S3还提供了强大的监控工具来帮助你管理存储。
- S3 Storage Lens:此功能提供组织范围内对象存储使用情况的可见性,包括活动趋势,并能提出建议以优化成本效率和应用数据保护最佳实践。
总结



本节课中我们一起学习了Amazon S3的基础知识。我们了解到S3是一个功能强大、用途广泛的对象存储服务,它通过“桶”来组织“对象”,并提供多种存储类别、强大的安全功能和监控工具来满足不同场景的需求。本次介绍仅是S3功能的冰山一角,建议你查阅官方文档以深入了解。请继续关注更多AWS云基础内容。
020:T代表AWS Trusted Advisor 🔍
在本节课中,我们将要学习AWS Trusted Advisor服务。这是一个能够检查您的AWS环境并提供优化建议的工具,帮助您在成本、性能、安全性和容错能力等方面做出改进。
AWS Trusted Advisor是一项服务,它会检查您的AWS环境,并向您提供关于如何节省资金、提升性能、加强安全性、提高容错能力、了解服务限制等方面的建议。该服务之所以能提供有意义的建议,是因为其设计基于帮助数十万AWS客户所获得的洞察和经验教训,并将AWS最佳实践融入其建议中。




上一节我们介绍了Trusted Advisor的基本概念,本节中我们来看看它的具体检查类别。



Trusted Advisor会针对不同类别运行检查,这些类别包括:
- 成本优化
- 性能
- 安全性
- 容错能力
- 服务限制
- 卓越运营
以下是几个简短的检查示例,帮助您理解该服务的功能。
成本优化检查示例:一项检查是查找闲置的负载均衡器,这可能表明存在未被有效使用、可以删除的负载均衡器。例如,某个账户中存在一个没有活动后端实例的负载均衡器,这个负载均衡器就可能被删除,是需要跟进的事项。



性能检查示例:一项检查是Amazon EBS吞吐量优化。该检查会查找那些性能可能受限于其所连接的EC2实例最大吞吐量容量的Amazon EBS卷。对此的建议操作是使用能够支持更高EBS吞吐量的EC2实例类型。
安全检查示例:一项检查是查找使用已弃用运行时的Lambda函数。已弃用的运行时无法获得安全更新,因此从安全角度出发,这需要处理。这里的建议操作是迁移到受支持的运行时。
AWS Trusted Advisor可以运行许多检查,以上只是几个简单的例子,让您了解该服务的功能。
根据检查结果,其状态可能为“未发现问题”、“建议调查”或“建议操作”。您可以使用其他AWS服务(如Amazon EventBridge)来监控AWS Trusted Advisor的结果。如果检查状态发生变化,它会向Amazon EventBridge发布一个事件,该事件随后可以选择性地调用其他AWS服务,例如,可以触发一个向Slack频道发送消息以通知团队的Lambda函数,或者使用Amazon Simple Notification Service发送电子邮件通知。





Trusted Advisor显示的结果涵盖了AWS账户内的所有区域。然而,如果您大规模使用AWS,很可能需要在多个AWS账户中操作。对于多账户环境,您可以启用与AWS Organizations的信任访问(这是我们在此视频系列字母O部分介绍过的服务)。组织视图将允许您在一个位置查看组织内所有账户、所有区域的所有检查结果。
另外需要注意的是,AWS Trusted Advisor是AWS Support的一项功能,因此您可用的检查项目取决于您的AWS Support支持计划。



本节课中我们一起学习了AWS Trusted Advisor服务。它通过自动化检查,帮助您遵循AWS最佳实践,优化云环境。请务必查阅AWS官方文档以了解更多关于此服务的详细信息,并请继续关注更多AWS基础知识。
021:AWS用户组 👥
在本节课中,我们将要学习AWS用户组。用户组是AWS社区的重要组成部分,为学习、交流和建立人脉提供了宝贵的机会。
欢迎回到AWS ABCs系列。今天的字母是“U”。虽然今天没有特定的AWS服务要介绍,但我想讨论一个与AWS社区密切相关的话题——AWS用户组。
什么是AWS用户组?
AWS用户组是由社区成员自发组织的、点对点的交流社区。这些团体定期举办聚会,通过演示、网络研讨会、研讨会或其他形式的学习与社交活动,分享AWS相关知识。
上一节我们介绍了用户组的定义,本节中我们来看看参与用户组能带来哪些具体好处。
用户组的价值


在云技术领域,能够实时提问、与同行建立联系并分享见解,对职业发展大有裨益。以下是参与用户组的主要价值:



- 实时交流:在活动中直接向经验丰富的从业者提问。
- 建立人脉:与云技术领域的同行建立联系和关系。
- 经验分享:与他人分享自己的见解,并从他人的经验中学习。
这些用户组的创建及其举办的活动完全由社区驱动。这意味着这些团体并非由AWS官方组织或直接隶属,而是由当地对AWS技术感兴趣、并乐于分享的人们自发形成的社区。
如何找到并加入用户组
通过他人的经验可以学到很多。参加AWS用户组是聆听本地专业人士分享故事、深入了解如何在AWS上成功运营的绝佳方式。
截至本视频录制时,全球已有超过500个用户组可供加入。要查找您附近是否有AWS用户组在活动,可以访问“查找AWS用户组”页面,并输入您所在的城市进行搜索。
目前许多用户组也举办线上线下混合活动,因此您可以选择在线参加,或寻找线下见面的团体。
无论您是希望了解更多知识的云技术新手,还是寻找志同道合者交流想法的经验丰富的专业人士,亦或是希望分享知识的AWS专家,都可以找到适合您的本地AWS用户组。
以下是加入用户组的步骤:


- 访问“查找AWS用户组”页面。
- 在搜索框中输入您所在的城市或地区。
- 查看搜索结果,找到附近的用户组。
- 联系该用户组的组织者,了解如何参与活动。


如何创建新的用户组
如果您所在的地区没有AWS用户组,您或许可以考虑创建一个。
在“查找AWS用户组”页面底部,有一个“常见问题”部分,专门为有兴趣创建新用户组的人士提供指导,您可以在此了解更多信息。
总结与资源
本节课中我们一起学习了AWS用户组。每个用户组都各有特色,活动安排也各不相同。


要查找您附近的AWS用户组,可以访问“查找AWS用户组”页面。您可以通过以下短链接快速访问:
https://aws.amazon.com/developer/community/usergroups/find/


请持续关注,获取更多AWS基础知识。
022:Amazon VPC 🏗️
在本节课中,我们将要学习AWS云基础中的字母“V”所代表的核心服务:Amazon Virtual Private Cloud。我们将了解什么是VPC,如何创建和配置它,以及它在构建安全、隔离的云网络环境中的关键作用。
概述
Amazon Virtual Private Cloud,简称VPC,是您在AWS云中专属的逻辑隔离虚拟网络。您可以在VPC内部署AWS资源,例如Amazon EC2实例或RDS数据库。您可以将其理解为云端的“数据中心网络”。


上一节我们介绍了其他AWS服务,本节中我们来看看如何构建自己的云网络基础——VPC。


创建VPC的三大配置项
创建一个VPC时,您需要配置以下三个主要部分:
- VPC名称:为您的VPC指定一个易于识别的名称。
- AWS区域:选择您的VPC将部署在哪个AWS地理区域。VPC会自动横跨所选区域内的所有可用区,但不会跨区域。
- CIDR范围:配置一个CIDR(无类别域间路由)地址块,例如
10.0.0.0/16。这将决定您VPC网络的IP地址空间大小。




子网:网络中的网络
创建VPC后,您还需要创建子网才能在其中部署资源(如EC2实例)。子网是VPC网络内的细分网络段。
以下是创建子网时需要确定的配置:


- 所属VPC:指定子网属于哪个VPC。
- 可用区:选择子网位于哪个可用区内。为了实现冗余并遵循AWS最佳实践,您应确保在计划使用的每个可用区中都创建子网,并且架构至少跨两个可用区部署。
- CIDR范围:为子网分配一个CIDR块,它必须是其所属VPC的CIDR块的子集。例如,如果VPC是
10.0.0.0/16,子网可以是10.0.1.0/24。








公共子网与私有子网
一个常见的网络设计模式是在每个可用区创建至少一个公共子网和一个私有子网。
- 公共子网:包含允许与互联网通信的资源。
- 私有子网:包含没有互联网连接性的资源。
需要明确的是,子网的“公”或“私”并非由其名称决定,而是由与之关联的路由表决定的。路由表中的规则决定了子网是否具有互联网连通性。
此外,您还可以使用网络访问控制列表和安全组等其他网络安全规则来控制网络流量。










VPC的网络连接


默认情况下,一个VPC自身不具备与互联网、本地数据中心或其他VPC的连接能力。



- 互联网连接:您需要创建并附加一个互联网网关到您的VPC。然后,在公共子网的路由表中,添加指向该互联网网关的路由。
- VPC间连接:要连接不同的VPC,可以使用 VPC对等连接,或者使用 AWS Transit Gateway(中转网关)。
- 与本地数据中心连接:AWS Transit Gateway 也可用于路由VPN连接到本地数据中心的流量。

VPC还有其他类型的网关和连接选项,建议查阅AWS官方文档以了解更多。



总结

本节课中我们一起学习了 Amazon VPC。我们了解到VPC是一个逻辑隔离的虚拟网络,是部署AWS资源的基石。创建VPC需要配置名称、区域和CIDR范围。为了部署资源并实现高可用,需要在VPC内跨多个可用区创建子网,并区分公共子网和私有子网。最后,通过互联网网关、VPC对等连接或中转网关等组件,可以实现VPC与互联网、其他VPC及本地网络的连接。


关于VPC的讨论到此为止。下一节,我们将迎来字母“W”,敬请期待更多AWS云基础知识。
AWS云基础:W:AWS架构完善的框架 🏗️
在本节课中,我们将要学习AWS架构完善的框架。这个框架是AWS提供的一套最佳实践指南,用于帮助您评估和改进在AWS云上构建的工作负载。
AWS架构完善的框架帮助您根据云最佳实践来评估您的AWS工作负载。它可以引导您围绕工作负载的设计和运维展开建设性的讨论,并帮助您找到AWS架构中需要改进的领域。AWS解决方案架构师拥有多年帮助客户评估其AWS工作负载的经验,致力于寻找在成本、安全性、卓越运维或其他方面进行改进的方法。AWS架构完善的框架汲取了这些经验,并整合了一套资源,包括评估问题和文档,供团队协作使用,以便对AWS架构进行建设性的讨论。
上一节我们介绍了框架的目的,本节中我们来看看它的核心组成部分。



该框架的信息被组织在六个不同的类别中,即架构完善框架的六大支柱。
以下是这六大支柱的列表:
- 成本优化:以最低的价格点提供所需的功能。
- 可靠性:确保工作负载在需要时能够正常工作。
- 安全性:保护数据、系统和资产,并利用AWS服务提升安全状况。
- 性能效率:高效使用资源以满足需求,并在需求变化和技术演进时保持效率。
- 卓越运维:有效支持开发、运行工作负载、获取运维可见性与洞察,并改进流程。
- 可持续性:审视工作负载对环境的影响,包括能源消耗和整体效率。
每个支柱都包含设计原则。以卓越运维支柱为例,其部分设计原则包括:
- 将运维作为代码执行:使用代码自动化运维任务。
- 进行微小、频繁且可逆的变更:降低变更风险,便于回滚。
- 预见故障:提前设计应对故障的方案。
您应该查阅AWS架构完善框架的文档,以了解每个支柱的具体设计原则、最佳实践、定义和资源。但现在,让我们继续定义每个支柱。


对于安全性,这个支柱关注保护数据、系统和资产,以及使用AWS服务来改善您的安全状况。

下一个支柱是可靠性。这个支柱帮助您评估工作负载在需要时正常工作的能力。您的系统可靠吗?
接下来是成本优化,它将帮助您评估工作负载,看其是否以尽可能低的价格点提供了所需的功能。
然后是性能效率,这是关于高效使用资源以满足需求,并在需求变化和技术演进时长期保持这种效率。
最后但同样重要的是可持续性,它帮助您更仔细地审视工作负载对环境的影响,包括能源消耗和整体效率。




每个支柱都有关联的问题,您可以与团队一起使用这些问题来评审您的架构。这些评审旨在鼓励团队深入探讨的对话,而不是对架构的审计。
此外,AWS管理控制台中有一个名为 AWS架构完善工具 的工具,您可以用它来根据AWS架构完善框架中列出的AWS最佳实践,记录和衡量您的工作负载。
为了帮助您获得一些实践这些AWS最佳实践的经验,还有 AWS架构完善实验室,您可以通过访问 wellarchitectedlabs.com 来使用。
好的,关于AWS架构完善框架,我们就介绍到这里。我建议任何尝试学习AWS的人都阅读一下架构完善框架的文档,您可以点击此链接了解更多信息。接下来,我们将学习字母X。您认为我们会涵盖什么内容呢?请一如既往地关注更多AWS基础知识。



在本节课中,我们一起学习了AWS架构完善的框架,了解了它的六大支柱:成本优化、可靠性、安全性、性能效率、卓越运维和可持续性,以及如何利用框架提供的工具和资源来评估和改进您的云架构。
024:X代表AWS X-Ray 🔍
在本节课中,我们将要学习AWS X-Ray。这是一个用于分析和调试分布式应用程序性能的服务。我们将了解它如何帮助您快速定位问题,并介绍其核心概念。
想象一个场景:您在AWS上托管了一个电子商务应用程序。客户通过支持渠道反馈,他们在尝试结账和购买产品时遇到了中断和速度变慢的问题。
这个电子商务应用程序以分布式方式托管,由多个服务共同构成结账或购买功能。在后端的某个环节,其中一个服务出现了性能问题,可能是代码中存在错误,或者某个地方配置不当,导致了这些问题。




关键在于,您如何知道问题出在哪里?如何快速缩小范围,从而准确定位是哪个服务给最终用户带来了问题?这是分布式应用程序的常见问题,而实施跟踪将是一个很好的解决方案。



使用AWS X-Ray进行跟踪
AWS X-Ray是一项完全托管的服务。它收集您的应用程序在处理请求时,跨越构成分布式应用程序的各个服务的信息,并将这些信息汇集在一起。这样,您就能更快地定位问题或瓶颈,并发现优化应用程序的机会。
它提供了仪表板和API等工具,您可以使用这些工具来查看、筛选和从跟踪数据中提取见解。在调查问题时,获取这种细粒度的时间信息非常有帮助。使用X-Ray控制台,您可以通过服务地图直观地看到是哪个服务导致了速度变慢。
然后,您可以通过查看日志或相关指标,进一步深入进行故障排除。






上一节我们介绍了AWS X-Ray的用途和基本价值,本节中我们来看看其核心工作概念。
以下是使用X-Ray时需要了解的一些基本概念:
- 段:您的应用程序运行所在的主机会收集段并将其发送到X-Ray。段包含有关应用程序正在处理的请求的信息。
- 子段:子段提供更细粒度的时间信息,可以更详细地描述您的应用程序对下游的调用,例如对外部API、AWS API甚至数据库的调用。
- 服务地图:由X-Ray生成,为您提供服务的完整可视化视图以及它们彼此之间的关系。
- 跟踪:一个跟踪收集由单个请求生成的所有段。您可以在X-Ray控制台中查看跟踪,并深入查看有关单个段或子段的更多详细信息以获得洞察。

根据您使用的计算服务,实施跟踪可以像通过配置开启一样简单。例如,如果您使用AWS Lambda,只要配置了正确的权限即可。

您还可以对应用程序进行插桩,以便查看从您的应用程序发出的请求的更多数据。例如,如果您的应用程序每个请求会发出四个不同的API调用,您可以对应用程序进行插桩,以便查看每个单独API调用的更细粒度时间信息。
您可以使用AWS Distro for OpenTelemetry进行此类插桩。这是基于云原生计算基金会(CNCF)OpenTelemetry项目的AWS发行版。
本节课中我们一起学习了AWS X-Ray。我们了解到它是一个强大的工具,用于跟踪和分析分布式应用程序中的请求流,帮助快速定位性能瓶颈和故障点。其核心概念包括段、子段、服务地图和跟踪。根据服务类型,启用方式可能很简单,也可以通过SDK进行更深入的插桩。




接下来,我们将迎来字母Y,这可能需要一点创意。请在评论中告诉我您认为我们接下来会讲什么。请继续关注更多AWS基础知识。
025:Y代表为何选择AWS - AWS的六大优势 🚀
在本节课中,我们将探讨为何选择AWS,即云计算带来的六大核心优势。理解这些优势有助于我们认识云服务如何改变传统IT运营模式。
概述
本节不介绍具体的AWS服务,而是聚焦于云计算的核心理念。我们将逐一解析AWS的六大优势,这些优势共同构成了选择云计算而非传统本地数据中心的关键理由。
六大优势详解
上一节我们结束了关于具体服务的讨论,本节中我们来看看选择AWS的战略性原因。
1. 以可变成本替代固定成本 💰




在本地数据中心运营时,你需要预先购买并安装一批资源(如服务器),并为此支付固定费用,无论实际使用量如何。

相比之下,在云环境中,你可以在需要时配置资源,在不再需要时释放资源。资源消耗量可根据需求变化,你只需为实际使用的部分付费。
这意味着你可以随时间迭代优化解决方案,使其更具成本效益。云计算提供了一种可变成本模型。
2. 受益于巨大的规模经济 📈
AWS运营着庞大的基础设施,为全球数十万客户提供服务。在计算、数据库、存储和基础设施服务等领域,AWS拥有更高的规模经济效应。
因此,与自行构建相比,使用AWS可以实现更低的可变成本。
3. 无需猜测容量 📊

在本地环境中,你常常需要预估基础设施需求。可能会高估需求,导致为闲置的昂贵资源付费;也可能低估需求,从而导致应用程序出现性能问题。




在云环境中,这些问题不复存在。它允许你灵活扩展以满足当前需求,帮助你避免资源过度配置或容量短缺。
4. 提升速度与敏捷性 ⚡
在AWS中启动新资源只需几次点击或API调用。因此,你可以运行实验以提高敏捷性,并更快地将产品推向市场,因为在云中开发和实验的成本与时间显著降低。
5. 停止在运行和维护数据中心上花钱 🛠️
你可能听说过AWS可以处理运行IT解决方案时的一些“无差异重活”。这指的是服务器的上架、堆叠和供电等基础设施工作,无论你的产品是什么,这些工作都需要相同的时间和精力。
你应该将更多时间花在能体现产品差异化的项目上,而不是基础设施上。
6. 数分钟内实现全球部署 🌍



借助遍布全球的AWS区域,你可以将应用程序部署到多个地理区域,而无需自行构建全球基础设施。

这意味着你可以以较低的成本,为客户提供更低的延迟和更好的整体体验,与本地计算相比优势明显。
总结
本节课中我们一起学习了选择AWS云计算的六大核心优势:
- 可变成本模型替代固定成本。
- 借助AWS的规模经济降低单位成本。
- 弹性伸缩,无需猜测容量。
- 快速资源部署,提升速度与敏捷性。
- 摆脱基础设施运维的“无差异重活”。
- 轻松实现全球部署,改善用户体验。


理解这些优势是构建高效、经济云架构的思想基础。接下来,我们将迎来AWS ABC系列的最后一个字母。
026:AWS Local Zones 🏙️
在本节课中,我们将要学习AWS全球基础设施的最后一个核心概念——AWS Local Zones。我们将了解它是什么、为什么需要它,以及如何使用它。
概述
AWS Local Zones是一种将AWS计算、存储、数据库和其他服务部署到更靠近最终用户和企业的地理位置的基础设施。它旨在为需要极低延迟(毫秒级)访问的特定工作负载提供支持。
上一节我们介绍了AWS区域和可用区,本节中我们来看看AWS如何通过Local Zones进一步扩展其基础设施的覆盖范围和能力。
AWS全球基础设施核心概念回顾

在深入了解Local Zones之前,让我们快速回顾一下相关的AWS全球基础设施概念。


AWS服务通过AWS区域、可用区和AWS Local Zones在全球不同位置进行部署。

- AWS区域:是AWS资源所在的地理区域。目前全球已启动33个区域,每个区域以其地理区域命名,例如“美国东部(弗吉尼亚北部)”、“欧洲(米兰)”或“亚太地区(孟买)”。
- 可用区:是AWS区域内的一个或多个离散的数据中心。每个可用区都设计为相互隔离,但通过低延迟链路相连。最佳实践是在一个AWS区域内跨多个可用区部署架构,以实现高可用性。
在AWS中创建资源时,其位置绑定规则如下:
- 部分资源绑定到单个可用区。
- 部分资源绑定到单个区域。
- 部分服务是全球性的。
需要查看每个具体服务的文档来确定其位置规则。例如:
- Amazon EC2实例或Amazon RDS数据库实例绑定到单个子网。
- 子网则绑定到单个可用区。
因此,在创建这些资源时,你需要选择将其放置在哪个可用区及其对应的子网中。
什么是AWS Local Zones?🎯
现在让我们正式讨论Local Zones。
AWS Local Zones将AWS基础设施(如计算、存储、数据库和其他服务)部署到更靠近最终用户和企业的位置。它们为需要个位数毫秒级延迟访问特定AWS服务的工作负载提供支持。

Local Zones可以帮助你运行对延迟敏感的应用,例如:
- 实时游戏
- 媒体流处理
- 数据实时处理与分析


因为这些Local Zones在物理上更接近你的最终用户,从而显著降低了网络延迟。



以下是Local Zones的其他典型用例:
- 数据处理
- 混合云迁移
- 具有本地数据驻留要求的工作负载
- 增强现实/虚拟现实工作负载
- 媒体内容创作与流媒体工作负载
如何使用AWS Local Zones?🔧
要使用AWS Local Zones,你需要遵循以下步骤:
- 启用Local Zone:首先,你需要在你的AWS账户中启用目标Local Zone。
- 扩展VPC:然后,你可以将父区域(例如
us-west-2)中的任何VPC扩展到已启用的Local Zone。 - 创建子网与部署资源:接下来,你可以在Local Zone内创建一个子网,并在该子网中部署EC2实例、RDS数据库等资源。
其配置关系可以简化为以下逻辑:
AWS 账户
└── AWS 区域 (例如: us-west-2)
├── 可用区 1 (例如: us-west-2a)
├── 可用区 2 (例如: us-west-2b)
└── Local Zone (例如: 洛杉矶)
└── 你的VPC的子网
└── 你部署的资源 (如 EC2 实例)
AWS专用Local Zones
除了标准的Local Zones,AWS还提供AWS专用Local Zones。
AWS专用Local Zones是为特定客户或社区构建和使用的Local Zones。它们旨在为客户提供更强的安全性和治理控制,适用于有严格合规性、数据主权或特殊性能要求的场景。




总结



本节课中我们一起学习了AWS全球基础设施的最后一个组成部分——AWS Local Zones。
我们回顾了区域和可用区的概念,明确了Local Zones的定义及其降低延迟的核心价值。我们列举了其对实时游戏、流媒体等场景的适用性,并介绍了启用和使用Local Zones的基本步骤。最后,我们还了解了为特定需求设计的AWS专用Local Zones。
至此,AWS云基础系列课程也迎来了尾声。感谢你的学习。如果你想深入了解AWS,建议你查看AWS Skill Builder上的课程,你也可以在Coursera上找到我们的一些课程。

下次再见!

浙公网安备 33010602011771号