我在AWS上运行了t2.micro EC2实例。为了处理流量高峰,我创建了自动缩放组,动态增加和减少AMI的EC2实例。一切都很好,直到这里。问题是我的用户登录数据库在同一个EC2实例中。当生成新的EC2实例时,它不包含主EC2实例中新添加的用户。如果新用户在新实例中创建帐户,则会在实例终止时丢失。是否有办法为所有实例提供单个EBS卷?
请指出我在AWS上构建可扩展的Web应用程序的一些有用资源。
答案 0 :(得分:1)
您面临的问题是不鼓励这种模式(所有在同一实例中)的主要原因。这适用于您的应用很小并且没有收到大量流量的情况。
您应该做的是从应用程序实例中提取数据库并将其移至RDS(因为它是半管理的,将阻止您执行许多任务,如服务器修补,定期备份,配置副本集等)。此外,RDS还将为您提供简单的多可用区部署,帮助您实现真正的容错。这一步是可选的 - 你可以启动一个新的EC2实例并在那里手动安装你的数据库(但是它专门用于数据库目的)。
您的架构应该类似于下图;
ELB ---> INSTANCE 1 --> RDS DB INSTANCE
| ^
|-> INSTANCE 2 ---------|
| |
|-> INSTANCE n ---------|
如果您想扩展,则应尽可能保持实例无状态。相同的方法适用于您自己存储在实例中的文件;您应该将它们移动到S3(或者如果您所在地区可用,也可以使用弹性文件系统)