我正在努力更好地了解AWS组织模式。
假设我将术语“应用程序堆栈”定义为一组互连的AWS资源(例如,ELB + dynamoDB背后的java微服务用于执行),那么我需要一些隔离独立堆栈的方法。每个应用程序都会获得一个单独的dynamodb或kinesis,因此不需要跨堆栈资源共享。但微服务确实需要相互通信。
A-priori我可以看到正在使用的两种组织方法中的任何一种:
为每个独立堆栈创建一个VPC(每1个应用程序1个VPC)
创建单个“生产”VPC,每个堆栈位于单独的私有子网中。
组织内可能有多达100个这样的独立“堆栈”,因此如果对VPC计数有硬限制,则可能会耗尽资源。但除了资源稀缺之外,关于为每个堆栈创建新VPC或使用预先存在的VPC的决策标准是什么?这两种方法都会产生强烈的正面或负面影响吗?
提前感谢您的考虑和回应。
答案 0 :(得分:1)
子网和IP地址是您的VPC中的有限商品。如果达到该限制,则无法在VPC中增加IP地址数。此外,默认情况下,所有子网都可以与其他子网通信,因此可能存在安全问题。对VPC数量的任何限制都是软限制,可以通过AWS支持来增加。
出于这些原因,在VPC级别分离不同的项目。切勿在VPC中混合项目。那只是在寻找麻烦。
此外,如果您的生产项目将包括非VPC适用的资源,例如IAM用户,DynamoDB表,SQS队列等,那么我还建议在他们自己的AWS账户中隔离这些项目(在生产中)电平)。
这样,您就不会查看包含来自不同项目的表的DynamoDB表列表。