AWS云入门宝典

发布于:2025-05-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

付费方式

按实际使用量付费。

云计算的定义

云计算是通过互联网按需提供 IT 资源,并采用按需付费的定价模式。具体来说,采用随用随付定价模式,通过互联网按需交付 IT 资源和应用程序。

  • 只需为实例运行时使用的计算时间付费,实例停止或终止时无需付费。
  • 只需为需要或想要的服务器容量付费,可节省成本。

云计算的优势

与本地或混合环境中的计算相比,在 AWS 云中运行可获得众多优势。

在本节中,您将了解云计算的六大优势:

  • 将前期费用转变为可变支出。
  • 实现大规模经济效益。
  • 无需猜测容量。
  • 提高速度和敏捷性。
  • 不再花费资金来运行和维护数据中心。
  • 数分钟内实现全球化部署。

云计算部署模式

  • 基于云的部署
  • 本地部署(又称私有云部署)
  • 混合部署

云计算规模与成本节省

由大量客户带来的汇总云使用量可以实现更低廉的随用随付价格。

Amazon EC2 实例类型

通用实例

  • 特点:可实现计算、内存和联网资源的平衡。
  • 适用场景:适用于各种工作负载,例如:
    • 应用程序服务器
    • 游戏服务器
    • 企业应用程序的后端服务器
    • 中小型数据库

假如你有一个应用程序中,其中计算、内存和联网所需的资源大致相当,且不需要在任何一个资源方面进行优化,可考虑使用通用实例。

计算优化型实例

  • 特点:非常适合需要使用高性能处理器的计算密集型应用程序。
  • 适用场景:除了可用于 Web、应用程序和游戏服务器等工作负载外,还特别适合高性能 Web 服务器、计算密集型应用程序服务器、专用游戏服务器以及需要在单个组中处理多个事务的批处理工作负载。

内存优化型实例

  • 特点:适合处理内存中的大型数据集的工作负载,能提供较快的性能。
  • 原理:在计算中,内存是一个临时存储区域,保存了中央处理器 (CPU) 为完成操作所需的全部数据和指令。电脑程序或应用程序先从存储加载到内存中,然后才能运行,这一预加载过程让 CPU 能够直接访问电脑程序。
  • 适用场景:如果工作负载在运行应用程序之前需要预先加载大量数据,例如高性能数据库,或者需要实时处理大量非结构化数据的工作负载,可考虑使用内存优化型实例。

加速计算实例

  • 特点:使用硬件加速器或协处理器执行某些功能,比 CPU 上运行的软件更高效,这些功能包括浮点数计算、图形处理和数据模式匹配等。
  • 适用场景:非常适合图形应用程序、游戏流和应用程序流等工作负载。

存储优化型实例

  • 特点:适用于需要对本地存储上的大型数据集进行高速连续读写访问的工作负载,旨在向应用程序提供数万次低延迟随机 IOPS(每秒输入/输出操作数,是衡量存储设备性能的指标,表示一个设备在一秒钟内可以执行多少次不同的输入或输出操作)。
  • 适用场景:例如分布式文件系统、数据仓库应用程序和高频联机事务处理 (OLTP) 系统。如果应用程序对 IOPS 的要求很高,与未针对此类使用案例进行优化的其他实例类型相比,存储优化型实例可以提供更好的性能。

例题

  1. 哪种 Amazon EC2 实例类型适合数据仓库应用程序?
    • 答案:存储优化型
  2. 哪种 Amazon EC2 实例类型可实现计算、内存和联网资源的平衡?
    • 答案:通用型
  3. 哪种 Amazon EC2 实例类型非常适合高性能数据库?
    • 答案:内存优化型
  4. 哪种 Amazon EC2 实例类型提供高性能处理器?
    • 答案:计算优化型

Amazon EC2 定价

按需实例(On-Demand Instances)

  • 适用场景:非常适合不能中断的短期无规律工作负载。
  • 特点:无预付成本或最低合同期限,实例会在停止之前持续运行,只需为使用的计算时间付费。

预留实例(Reserved Instances)

  • 特点:对账户中按需实例的使用**提供账单折扣**。
  • 类型
    • 标准预留实例:如果知道稳态工作负载所需的 EC2 实例类型和大小,以及计划在其中运行这些应用程序的 AWS 区域,这个选项非常适合。
    • 可转换预留实例:如果需要在不同的可用区或不同的实例类型中运行 EC2 实例,可转换预留实例可能适合。
  • 购买期限:可以购买 1 年期或 3 年期的标准预留实例和可转换预留实例,使用 3 年期选项可实现更大的成本节省。

Savings Plans(节省**承诺计划**)

AWS为包含Amazon EC2在内的部分计算服务推出了Savings Plans。用户若针对实例系列或区域做出每小时支出承诺,且承诺期限为1年或3年 ,便可借助EC2实例Savings Plans降低EC2实例使用成本。与按需实例的费率相比,这种方式最高能**节省72%**的成本。在承诺的使用范围内,用户按Savings Plans折扣费率(如每小时10 USD)付费;超出承诺范围的使用,则按常规按需实例费率收费。( Amazon SageMake服务也支持Savings Plans)

