我们在EC2和RDS实例方面遇到两个问题:
当现有的EC2实例终止并自动创建新的EC2实例时,我们正在丢失现有数据。一旦我们创建Elastic Beanstalk并上传我们的应用程序文件,它就会创建一个EC2实例并运行。然后,如果我们将任何文件上传到现有的EC2实例,并且如果它下降/终止,则会创建另一个新实例并从旧的EC2实例中丢失数据。
如果我们将EC2实例IP地址添加到RDS入站安全组以限制其他人从其他ips访问RDS实例,那么当旧的EC2实例终止并且新的EC2实例时,我们将面临访问RDS的问题已创建或基于负载创建任何其他新的ec2实例。
请为上述问题提出一些解决方案。
答案 0 :(得分:1)
如果/当实例终止时,您存储在EC2中的任何数据都将丢失。您需要设计解决方案,使其不依赖于短暂的子系统。
究竟如何,取决于你在做什么,但是,例如,如果你正在托管一个Web服务器并且用户可以上传图像,最好将它们存储在S3而不是直接存储在EC2实例中。数据应存储在数据库中,而不是存储在EC2实例上,因此在RDS实例或DynamoDB中,这两个实例都将在EC2终止并重新启动后继续存在。
对于访问问题,您创建一个安全组(例如,将其命名为sg-1234),然后在启动时使用该安全组创建每个新实例。
同时创建RDS安全组(例如,如果db-1234,则调用),并在DB-1234安全组中创建允许Sg-1234作为源的规则。