如何在 AWS EC2 中设置 Tomcat 会话状态以实现故障转移和安全性

How to set up Tomcat session state in AWS EC2 for failover and security

我正在 EC2 中设置一个 Tomcat 应用程序。为了可靠性,我是 运行 两个或更多实例。如果一台服务器出现故障,我的用户应该被重定向到另一个实例。这表明会话状态应该保存在外部源中,或者在服务器之间进行镜像。

AWS 提供了一项托管服务 Elasticache,它似乎运行良好。我什至找到了一个不错的图书馆,memcached-session-manager。但是,我很快 运行 遇到了一些问题。

  1. 除非有人可以说服我,否则我需要在 t运行sit 中加密会话状态。否则有人可以拦截网络流量并假装是我网站上的其他人。我没有看到任何内置的亚马逊方法来阻止互联网上的流量。 (这里可以使用对等互连吗?)
  2. 前面提到的库确实支持带 SSL 的 Redis,但它不支持 Redis 集群。有人为此提出了拉取请求,但尚未合并,并且该库是一个复杂的构建。我可能会说服自己在没有集群的情况下生活,但这会让我们回到单点故障。
  1. Tomcat 在您的 VPC 中的 EC2 上 运行,ElastiCache 在您的 VPC 中。您的 AWS VPC 是一个孤立的网络。除非您的 VPC 网络以某种方式受到损害,否则没有人可以拦截 EC2 和 Elasticache 服务器之间的流量。

  2. 如果您想改用 Redis,通过 SSL 连接,那么我相信此时您需要一个使用 Jedis 的 Tomcat 会话管理器实现。 This one 使用 Jedis,但您需要升级它使用的 Jedis 版本才能使用 SSL 连接。