Spot实例(Spot Instances)

Spot实例适用于启动和结束时间灵活,或者能够承受中断的工作负载。其原理是利用AWS云中未使用的计算容量,以较低的价格提供给用户。由于这些容量是动态变化的,所以Spot实例可能会在使用过程中被中断,但对于那些对时间要求不严格、可容错的任务来说,是一种经济高效的选择。

专用主机(Dedicated Hosts)

专用主机是指Amazon EC2实例容量完全供用户专用的物理服务器。使用专用主机,用户可以在专用的物理环境中运行EC2实例,满足特定的合规性、安全性或其他特殊需求。比如,对于有严格数据隔离和安全要求的企业,专用主机能提供更符合其需求的运行环境。

Amazon Lightsail(简化的vps服务)

Amazon Lightsail是AWS提供的一个简化的虚拟专用服务器(VPS)服务,专为开发者和小型团队设计。它提供了预配置的计算资源和易于使用的管理界面,适合初学者和缺乏AWS经验的开发者快速构建和部署应用程序。

例题

1. 若指定一定数量的EC2实例在某个区域中运行特定的操作系统、实例系列和大小以及租赁,可提供折扣的Amazon EC2定价选项是?
    * **答案**:标准预留实例。因为标准预留实例适用于用户明确知道稳态工作负载所需的EC2实例相关配置及运行区域的情况,能为这类使用场景提供账单折扣。
2. 针对实例系列或区域做出每小时支出承诺且期限为1年或3年,可提供折扣的Amazon EC2定价选项是?
    * **答案**:EC2实例Savings Plans。这是AWS专门为鼓励用户长期、稳定使用计算服务推出的优惠方案,通过承诺使用量和期限来获取折扣。

自动横向伸缩扩展服务

自动横向伸缩扩展服务是一种根据实际需求自动调整资源规模的机制,即从满足当前需求的资源配置起步,设计具备自动扩展和缩减能力的架构,以灵活响应不断变化的业务需求。
若要自动执行扩展流程,可使用AWS的Amazon EC2 Auto Scaling服务。该服务的特点是横向扩展,即通过增加EC2实例数量来应对负载变化。

  • Auto Scaling组的配置参数
    • 最小容量:是指Auto Scaling组中运行的EC2实例的最少数量,用于确保服务的基本运行能力。
    • 所需容量:表示当前期望的实例数量。若未指定,所需容量默认等于最小容量。
    • 最大容量:规定了Auto Scaling组能够扩展到的最大实例数量,用于限制资源使用和成本。
  • 扩展方式
    • 动态扩展:可实时响应不断变化的需求。例如,当应用程序的流量突然增加时,动态扩展机制能迅速启动新的EC2实例,分担负载,保证服务的正常运行;当流量减少时,又能自动减少实例数量,避免资源浪费。
    • 预测性扩展:依据预测的需求自动安排合适数量的Amazon EC2实例。通过分析历史数据、趋势和其他相关因素,提前预测未来的负载情况,提前准备好足够的计算资源,提高系统的响应速度和稳定性。

利用ELB引导流量

Elastic Load Balancing(弹性负载均衡,简称ELB)是AWS提供的一项关键服务,主要功能是在多个资源(如Amazon EC2实例)之间自动分配应用程序的传入流量。

负载均衡器作为流入Auto Scaling组的所有Web流量的唯一入口,起到了流量分发中枢的作用。当用户对传入流量进行添加或删除Amazon EC2实例的操作时,请求首先会被路由到负载均衡器,然后由负载均衡器将这些请求均匀地分布到多个资源上进行处理。例如,在拥有多个Amazon EC2实例的场景中,ELB会合理分配工作负载,防止单个实例承受过多压力,保障系统的整体性能和稳定性。

安全性方面: 在应对Slowloris(蠕虫)攻击时,ELB发挥着重要作用。由于ELB负责首先处理http流量请求,它可以识别并抵御这类攻击,保护后端的EC2实例免受恶意流量的影响,确保应用程序的正常运行。

通常,将 ELB 和 ALB 放置在公有子网中可以使它们能够直接接收来自互联网的流量,从而将流量分配到后端的 EC2 实例或其他目标资源上。不过,在某些情况下,比如当需要更严格的安全控制或特定的网络隔离时,也可能会将负载均衡器放置在私有子网中,并通过 NAT 网关或其他方式来允许外部流量访问

消息收发和队列

消息收发和队列相关的服务主要包括Amazon Simple Queue Service(简称SQS)和Amazon Simple Notification Service(简称SNS),它们属于消息中间件,在客户端与服务端交互过程中扮演中间人的角色。

  • Amazon Simple Queue Service(SQS):能够让用户在软件组件之间发送、存储和接收任意容量的消息,并且无需借助其他服务即可保证信息不丢失。SQS常用于解耦不同的应用程序组件,使它们能够异步通信,提高系统的整体性能和可靠性。
  • Amazon Simple Notification Service(SNS):与SQS类似,SNS也用于在服务之间发送消息,但它还具备向最终用户发送通知的功能。SNS采用发布/订阅模式进行消息传递,用户可以创建SNS主题作为消息传递的渠道,配置相应主题的订阅者,然后向主题发布消息,消息会通过该渠道分发给所有订阅者,这些订阅者可以是SQS队列、AWS Lambda函数、HTTPS或HTTP Web节点等终端节点。此外,SNS还支持通过移动推送、短信和电子邮件向最终用户群发通知。

