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

时间:2017-11-30 23:04:56

标签: amazon-web-services tomcat amazon-ec2 amazon-elasticache

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

AWS提供托管服务Elasticache,看起来它可以很好地运行。我甚至找到了一个很好的图书馆memcached-session-manager。但是,我很快遇到了一些问题。

  1. 除非有人能说服我,否则我需要会话状态在传输过程中加密。否则,有人可能会拦截网络流量并伪装成我网站上的其他人。我没有看到任何内置的亚马逊方法来保持网络流量。 (在这里可以窥视吗?)
  2. 前面提到的库确实有Redis支持SSL,但它不支持Redis群集。有人提出拉动请求,但它没有被合并,这个库是一个复杂的构建。我可能会在没有集群的情况下谈论自己的生活,但这会让我们回到单一的失败点。

1 个答案:

答案 0 :(得分:3)

  1. Tomcat在您的VPC中的EC2上运行,ElastiCache在您的VPC中。您的AWS VPC是一个独立的网络。除非您的VPC网络以某种方式受到损害,否则没有人可以拦截EC2和Elasticache服务器之间的流量。

  2. 如果你想使用Redis而不是SSL连接,那么我相信你需要一个使用Jedis的Tomcat Session Manager实现。 This one使用Jedis,但您需要升级它使用的Jedis版本才能使用SSL连接。