允许从 ECS 连接到现有 RDS 数据库吗?

Rep*_*pox 3 amazon-web-services typescript aws-cdk

我当前正在尝试识别现有的 MySQL 实例,并且希望允许我的 ECS 部署能够连接到它。

迄今为止的进展如下:

    const rdsPrimaryDatabase = rds.DatabaseInstance.fromDatabaseInstanceAttributes(this, 'ApplicationReadWrite', {
      instanceEndpointAddress: "application_database_ewqqqrqw.eu-west-1.rds.amazonaws.com", port: 3305, securityGroups: [],
      instanceIdentifier: 'application_database'
    });

    const securityGroup = new ec2.SecurityGroup(this, 'ApplicationEcsSecurityGroup', {
      vpc: vpc,
      allowAllOutbound: true,
      securityGroupName: 'ApplicationEcsSecurityGroup',
    })

    securityGroup.connections.allowTo(rdsPrimaryDatabase, 3306, 'Primary Database')
Run Code Online (Sandbox Code Playgroud)

上述内容目前导致以下错误,与最后一行相关:

    Argument of type 'IDatabaseInstance' is not assignable to parameter of type 'IConnectable'.
    The types of 'connections.defaultPort' are incompatible between these types.
Run Code Online (Sandbox Code Playgroud)

这个错误是完全可以理解的,但我不确定如何克服这个问题 - 而且我不太确定我是否以正确的方式做这件事。

任何帮助表示赞赏。

nsq*_*res 5

不要导入数据库实例,而是尝试导入数据库实例的安全组。

ISecurityGroup databaseSecurityGroup SecurityGroup.FromSecurityGroupId(scope, "ImportedDatabaseSecurityGroup", securityGroupId, new SecurityGroupImportOptions());

var fargateServiceSecurityGroup = new SecurityGroup(this, "FargateServiceSecurityGroup", new SecurityGroupProps());

databaseSecurityGroup.Connections.AllowFrom(fargateServiceSecurityGroup, Port.AllTcp(), "Allow from fargate security group");
Run Code Online (Sandbox Code Playgroud)