微服务概念

微服务架构中,应用程序组件之间是松耦合的关系。这意味着即便单个组件发生故障,其他组件依然能够继续工作,因为它们之间的通信机制允许各自独立运行。松耦合特性有效避免了因单个组件问题导致整个应用程序崩溃的情况,增强了系统的稳定性和可靠性。

无服务器

无服务器架构模式下,用户无需管理EC2实例,也无法直接查看和访问底层基础设施。这一架构的优势在于简化了运维工作,使用户能够更专注于业务逻辑的实现。

  • AWS Lambda:用于无服务器函数, 用户只需上传代码函数,使用时仅需为代码实际运行的计算时间付费,代码未运行时不产生费用。AWS Lambda可用于几乎任何类型的应用程序或后端服务,极大地提高了开发和部署的灵活性。不过,它需要与前端触发器结合使用,例如与API Gateway服务搭配,为外部请求提供访问接口。
    • Amazon API Gateway是用于创建、发布、维护、监控和保护任意的API的服务,它通常用于管理API的访问和授权,但不直接提供临时凭证的生成。

Lambda场景: 适合处理事件驱动的任务,但不适合长时间运行的工作负载,因为有时间和内存限制

  • 其他相关服务:Amazon Elastic Container Service(ECS弹性容器服务)、Amazon Elastic Kubernetes Service(Amazon EKS)以及AWS Fargate等,这些服务共同构成了无服务器计算的生态体系。其中,AWS Fargate是一种适用于容器的无服务器计算引擎,可与Amazon ECS和Amazon EKS协同工作,为用户提供高效的容器化应用部署和管理方案。

按业务开展范围确定实例部署区域?

区域内的四个业务因素:

每个区域都具有多个可用区, 区域是指云上资源所存放的物理地理位置。

可用区?

可用区是指 一个区域内的单个数据中心或一组数据中心

多可用区可保证数据的高可用 (最佳实践是在一个区域的至少两个可用区中运行应用程序或实例)

边缘站点(CDN)

边缘站点是一个站点,Amazon CloudFront (内容分发服务)服务 使用它将缓存的内容副本存储在更靠近客户的位置,以便加快分发速度。

AWS Outposts

AWS Outposts(前哨站)为客户提供定制的完全托管式数据中心机房

这些设备被安装在客户指定的本地数据中心或边缘位置,将AWS的基础设施和服务扩展到不同的站点,包括客户的本地环境。这一服务有助于满足客户对数据本地存储、低延迟访问以及合规性等方面的特殊需求。

管理 AWS 资源的方式

  • 手动管理方式:通过浏览器登录AWS管理控制台,这种方式直观便捷,适合进行简单的资源管理操作,但对于大规模、重复性的任务效率较低。AWS Management Console是AWS提供的基于Web的图形用户界面(GUI)
  • 自动编排方式:利用API(如AWS CLI )和软件开发工具包 (SDK),可以实现自动化的资源管理,适合替代重复性手动工作,提高管理效率和准确性,便于大规模资源的批量操作和自动化部署。
  • 服务管理方式
    • AWS Elastic Beanstalk:该服务负责调度AWS上的所有云资源进行架构部署,用户只需提供代码和配置设置。使用时,需要先创建一个应用程序,将应用程序版本以应用程序源包(如Java .war文件)的形式上传到Elastic Beanstalk,并提供相关应用信息。部署完成后,可以将当前部署架构环境打包成模板保存,方便后续部署使用。此外,Elastic Beanstalk本身不收取额外费用,用户只需为应用程序使用的基础AWS资源付费。

注:可以在 Jenkins 中打包,然后将打包好的包通过Jenkins脚本代码或流水线自动上传到 AWS Elastic Beanstalk(利用aws提供的插件或aws cli)

- **AWS CloudFormation(主要通过代码模板进行管理)**
        + <font style="color:rgba(0, 0, 0, 0.85);">注: </font><font style="color:#DF2A3F;">用户需要对 AWS 各种资源的特性和配置有一定的了解,才能编写有效的模板</font>
        + <font style="color:rgba(0, 0, 0, 0.85);">属于 IaaS(基础设施即服务)层面的工具,主要用于以模板的方式对 AWS 资源进行建模和配置。它允许用户通过编写 JSON 或 YAML 格式的模板文件来定义和部署整个 AWS 基础设施,包括 EC2 实例、VPC、RDS 数据库等各种资源,实现基础设施的自动化部署和管理。</font>
        + 应用场景:
            - **复杂基础部署**:当需要部署大规模、复杂的 AWS 基础设施时,CloudFormati

网站公告

今日签到

点亮在社区的每一天
去签到