【AWS云】部署MERN堆栈应用在AWS上构建弹性三层体系结构
视频号
微信公众号
知识星球
👋 介绍
大家好,我叫安基特·乔达尼。我是DevOps和Cloud的爱好者。我最近刚从大学毕业,在DevOps和云计算领域建立了自己的职业生涯。我写了很多关于can和Devops的博客和项目,你可以在我的Hashnode个人资料Ankit Jodhani上看到这一点。事实上,我是Showwcase的新手。我正在考虑在Showwcase上发布下几个博客并分享知识。我要感谢皮尤什·萨奇德娃提供的宝贵指导。我参加了Blog-A-Thon-Unlocking the Power of Technical Writing,这是Showwcase与GrowIn社区合作组织的一项在线活动,我要感谢双方的这一惊人举措。所以这个博客是“blog-A-Thon”的一部分#博客马拉松#showwcase#growinconsunity
📚 提要
在这个博客中,我将向您展示我们如何构建弹性三层架构在AWS上部署MERN堆栈应用程序:实现高可扩展性、高可用性和容错。在这个项目中,我们将使用多区域部署,一个将是主要区域,另一个将用于灾难恢复。在这里,我们将遵循“温暖待机”灾难恢复策略。以便我们的用户在发生灾难时面临更低的停机时间。让我向你简要介绍一下这个项目。
🔹 故事
当用户请求网站时,DNS服务Route 53会处理该请求,并将其引导到为客户端提供服务的CDN(内容交付网络)CloudFront。如果CloudFront需要访问web服务器(前端),那么它会将请求路由到web服务器的应用程序负载均衡器,然后重定向到web服务器。成功接收静态页面后,客户端的浏览器可以对数据进行API调用。这些API调用通过路由53路由,路由53将它们发送到应用程序服务器(后端服务器)的ALB。ALB然后将请求引导到应用程序服务器,在那里处理数据。此外,应用服务器可以在RDS数据库中存储一些数据。并且我们的数据库仅由应用服务器访问。但我们部署基础设施的地方有可能因为某种灾难而瘫痪。在这种情况下,CloudFront将为web轮胎进行故障转移,Route 53将为应用轮胎进行故障切换。并且两者都开始利用DR区域的资源。这就是我们实现弹性的方式。如果你没有一个想法,那么不要担心,一旦你看到了架构,它就会很容易。
我将使用AWS云,但你可以使用任何你喜欢的云。或多或少的步骤将是相似的。
📋 先决条件
- 📌 AWS帐户
- 📌 Linux基础知识
AWS服务列表
- 🌍 亚马逊CloudFront
- 🌐 亚马逊路线53
- 💻 亚马逊EC2
- ⚖️ 亚马逊自动缩放
- 🪪 亚马逊证书管理员
- 🪣 亚马逊备份服务
- 🗄️ 关系数据库服务
- ☁️ 亚马逊专有网络
- 🔐 亚马逊WAF
- 👁️ 亚马逊CloudWatch
💡 执行计划
- 🤔 什么是三胎结构
- 🏠 项目的架构
- 🚀 带屏幕截图的分步指南
- 🧪 测试
- 🧼 资源清理
- 🥳 结论
🤔 什么是三胎架构
三层体系结构是一种将应用程序分为三层的软件体系结构模式。
🔸表示层➡️ 处理用户交互
🔸应用层(后端逻辑)➡️ 处理业务逻辑和数据处理
🔸数据层(数据库)➡️ 管理数据存储和检索
每一层都有不同的职责,允许模块化、可扩展性和可维护性。该体系结构促进了关注点的分离,并便于在不影响其他层的情况下轻松更新或修改特定层。
🏠 项目架构
让我们看看今天项目的架构。我们将遵循一种目标驱动的方法,这有助于我们付出最小的努力,并取得很多成果。了解我们将要构建的内容并了解您可以遵循以下体系结构是非常重要的。我请求你看一遍。它在构建这个项目时帮了你很多忙。
我花了几个小时创建了这个下面的动画架构,如果你喜欢,请喜欢我的博客,并在LinkedIn上关注我。
这里没有动画的建筑设计
🚀分步指南
我们正在遵循“热备用”灾难恢复策略,因此我们将在部署期间使用两个区域。美国东部-1 AKA北弗吉尼亚州为初级,美国西部-2 AKA俄勒冈州为次级或DR。
🔹 虚拟专用计算机
首先,我们将在这两个地区建立专有网络,将我们的资源与互联网隔离开来。下图包含所有子网、它们的IP范围及其用途。如果你有更好的想法,你可以使用自己的专有网络设置。如果你是初学者,请创建VPC,如下所示。
- 29 次浏览