【问题标题】:Create and Secure AWS EB Application with multiple Environments使用多个环境创建和保护 AWS EB 应用程序
【发布时间】:2018-01-18 03:08:29
【问题描述】:

现在

我开发了一个应用程序,它在一组服务之上运行,这些服务正在收集和详细说明从 Internet 收集的数据(app_one、app_two、app_three),然后我有一个核心应用程序可以合并和可视化这些信息(app_core) . 该项目基于 AWS Elastic Beanstalk,每个应用程序都有自己的 git。 为了处理应用程序之间的连接,我(不安全地)将每个服务映射到一个子域。

我想做的事

我很乐意将这个项目的开发转移到 VPC 中,并保护 REST Flask 应用程序(一、二、三)和核心应用程序之间的接口。

我的问题

1) 如何避免为我的 eb 环境提供公共 ip?每次我跑:

eb create myenvname --instance_type t2.XXX

它会自动设置一个公共 IP。我可以将它移动到后面的 VPS 和 Internet 网关中吗?

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

【问题讨论】:

    标签: amazon-web-services amazon-elastic-beanstalk amazon-vpc flask-restful


    【解决方案1】:

    您必须在私有子网中启动您的应用程序或设置配置标志AssociatePublicIpAddress = false

    如何设置该标志?

    Configuration Files

    使用 .ebextensions 配置使您的应用程序运行所需的选项,并为其他可以在更高优先级覆盖的选项提供默认值。 .ebextensions 中指定的选项具有最低级别的优先级,并被任何其他级别的设置覆盖。

    要使用配置文件,请在项目源代码的顶层创建一个名为 .ebextensions 的文件夹。添加扩展名为 .config 的文件并按以下方式指定选项:

    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
    

    + 资源

    希望对您有所帮助!

    【讨论】:

    • 谢谢你的回答,我会尽量把你给我的信息弄乱一点。我用文件夹结构编辑了帖子。我应该在哪里添加 .ebextensions/app.config?再次感谢
    • 在哪里添加配置:medium.com/trisfera/…那个链接会有很大帮助!
    • 哇!我要学习很多。谢谢你的所有提示。我让你知道
    • 我也发现了这个,docs.aws.amazon.com/elasticbeanstalk/latest/dg/…。我仍然无法理解如何解决资源之间的 http 请求。我应该在哪里设置资源的名称?在 config.yml?
    猜你喜欢
    • 2014-09-01
    • 2019-01-10
    • 2020-09-18
    • 2016-03-13
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多