AWS,S3, DynamoDB ,API Gateway,EC2分别是什么?

1、AWS,S3, DynamoDB ,API Gateway 分别是什么?

 

AWS、S3、DynamoDB 和 API Gateway 的介绍

1. AWS(Amazon Web Services

AWS 是 Amazon 提供的云计算服务平台,提供了各种云基础设施和服务,包括计算、存储、数据库、人工智能等。AWS 允许用户按需使用计算资源,无需自己管理物理服务器,常用于构建可扩展、高可用的应用程序。


2. S3(Amazon Simple Storage Service)

S3 是 AWS 提供的对象存储服务,主要用于存储和检索任何类型的数据(如图片、视频、日志文件等)。它的特点包括:

  • 高可用性:数据分布存储在多个数据中心,保证可靠性。
  • 无限存储:可以存储任意大小的数据文件。
  • 按需付费:只为存储和流量付费,没有固定费用。
  • 版本控制:支持数据版本管理和生命周期规则。

应用场景:

  • 存储静态文件(如网页、视频、备份数据)。
  • 作为数据湖,用于大数据分析和机器学习。
  • 作为 CDN(CloudFront)的后端存储,提高全球访问速度。

3. DynamoDB

DynamoDB 是 AWS 提供的完全托管的 NoSQL 数据库,适用于需要低延迟和高吞吐量的应用。它的特点包括:

  • 自动扩展:可以根据流量自动调整性能,无需手动分片。
  • 高可用性:数据分布式存储,提供 99.99% 的可用性。
  • 无服务器(Serverless):无需管理数据库服务器,只需要定义表结构和访问方式。
  • 支持 TTL(Time-To-Live):可自动删除过期数据。

应用场景:

  • 需要高并发的应用,如社交媒体、游戏排行榜、电商订单系统
  • 需要存储和检索JSON 文档的应用。
  • 作为 AWS Lambda(无服务器计算)应用的数据库。

4. API Gateway

API Gateway 是 AWS 提供的API 托管和管理服务,可以帮助开发者创建、发布、管理 RESTful API 或 WebSocket API。它的特点包括:

  • 支持流量控制和负载均衡:可以限制 API 请求频率,防止 DDoS 攻击。
  • 支持身份验证:集成 IAM、Cognito、JWT 进行 API 访问控制。
  • 与 AWS 其他服务集成:可以作为 AWS Lambda、DynamoDB、S3、EC2 等的前端入口。
  • 支持缓存:减少 API 响应时间,提高性能。

应用场景:

  • 构建基于微服务的 API 网关,作为前端和后端之间的桥梁。
  • 提供 REST API 访问 DynamoDB、S3 或 Lambda 计算。
  • 保护 API 免受恶意请求,提供安全性和速率限制。

总结

服务类型用途
AWS 云计算平台 提供计算、存储、数据库、人工智能等云服务
S3 对象存储 存储文件、备份数据、数据湖等
DynamoDB NoSQL 数据库 适用于高并发、低延迟应用,如社交媒体、电商等
API Gateway API 管理服务 用于创建、管理和保护 API,集成 AWS 服务

如果你在实际应用中需要结合这些服务,比如搭建无服务器(Serverless)架构,可以使用:

  1. API Gateway 作为入口,接收用户请求。
  2. Lambda 处理业务逻辑,如计算或数据存储操作。
  3. DynamoDB 存储应用数据。
  4. S3 用于存储静态资源,如用户上传的文件。

 

2、EC2是什么?

EC2(Amazon Elastic Compute Cloud)是什么?

EC2(Elastic Compute Cloud)是 AWS 提供的弹性云服务器相当于云端的虚拟机,可以用于运行各种应用程序。它的主要特点包括:

  • 按需使用:可以根据业务需求随时创建或销毁实例,不需要长期租用物理服务器。
  • 多种实例类型:提供不同配置的 CPU、内存、存储类型,以满足不同计算需求(如通用型、计算优化型、内存优化型等)。
  • 可伸缩性:可以手动或自动扩展实例数量,以应对业务流量变化。
  • 安全性:支持 VPC(虚拟私有云)、安全组、IAM 角色等安全措施,确保数据和服务的安全。
  • 可自定义:用户可以选择操作系统(Linux/Windows)、安装软件、配置环境等,类似传统服务器。

EC2 的应用场景

EC2 适用于需要完整服务器环境的应用,包括:

  1. 托管 Web 服务器(如 Nginx、Apache)
  2. 运行数据库(如 MySQL、PostgreSQL,但 AWS 建议使用 RDS 代替 EC2 部署数据库)
  3. 部署应用服务器(如 Python、Node.js、Java 后端服务)
  4. 高性能计算(如 AI/机器学习模型训练、视频渲染)
  5. 作为 VPN、代理服务器
  6. 开发和测试环境

EC2 vs. Lambda(Serverless)

对比项EC2(云服务器)Lambda(无服务器)
管理 需要手动管理服务器 AWS 全面托管,无需管理
计费 按实例运行时间收费 按函数调用次数和执行时间收费
启动时间 需要几秒到几分钟 毫秒级启动
可扩展性 需要手动或自动扩展 自动扩展
适用场景 持续运行的应用,如网站、数据库 事件驱动,如 API 处理、定时任务

如果你的应用需要长期运行(如网站、数据库、后台任务),EC2 是合适的选择。如果你希望减少服务器管理工作量,并且应用是短时执行的(如计算、数据处理、API),那么 AWS Lambda(Serverless)会更合适。


EC2 的基本使用

  1. 创建 EC2 实例

    • 选择合适的实例类型(如 t3.micro、m5.large)
    • 选择操作系统(如 Amazon Linux、Ubuntu、Windows Server)
    • 配置存储、网络、安全组等
    • 通过 SSH(Linux)或 RDP(Windows)连接
  2. 部署应用

    • 在 EC2 上安装 Web 服务器、数据库等
    • 部署代码和应用
    • 配置负载均衡(ELB)和自动扩展(Auto Scaling)
  3. 管理 EC2

    • 监控 CPU、内存、流量等指标
    • 设置安全组和防火墙
    • 进行定期备份(如 EBS 快照)

总结

EC2 适用于需要完整服务器控制权的应用,比如运行网站、数据库、后台任务、AI 计算等。如果你不想管理服务器,并且应用是事件驱动的,可以考虑使用 Lambda(Serverless)。

 

posted @ 2025-02-08 16:21  AlphaGeek  阅读(179)  评论(0)    收藏  举报