仅将 api 流量路由到其他 AWS EC2 实例

Posted

技术标签:

【中文标题】仅将 api 流量路由到其他 AWS EC2 实例【英文标题】:Route only api traffic to other AWS EC2 instance 【发布时间】:2019-10-03 10:27:37 【问题描述】:

我是网络新手。我正在尝试仅将来自一个 VM 流量的流量路由到另一台 VM。因此,我做到了。

我有两个 AWS EC2 实例:

应用服务器 数据库服务器

他们有自己的安全组,我已经允许所有流量都是允许的。现在我想 Database_server 只接受 Application_server 流量而不是所有公共流量。 Database_server 是运行在 3306 端口上的 mysql

假设:

Application_server 公网 IP:14.233.245.51 Database_server 公网 IP:15.233.245.51

所以我只允许在端口 3306 上使用 14.233.245.51/32,但它不起作用。在此之前是0.0.0.0/0::/0

我该如何解决这个问题?

【问题讨论】:

他们在同一个 VPC 中吗? @deosha 是的,它们在同一个 VPC 中。 【参考方案1】:

首先,应用服务器应该通过私有IP地址与数据库服务器通信。这将使所有流量保持在 VPC 内,并使安全组能够正常工作。

其次,配置安全组

App-SG 应该与应用程序服务器相关联,并允许在应用程序的适当端口(例如 80、443)上传入流量 DB-SG 应该与数据库服务器相关联,并允许来自 App-SG 的端口 3306 上的传入流量

DG-SG通过引用App-SG的ID,允许来自App-SG的入站流量。 无需指定 IP 地址。安全组将自动识别流量并允许应用服务器向数据库服务器发送流量。由于安全组是有状态的,因此也将允许返回流量。

您必须通过私有 IP 地址与数据库服务器通信才能使其正常工作。

【讨论】:

感谢您提供详细信息。但我只是希望 DB-server 不会被任何其他 IP 地址访问。假设,只有我想在 3306 端口访问数据库服务器,所以我找到了我的笔记本电脑公共 IP 并放入 MYSQL。因此,我需要这样的方式。你的回答也不错。但我也想拒绝所有其他公共访问。 安全组默认拒绝所有入站流量。您必须向安全组添加规​​则以定义允许的流量。

以上是关于仅将 api 流量路由到其他 AWS EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章

如何在云端路由 S3、EC2、aws

AWS Application Load Balancer HTTP到HTTPS与EC2实例

AWS VPC - 更改路由表后无法从 ec2 实例 ping

如何将 AWS Application Load Balancer 路由到托管在同一 EC2 实例上的适当网络服务器?

扩展 AWS 预留实例(EC2、Elasticache、Aurora)

AWS EC2应用程序负载均衡器+双向SSL?