使用多个环境创建和保护 AWS EB 应用程序
Create and Secure AWS EB Application with multiple Environments
现在
我开发了一个应用程序,它在一组服务之上运行,这些服务正在收集和详细说明从 Internet (app_one、app_two、app_three) 收集的数据,然后我有一个核心应用程序可以合并和可视化该信息 (app_core)。
该项目基于 AWS Elastic Beanstalk,每个应用程序都有自己的 git。
为了处理应用程序之间的连接,我(不安全地)将每个服务映射到一个子域。
我想做什么
我很乐意将此项目的开发转移到 VPC 中,并保护 REST Flask 应用程序(一、二、三)和核心应用程序之间的接口。
我的问题
1) 我怎样才能避免给我的 eb 环境提供 public ip?每次我 运行:
eb create myenvname --instance_type t2.XXX
它会自动设置一个 public IP。我可以把它移到 VPS 和 Internet Gateway 后面吗?
2) 如果有办法将这些服务安全地移到网关后面,
如何处理这些应用程序之间的 HTTP 请求?
我这里没有内部子域,我是否需要使用私有 IP(我不这么认为)?有没有办法私下解决这些服务?就像在 Docker 中一样,将单个 docker 称为“ app_one/ ”。
如果这些问题听起来很幼稚,我很抱歉,但我有完全不同的兴趣领域的背景
非常感谢
编辑
我添加项目文件夹结构:
--+/MyAPP
|
|---+/app_one # single env folder
| ...
|
|---+/app_two . # single env folder
| ...
|
|---+/app_three # single env folder
| ...
|
|---+/app_core # single env folder
|--/env # virtual env
|--+/app_core # flask application
|--/lib
|--+/.elasticbeanstalk # eb folder
| |--config.yml
|--application.py
|--requirements.txt
您必须将您的应用程序启动到私有子网或设置配置标志 AssociatePublicIpAddress = false
。
如何设置那个标志?
Configuration Files
Use .ebextensions to configure options that are required to make your application work, and provide default values for other options that can be overridden at a higher level of precedence. Options specified in .ebextensions have the lowest level of precedence and are overridden by settings at any other level.
To use configuration files, create a folder named .ebextensions at the top level of your project's source code. Add a file with the extension .config and specify options in the following manner:
option_settings:
- namespace: namespace
option_name: option name
value: option value
- namespace: namespace
option_name: option name
value: option value
设置标志AssociatePublicIpAddress = false
.ebextensions/app.config
option_settings:
- namespace: aws:ec2:vpc
option_name: AssociatePublicIpAddress
value: false
如何设置Subnet
.ebextensions/app.config
option_settings:
- namespace: aws:ec2:vpc
option_name: VPCId
value: vpc-4545121
- namespace: aws:ec2:vpc
option_name: Subnets
value: sub-45455565
+ 资源
- Configuration Options
- General Options for All Environments
- Advanced Environment Customization with Configuration Files
.ebextensions
- Getting to Know and Love AWS Elastic Beanstalk Configuration Files
.ebextensions
希望对您有所帮助!
现在
我开发了一个应用程序,它在一组服务之上运行,这些服务正在收集和详细说明从 Internet (app_one、app_two、app_three) 收集的数据,然后我有一个核心应用程序可以合并和可视化该信息 (app_core)。
我想做什么
我很乐意将此项目的开发转移到 VPC 中,并保护 REST Flask 应用程序(一、二、三)和核心应用程序之间的接口。
我的问题
1) 我怎样才能避免给我的 eb 环境提供 public ip?每次我 运行:
eb create myenvname --instance_type t2.XXX
它会自动设置一个 public IP。我可以把它移到 VPS 和 Internet Gateway 后面吗?
2) 如果有办法将这些服务安全地移到网关后面, 如何处理这些应用程序之间的 HTTP 请求? 我这里没有内部子域,我是否需要使用私有 IP(我不这么认为)?有没有办法私下解决这些服务?就像在 Docker 中一样,将单个 docker 称为“ app_one/ ”。
如果这些问题听起来很幼稚,我很抱歉,但我有完全不同的兴趣领域的背景
非常感谢
编辑
我添加项目文件夹结构:
--+/MyAPP
|
|---+/app_one # single env folder
| ...
|
|---+/app_two . # single env folder
| ...
|
|---+/app_three # single env folder
| ...
|
|---+/app_core # single env folder
|--/env # virtual env
|--+/app_core # flask application
|--/lib
|--+/.elasticbeanstalk # eb folder
| |--config.yml
|--application.py
|--requirements.txt
您必须将您的应用程序启动到私有子网或设置配置标志 AssociatePublicIpAddress = false
。
如何设置那个标志?
Configuration Files
Use .ebextensions to configure options that are required to make your application work, and provide default values for other options that can be overridden at a higher level of precedence. Options specified in .ebextensions have the lowest level of precedence and are overridden by settings at any other level.
To use configuration files, create a folder named .ebextensions at the top level of your project's source code. Add a file with the extension .config and specify options in the following manner:
option_settings:
- namespace: namespace
option_name: option name
value: option value
- namespace: namespace
option_name: option name
value: option value
设置标志AssociatePublicIpAddress = false
.ebextensions/app.config
option_settings:
- namespace: aws:ec2:vpc
option_name: AssociatePublicIpAddress
value: false
如何设置Subnet
.ebextensions/app.config
option_settings:
- namespace: aws:ec2:vpc
option_name: VPCId
value: vpc-4545121
- namespace: aws:ec2:vpc
option_name: Subnets
value: sub-45455565
+ 资源
- Configuration Options
- General Options for All Environments
- Advanced Environment Customization with Configuration Files
.ebextensions
- Getting to Know and Love AWS Elastic Beanstalk Configuration Files
.ebextensions
希望对您有所帮助!