AWS上的小型有状态应用。 Statefullness是问题,为了论证,假设应用程序必须保持有状态。我们如何在多个AZ之间创建冗余?
半生的想法:2)当AZ1出现健康问题时,使用lambda来“打开”并在AZ2中创建实例。也会关闭AZ1中的实例。如果是这样,你能指点我一些lambda文件吗?
3)比1或2更好,可能更容易
P.S。如果应用程序不是有状态的,我知道如何轻松完成。不幸的是,无法调整状态。
答案 0 :(得分:0)
通过statefullness我假设您需要一个中央商店来存储数据。
选择存储州数据的技术:
1)如果状态检索的性质不稳定或性能要求不是极端的,即从服务器到检索状态不多于一次,你应该选择DynamoDb来存储状态,这是多重的默认情况下,您不必做任何事情来使它成为HA。
2)在高性能方案中或需要多次往返以检索状态时(尽量避免这种情况),您可以选择memcached,它可以作为AWS elastiCache中的一个选项提供,您可以在多个AZ中为HA部署它们。
对于前端服务器的HA:
1)只需将服务器添加到多个AZ中并将它们附加到负载均衡器,以便执行此操作:
a)使用VPC服务将两个子网添加到多个AZ中。
b)创建负载均衡器并为其提供这两个子网(这使您的LB HA),确保启用“跨区域负载平衡”,这将流量均匀地分配到跨区域连接到它的服务器。
c)创建两个(最小)app服务器,并在不同AZ中的每个子网中添加一个,将它们添加到上面创建的LB中。
2)确保您的服务器从中央数据层(现在也是HA)检索并存储状态。
你很高兴,你可以选择使用启动配置和自动缩放组在AWS中设置自动缩放,如果这是我猜的那个要求。