开始使用 AWS 需要了解的内容
服务器
数据库
部署
HTTP 路由
处理更多流量
确保安全(HTTPS)
存储文件
发送电子邮件
结论
AWS是最受欢迎的云计算服务之一。AWS 是 Amazon Web Services 的缩写,他们提供丰富的服务。
我们每天使用的很多应用程序都托管在 AWS 上,其中包括 Netflix、Airbnb、Slack 等等。
也许您在一家使用 AWS 的公司工作,并且想要了解更多信息。又或者,您想将应用程序部署到 AWS。又或者,您只是在某个地方听说过 AWS,并且念念不忘。总之,以下是您需要了解的信息。
服务器
您的应用程序,无论是您自己的还是您公司的应用程序,都可能在服务器上运行。开发应用程序时,它是在您的计算机上运行的。但部署应用程序时,您希望它在其他人的计算机上运行。
AWS 可以提供这种计算机。它被称为EC2 ,即弹性计算云。
此外,如果您对数据科学感兴趣,您可以在那里运行您的 Jupyter 笔记本。
数据库
您的应用程序可能使用数据库。PostgreSQL、MySQL,甚至 Oracle,都没关系。您需要知道的是,AWS 有一项数据库服务,称为RDS (关系数据库服务)。
您可以像在个人计算机上一样在另一个 EC2 实例上运行数据库,但 RDS 有很多优势。以下列举一些:
- 成本效益
- 自动软件修补
- 轻松扩展
- 自动备份
- 监控
您可以在此处熟悉完整的功能列表。
部署
但是如何部署你的应用程序呢?AWS 上有很多方法可以实现这一点。但如果你刚刚开始,我建议你使用EB (Elastic Beanstalk)。
它可以让您轻松地:
- 创建具有所有所需配置(EC2、RDS)的环境,以及一些您一开始可能不需要但仍然有用的配置(负载均衡器、监控、通知)
- 部署到该环境
- 检查日志并 ssh 到服务器
EB 支持部署从Docker到Java再到Ruby 的各种平台。您可以在此处查看支持平台的完整列表。
如果您以前使用过Heroku ,那么 EB 与其非常相似。与单独配置所需的每个 AWS 服务相比,EB 的设置非常简单。但它仍然不如 Heroku 那么简单。
如果您希望在将提交推送到 git 后开始部署,您可以查看 AWS CodeDeploy 。
HTTP 路由
应用程序部署完成后,您需要将域流量路由到该应用程序。您可以使用Route53来实现这一点。
虽然使用 EB 部署时,您可以获得一个相当不错的域名,但http://your-application.elasticbeanstalk.com/
仍然感觉它不属于您。您可以直接在 Route53 上为您的应用程序购买域名。如果您在其他服务(例如 GoDaddy、NameCheap 等)上购买了域名,也可以将其委托给 Route53。您可以使用dig
控制台命令检查您的域名是否已迁移到 AWS。
dig your-domain.com
在 AWS 上拥有域名后,您需要向以下任一位置添加 A 别名记录
- EB 给您的域名(
[your-application.elasticbeanstalk.com](http://your-application.elasticbeanstalk.com/)
) - 或您的 EC2 的弹性 IP
- 或您的负载均衡器 DNS 名称
如果您对“A 记录”这个术语不熟悉,我建议您阅读这篇有关 DNS 的文章。
处理更多流量
在某些时候,您的应用程序可能会获得一些流量,而您的一个 EC2 实例将无法处理所有传入的请求。AWS上已经提供了ELB (弹性负载均衡器)来帮助您。
负载均衡器会将传入的流量路由到不同的服务器。它们使用“循环”算法来实现这一点。循环算法非常简单——当一个请求到达负载均衡器时,它会将其发送到一台服务器,第二个请求则会发送到另一台服务器。当所有服务器都收到请求后,负载均衡器会从头开始,再次将请求发送到第一台服务器。
确保安全(HTTPS)
如果您想将 HTTPS 添加到您的网站,则需要获取证书。您可以在ACM (AWS 证书管理器)中获取证书。获取证书后,您需要使用它们,它们不会自动应用。您可以将证书添加到您的 EC2 实例。或者,如果您使用 EB 进行部署,则应该已经拥有负载均衡器。在这种情况下,您可以将证书应用到负载均衡器,然后就可以通过 HTTPS 处理请求了。
然而,在这个简单的情况下,人们仍然可以通过 HTTP 访问您的应用程序。但是,如果他们来自 HTTP,您可以通过重定向强制他们使用 HTTPS。以前,您需要设置 NGINX 或 Apache重定向。但最近,AWS 发布了 Application Load Balancer,其中包含使用一些自定义规则进行重定向的选项。您可以点击此处了解如何使用 Application Load Balancer 设置 HTTPS 重定向。
存储文件
您经常需要在应用程序中保存文件。但将它们存储在数据库中可能并非最有效的解决方案。AWS 提供了一项名为S3的服务,即简单存储服务 (Simple Storage Service)。顾名思义,它只是存储数据。您可以将任何想到的内容写入其中。它就像 Google Drive 或 iCloud 一样。
要在 S3 上存储文件,您可以使用适合您语言的 AWS SDK。您也可以寻找其他库,因为我相信还有很多其他库。
发送电子邮件
大多数应用程序的另一项功能是发送电子邮件。电子邮件已经失去了许多用途:新闻通讯、系统通知等等。
要使用 AWS 发送电子邮件,您需要使用SES (简单电子邮件服务)。您可以使用个人邮箱,也可以为您的应用程序注册一个新邮箱,然后从这些邮箱发送电子邮件。这是一个很好的起点。
然而,从长远来看,使用个人邮箱地址发送电子邮件并非明智之举。更好的方法是获取一个域名并从中发送电子邮件。为此,您需要在 SES 中验证您的域名。之后,您可以使用支持多种编程语言的 AWS SDK 发送电子邮件。或者,您也可以自己寻找库,或者创建一个。
结论
在本文中,我讨论了最流行的 AWS 服务以及它们的使用原因和方式。现在你应该知道你应该
- 在 EC2 上运行您的服务器
- 在 RDS 上运行数据库
- 使用 EB 部署到 AWS
- 在 Route53 中管理您的域名
- 在 ACM 中获取 SSL 证书
- 使用 ELB 处理更多流量
- 将文件存储在 S3 上
- 使用 SES 发送电子邮件
当然,这个列表只是 AWS 服务冰山一角,但它足以帮助您入门。
如果您喜欢这篇文章,请务必在下面留下您的评论并关注我。
鏂囩珷鏉yu簮锛�https://dev.to/hmlon/what-you-need-to-know-to-get-started-with-aws-4lff