目前我有一个运行在普通Ubuntu EC-2实例上的应用程序以及运行Tomcat Web应用程序的elasticbeanstalk环境。 EC-2实例上有一个服务器,必须始终可以从elasticbeanstalk应用程序访问。
这里的问题是我无法将elasticbeanstalk应用程序与安全组关联,我尝试将options.config文件添加到根网站项目中包含以下内容的.ebextensions文件夹中:
option_settings:
- namespace: 'aws:autoscaling:launchconfiguration'
- option_name: SecurityGroups
- value: 'sg-XXXXXX'
但这不起作用。 EC-2实例始终具有静态IP地址,但访问EC-2服务器的实例正在AWS内部进行更改。我读到如果将两个服务分配给同一个安全组,他们将能够相互通信。这种方法的问题是我甚至无法更改elasticbeanstalk应用程序的安全组。
我也不能允许全局访问服务器,它必须仅针对elasticbeanstalk环境。
由于我现在无法深入了解的情况,我们暂时无法在VPC中启动实例,但无论如何我们都需要运行服务。
我找不到任何关于如何实现这一目标的体面文档,如果你们有任何预感我很乐意接受任何关于如何解决这个问题的建议或指示。
答案 0 :(得分:1)
所有实例都将位于安全组中。听起来你的beanstalk实例可能在某个默认安全组中。您可以在EC2控制台中查看每个实例,并查看它们所在的安全组。此外,只是在同一安全组中拥有实例并不能保证它们可以相互通信。谁告诉你这是错的。
您只需要找出您的实例所在的安全组,然后修改安全组中的规则以允许适当的访问。
另请注意,在创建实例的安全组后,您无法更改它。您必须终止实例并在所需的组中创建一个新实例。但是,就像我说的那样,你根本不需要更改安全组来解决这个问题。