我正在为一个Web项目设置一个中等大小的AWS基础设施。我可能在考虑一些事情,因此想向社区征求意见。任何输入表示赞赏。
请参见图形: here
说明(从左到右):
我想念什么?这太多了吗?这种结构的起伏是什么?
非常感谢大家!
答案 0 :(得分:1)
在第6步中,一切看起来都很合理。无需查找最近的MySQL数据库,因为您的实例已经知道它的位置-它是本地区域中的一个。
步骤7存在问题,因为不能使用ELB来平衡RDS实例。但是,使用Aurora / MySQL,您将获得具有短TTL的单个群集“读取器”端点主机名,该TTL在整个Aurora副本之间实现负载平衡。如果副本死亡,它将自动从DNS中删除。
步骤8并不一定要使用API网关-实例可以通过Lambda API直接调用Lambda函数。
此外,还有Lambda @ Edge允许直接从CloudFront触发Lambda函数-尽管如果您需要的Lambda函数尺寸较大(依赖项)或需要在VPC内运行,则您必须将其中的两个级联-边缘功能(不在VPC中)调用区域功能(大型或在VPC中)-但这通常仍比API网关便宜。边缘函数自动全局复制,并在最接近处理单个请求的CloudFront边缘的区域中运行,并且在任何给定的函数调用中,都可以通过检查process.env.AWS_REGION
来识别。边缘功能还可以用于更改提供内容的来源-例如如果您的函数看到它已在EU区域中被调用,则它可以重写请求,以便CloudFront将S3请求发送到EU桶。
如果您的网站位于域的最高点,例如example.com
而不是www.example.com
,您的域将需要托管在Route 53中,而不是Go Daddy中,因为DNS标准中的约束不允许CloudFront在顶点处要求动态行为。您仍然可以向他们注册域名,但不能由他们托管。