介绍
如果您尝试过在 AWS 中从头开始设计云架构,您可能已经知道:这是一个既自由又混乱的过程。有一千种方法可以构建某样东西,也有同样多的方法可以把它搞砸。
简单浏览一下 AWS 文档,你可能会想:"酷,我们只需遵守一流的实践即可"。但是,在真实的国际环境中,一流的实践往往无法与真实的商业企业需求、价格范围限制或人为错误第一时间取得联系。这就是为什么在早期与perfsys这样的专业人士合作,可以避免日后在保护漏洞和扩展问题上打擦边球。
我们的目标不仅仅是获得能运行的东西。而是要建立一个系统,当流量激增或某个区域闪退时,它不会倒下,也不会向互联网敞开大门。
让我们从显而易见的问题开始:AWS 是一头猛兽
你几乎可以用 AWS 构建任何东西。从两个人的初创公司到庞大的企业平台,构建模块一应俱全:EC2、Lambda、RDS、S3、IAM、VPC,不胜枚举。问题是什么?选项越多,就越容易造成混乱。
这并不是说 AWS 设计得不好。只是你必须正确地设计它。否则,就会出现一些团队所说的 "云意大利面条":相互依赖的服务、硬编码的机密、无标记、无日志记录,而且完全不知道什么花费了多少钱。
可靠性和安全性不是 "可有可无 "的东西
将安全性和可靠性视为未来问题是很有诱惑力的。"我们会在上线后确保安全"。"下个冲刺阶段我们将增加监控功能"。但是,试问任何一个处理过数据泄露或多小时故障的人--跳过这些步骤就是你最终通宵达旦的原因。
可靠性的真正含义
这不是幻灯片上的正常运行时间保证。而是针对故障的工程设计。服务瘫痪。磁盘故障。应用程序接口超时。重要的是,当出现故障时,你的系统能否继续运行。
您的系统在可用区之间有冗余吗?您的系统能否承受数据库节点故障而不丢失数据或出错?您是否因为 "最容易部署 "而在单一区域运行关键工作负载?这些问题将工作系统与弹性系统区分开来。
安全性呢?不仅仅是 IAM
是的,身份和访问管理(IAM)是第一道墙。但安全问题远不止于此。可公开访问的 S3 存储桶。过度授权的角色。硬编码到 Lambda 函数中的秘密。为了节省成本而关闭日志记录。所有这些都是定时炸弹。
使用aws 完善架构框架有助于在这些问题爆发前将其识别出来。它将架构分解为五个关键领域--安全性、可靠性、卓越运营、性能效率和成本优化--并迫使团队诚实地评估每一个领域。这不是灵丹妙药,但它能促使你提出棘手的问题。
真正重要的组成部分
好了,让我们进入正题。以下是在 AWS 上构建安全、可靠的架构时最重要的事项,以及团队最常出错的地方。
正确使用 IAM 角色(是的,真的)
IAM 角色非常强大。有时太强大了。因为某些东西无法正常工作,所以很容易就使用 "管理员访问权限",并承诺稍后修复......但却永远无法修复。
