我想从我的ElasticBeanstalk应用访问我的AWS账户中的资源,例如Kinesis和DynamoDB。 ElasticBeanstalk应用程序不提供任何与Web相关的流量,而仅侦听Kinesis Stream或其他资源并将其写入DynamoDB等文件中进行处理。
我有以下问题:1.此Web Server层或Worker层的最佳环境是什么?我的应用程序不提供任何网络流量,但同时,Worker层似乎是批处理作业的一部分,并且与SQS队列绑定。我可以根据网络流量自动扩展Beanstalk env,并在Web服务器层上尝试了几次,并且运行良好。2.如果仅想访问我的AWS账户中的DynamoDB,Kinesis资源,是否可以将所有EC2实例放在专用子网中?3.为什么大多数标准的ElasticBeanstalk云信息模板被分为公共子网和私有子网,实例在私有子网中,而ELB和NAT网关在公共子网中。这更安全吗?如果黑客进入了公共子网,他们还不能进入私有子网,从而进入您的应用程序吗?
如果您的实例仅需要连接到其他AWS服务,则应:
请不要将您的实例连接到NAT网关。对于仅连接到均提供VPC终端节点的AWS服务的应用程序,这不是最佳实践。
如果您的Beanstalk应用程序不需要对公共Internet可见,那么最好在专用子网中进行配置。
很难根据问题中的信息回答这个问题,但是听起来您当前的环境合适。
是的,您可以将EC2实例放入一个私有子网中,如果不需要公共Internet访问,建议您这样做。如果您的服务需要与其他AWS服务进行通信,则应使用PrivateLink,但如果该服务不支持,则需要使用NATGateway。
您需要一个EC2 instance in a public subnet才能连接到任何私有EC2实例。您应该对此公共实例应用安全加固,并且可以在不使用它时将其关闭。
分割专用和公用子网是一种标准的安全做法,其简单原因是您不希望关键服务出现在公用Internet上。从理论上讲,坚定的黑客可以进入您的私有实例(如果它们位于公共网络中),但是您可以尽可能地锁定公共访问以防止这种情况(例如,Web应用程序防火墙,安全组,ALB等)。