我正在使用MVC开发应用程序,该应用程序使用远程数据库(RDS amazon
)填充应用程序的数据。在本地运行应用程序,一切正常。当我将应用程序部署到EC2 instance
时,会发生问题,我的在线应用程序无法访问相同的RDS database
。使EC2 instance
访问RDS database
的正确过程是什么?我的安全组对所有流量和启用的任何位置都具有入站和出站权限。
最佳答案
如何解决连接到我的Amazon RDS数据库实例的问题?
问题
你的问题:
解决方案:
如果尝试从EC2经典实例连接失败,请从数据库实例安全组授予用户访问权限。有关更多信息,请检查以下内容:
如果要从Amazon EC2实例访问数据库实例,则必须首先确定EC2实例和数据库实例是否在VPC中。如果使用默认VPC,则可以在创建或修改EC2实例将访问的数据库实例时分配与EC2实例相同的EC2或VPC安全组。
如果数据库实例和EC2实例不在VPC中,则必须使用允许来自Amazon EC2实例的流量的入口规则配置数据库实例的安全组。您可以通过将EC2实例的Amazon EC2安全组添加到数据库实例的DB安全组中来实现。在此示例中,您将入口规则添加到Amazon EC2安全组的数据库安全组。
重要的
AWS管理控制台
将EC2安全组添加到数据库安全组
命令行界面
要授予对Amazon EC2安全组的访问权限,请使用AWS CLI命令authorize-db-security-group-ingress。
示例
对于Linux,OS X或Unix:
aws rds authorize-db-security-group-ingress \
--db-security-group-name default \
--ec2-security-group-name myec2group \
--ec2-security-group-owner-id 987654321021
对于Windows:
aws rds authorize-db-security-group-ingress ^
--db-security-group-name default ^
--ec2-security-group-name myec2group ^
--ec2-security-group-owner-id 987654321021
该命令应产生类似于以下内容的输出:
SECGROUP Name Description
SECGROUP default default
EC2-SECGROUP myec2group 987654321021 authorizing
原料药
要授权对Amazon EC2安全组的网络访问,请使用以下参数调用该Amazon RDS API函数http://docs.aws.amazon.com//AmazonRDS/latest/APIReference/API_AuthorizeDBSecurityGroupIngress.htmlAuthorizeDBSecurityGroupIngress:
EC2SecurityGroupName = myec2group
EC2SecurityGroupOwnerId = 987654321021
例子
https://rds.amazonaws.com/
?Action=AuthorizeDBSecurityGroupIngress
&EC2SecurityGroupOwnerId=987654321021
&EC2SecurityGroupName=myec2group
&Version=2009-10-16
&SignatureVersion=2
&SignatureMethod=HmacSHA256
&Timestamp=2009-10-22T17%3A10%3A50.274Z
&AWSAccessKeyId=<AWS Access Key ID>
&Signature=<Signature>
资源链接: