我正在使用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安全组添加到数据库安全组

  • 登录到AWS管理控制台,然后通过https://console.aws.amazon.com/rds/打开Amazon RDS控制台。
  • 从控制台窗口左侧的导航 Pane 中选择“安全组”。
  • 选择要授予访问权限的数据库安全组的详细信息图标。

  • asp.net-mvc - 在EC2实例上运行的MVC应用程序无法访问RDS数据库-LMLPHP
  • 在安全组的详细信息页面中,选择,从“连接类型”下拉列表中选择“EC2安全组”,然后选择要使用的Amazon EC2安全组。然后单击授权。

  • asp.net-mvc - 在EC2实例上运行的MVC应用程序无法访问RDS数据库-LMLPHP
  • 直到新的入口规则已应用于与您修改的数据库安全组关联的所有数据库实例之前,入口规则的状态将为授权状态。成功应用入口规则后,状态将更改为已授权。

  • 命令行界面

    要授予对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:
    EC2Security­GroupName = myec2group
    
    EC2SecurityGroupOwnerId = 987654321021
    

    例子
    https://rds.amazonaws.com/
        ?Action=AuthorizeDBSecurityGroupIngress
        &EC2SecurityGroupOwnerId=987654321021
        &EC2Security­GroupName=myec2group
        &Version=2009-10-16
        &SignatureVersion=2
        &SignatureMethod=HmacSHA256
        &Timestamp=2009-10-22T17%3A10%3A50.274Z
        &AWSAccessKeyId=<AWS Access Key ID>
        &Signature=<Signature>
    

    资源链接:
  • How do I resolve problems connecting to my Amazon RDS databaseinstance?
  • Authorizing Network Access to a DB Instance from an Amazon EC2Instance
  • 09-17 10:27
    查看更多