Amazon web services AWS EC2实例上的持久EBS

Amazon web services AWS EC2实例上的持久EBS,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我在AWS上运行了t2.micro EC2实例。为了处理流量高峰,我创建了自动缩放组,它可以动态地增加和减少AMI中的EC2实例。在这里之前一切都很好。问题是我的用户登录数据库在同一个EC2实例中。生成新EC2实例时,主EC2实例中不包含新添加的用户。如果新用户在新实例中创建帐户,则该帐户在实例终止时丢失。是否有一种方法可以为所有实例使用单个EBS卷 请向我介绍一些关于在AWS上构建可伸缩web应用程序的有用资源。您面临的问题是不鼓励这种模式(都在同一实例中)的主要原因。当你的应用程序很小并且没

我在AWS上运行了t2.micro EC2实例。为了处理流量高峰,我创建了自动缩放组,它可以动态地增加和减少AMI中的EC2实例。在这里之前一切都很好。问题是我的用户登录数据库在同一个EC2实例中。生成新EC2实例时,主EC2实例中不包含新添加的用户。如果新用户在新实例中创建帐户,则该帐户在实例终止时丢失。是否有一种方法可以为所有实例使用单个EBS卷


请向我介绍一些关于在AWS上构建可伸缩web应用程序的有用资源。

您面临的问题是不鼓励这种模式(都在同一实例中)的主要原因。当你的应用程序很小并且没有收到很多流量时,这个功能就可以工作了

相反,您应该做的是从应用程序实例中提取数据库并将其移动到RDS(半管理数据库将阻止您执行许多任务,如服务器修补、定期备份、配置副本集等)。此外,RDS将为您提供简单的多AZ部署,帮助您实现真正的容错。不过,这一步是可选的——您只需启动一个新的EC2实例并在那里手动安装您的DB(但将其专用于DB目的)

您的体系结构应该类似于下图

ELB ---> INSTANCE 1 --> RDS DB INSTANCE
     |                       ^
     |-> INSTANCE 2 ---------|
     |                       |
     |-> INSTANCE n ---------|

如果您想扩展,您应该尽可能保持实例无状态。同样的方法也适用于存储在实例中的文件;您应该将它们移动到S3(或者如果您所在地区有此功能,您也可以使用弹性文件系统)

我假设您的用户存储在数据库中,但您所说的链接到操作系统的方式是,我想确认您的所有应用程序数据和应用程序用户都存储在实际数据库中,而不是使用操作系统用户。是吗?是的,用户存储在真实的数据库中。您的数据库也存储在同一个EC2实例上吗?为什么要为用户分配操作系统登录?用户在您的系统上做什么?请随意编辑您的问题,以提供更多细节。这是我所看到的要点和最有用的答案。非常感谢。如果我可以问的话,还有一个问题。我的自动缩放实例正在使用AMI创建。如果我在我的实时服务器上更新代码,我的AMI将不会更新。有解决办法吗?因为我可能需要经常修复我的错误,并且更改自动缩放配置,这并不是一个真正的选项。不幸的是,您只有很少的选择:1/开发一些代码以根据新代码自动创建新的AMI,并更新您的自动缩放组以使用新的AMI,2。开发一个应用程序,可以在启动时将新版本部署到那些自动缩放的实例,或3。确保新生成的实例具有启动脚本(AWS用户数据),该脚本将自动更新本地应用程序版本在我的公司中,我们已设置自动缩放生命周期挂钩,以便自动缩放生成的每个实例进入临时“挂起-等待”状态,在此期间向“部署者”发送通知负责将新应用程序版本部署到此实例的计算机