我在同一个账户下有两个VPC。VPC-A(安装了RDS )、VPC-B通过ECS EC2部署安装了服务。 VPC-B有多个子网。通过ECS EC2服务部署的服务无法与RDS集成。它一直收到以下错误消息(“Is the server running on host "....") 其中,从Ec2instance(E1) Inc. VPC-B子网以telnet身份登录RDS数据库端口可以连接到数据库。 但是,如果通过ECS安装相同的服务,则无法启动服务器。当手动尝试启动容器时,它可以工作(能够连接到数据库)。 我也在两个私有网络之间建立了对等连接,但只有在通过ECS EC2部署启
我正在使用AWS CDK for .NET创建一个堆栈,该堆栈由VPC、RDS数据库实例和ECS中的应用程序负载平衡Fargate服务组成。我要部署到ECS的容器需要通过环境变量设置RDS数据库的连接信息,但我不确定如何访问该信息。下面是我的CDK代码。 using Amazon.CDK;
using EC2 = Amazon.CDK.AWS.EC2;
using ECS = Amazon.CDK.AWS.ECS;
using RDS = Amazon.CDK.AWS.RDS;
namespace PersonalSecOps
{
public class PersonalSecO
我有一个AWS堆栈,它从一个码头容器创建一个Fargate任务(用ApplicationLoadBalancedFargateService)。容器是一个连接到数据库的web应用程序。当我部署CDK堆栈时,创建数据库实例需要7分钟。但是,Fargate任务的启动速度更快,因此任务被停止,因为它无法连接到数据库(因为is尚未创建)。然后尝试再次启动任务,失败并停止。这重复了四次,直到创建了数据库。
问:是否有一种方法可以推迟启动Fargate任务,直到在CDK代码中完成数据库创建?
这是CDK代码,我使用的是aws-cdk库的2.30.0版本。
import * as cdk from '
我试图从ECS实例连接到RDS数据库,但我一直获得error: password authentication failed for user。两者都是使用AWS CDK配置的。我只提供数据库用户名,并让AWS生成一个密码,该密码通过一个秘密env提供给ECS实例。我正在ECS实例中记录env,我可以看到它正在接收数据库连接信息,包括生成的凭据。
这是我的应用程序代码
import * as dotenv from "dotenv";
import * as Koa from "koa";
import * as Knex from "knex"