Amazon ec2 Amazon Web Services EC2到RDS与VPC的连接

Amazon ec2 Amazon Web Services EC2到RDS与VPC的连接,amazon-ec2,amazon-rds,amazon-vpc,Amazon Ec2,Amazon Rds,Amazon Vpc,我一直在尝试使用EC2实例和运行MySQL的RDS数据库建立一个AWS免费层帐户。不幸的是,我不知道如何从EC2实例授予对数据库的访问权。我已经阅读了所有的AWS文档,但不幸的是,它已经过时了,StackOverflow上发布的所有问题也是如此。所有文档都说明我应该转到RDS仪表板的安全组部分。然而,当我这样做的时候,这就是我所面对的 **我本来会把这张照片包括进去,但我没有这个名声 好的,我知道我没有使用EC2 Classic平台,我必须在EC2仪表板中对安全组进行这些更改,但是如何更改?!

我一直在尝试使用EC2实例和运行MySQL的RDS数据库建立一个AWS免费层帐户。不幸的是,我不知道如何从EC2实例授予对数据库的访问权。我已经阅读了所有的AWS文档,但不幸的是,它已经过时了,StackOverflow上发布的所有问题也是如此。所有文档都说明我应该转到RDS仪表板的安全组部分。然而,当我这样做的时候,这就是我所面对的

**我本来会把这张照片包括进去,但我没有这个名声

好的,我知道我没有使用EC2 Classic平台,我必须在EC2仪表板中对安全组进行这些更改,但是如何更改?!我不希望公开访问端口3306,我只希望EC2实例能够与专用子网上的RDS数据库通信。任何帮助都将不胜感激


指向“支持平台上的AWS文档”和“在VPC中使用RDS”的链接没有帮助。它们已经过时,并且不断将我引用回RDS仪表板下的安全组,而仪表板只会向我显示此消息。

经验法则:在VPC中设置资源时,请仅使用VPC安全组。单个RDS、红移…等。安全组仅在ec2 classic的情况下工作。也就是说,当你不在VPC中设置东西时

转到VPC控制台,然后在左侧菜单上找到安全组。这些安全组应控制对部署在VPC内的AWS资源的访问

我无法详细说明,因为我不知道您的VPC配置以及您正在设置的子网(公共/私有)

例子 这是一个假设的场景

VPC: 10.0.0.0/16
1 public subnet: 10.0.0.0/24
1 Private Subnet: 10.0.1.0/24
  • 假设您将EC2实例放在公共子网中
  • 假设您将RDS实例放在私有子网中
  • 您希望EC2实例可以在80443上从世界上访问,RDS实例应该只能通过EC2实例访问
因此,以下是安全组设置:

对于EC2实例安全组:

Inbound: port 80, 443 : from 0.0.0.0/0
Outbound: port 3306 : to 10.0.1.0/24
Inbound: port 3306: from 10.0.0.0/24
对于RDS安全组:

Inbound: port 80, 443 : from 0.0.0.0/0
Outbound: port 3306 : to 10.0.1.0/24
Inbound: port 3306: from 10.0.0.0/24
解释 这将允许从Internet访问端口80和443上的EC2实例


这允许EC2实例仅将端口3306上的流量发送到专用子网10.0.1.0/24


这允许RDS实例在端口3306上接受来自公用子网(10.0.0.0/24)的流量。您的EC2实例驻留在公共子网中,因此RDS将在端口3306上接受来自EC2实例的流量

注意:以上设置假定您已相应地为公共/私有子网设置了路由表


希望这有帮助。

好的,谢谢您的反馈。我明白了很多。但我仍然不知道如何设置安全组,以便我的ec2实例可以与RDS数据库通信。我想设置一个非常简单的配置。EC2实例应该只能在端口80和443上公开访问。RDS实例不应公开访问。它应该只能从ec2实例在端口3306上访问。所以,我的问题是如何在安全组中设置入站规则?非常感谢!我需要两个安全组,然后我必须允许从一个安全组访问另一个安全组。这是我无法理解的。我想我必须在一个安全小组下建立这一切。
Inbound: port 3306: from 10.0.0.0/24