【问题标题】:How to protect the data from Amazon EC2 instance when new instance is created?创建新实例时如何保护来自 Amazon EC2 实例的数据?
【发布时间】:2015-03-07 12:13:15
【问题描述】:
我们在 EC2 和 RDS 实例方面面临两个问题:
当现有 EC2 实例终止并自动创建新 EC2 实例时,我们正在丢失现有数据。一旦我们创建 Elastic Beanstalk 并上传我们的应用程序文件,它就会创建一个 EC2 实例并运行。然后接下来,如果我们将任何文件上传到现有 EC2 实例,如果它出现故障/终止,则会创建一个新实例并丢失旧 EC2 实例中的数据。
如果我们将 EC2 实例 ip 地址添加到 RDS 入站安全组以限制其他人从其他 ip 访问 RDS 实例,当旧的 EC2 实例终止和新的 EC2 实例时,我们将面临访问 RDS 的问题被创建或基于负载创建任何其他新的 ec2 实例。
请针对上述问题提出一些解决方案。
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
amazon-elastic-beanstalk
rds
【解决方案1】:
如果/当实例终止时,您存储在 EC2 中的任何数据都会丢失。您需要设计解决方案,使其不依赖于临时子系统。
具体如何,将取决于您在做什么,但例如,如果您托管一个 Web 服务器并且用户可以上传图像,最好将它们存储在 S3 上而不是直接存储在 EC2 实例中。数据应该存储在数据库中,而不是存储在 EC2 实例上,因此在 RDS 实例或 DynamoDB 中,这两者都将在 EC2 终止和重启后继续存在。
对于访问问题,您创建一个安全组(例如称为 sg-1234),然后在启动时使用该安全组创建每个新实例。
同时创建一个 RDS 安全组(例如,如果 db-1234 则调用)并在 DB-1234 安全组中创建一个允许 Sg-1234 作为源的规则。