Как подключиться к Aurora MySQL через SSH без сервера - PullRequest
0 голосов
/ 23 сентября 2019

Я не могу найти Aurora MySql Db через туннель EC2.

У нас есть Aurora Db без сервера (MySql).Проблема в том, что я не знаю, как локально подключиться к БД с моей машины.

Я пытался добавить параметры SSH в mysqlstring, например:

        MySqlConnectionStringBuilder _connectionBuilder = new MySqlConnectionStringBuilder()
        {
            UserID = "admin",
            Server = "RDS endpoint in Aws",
            Port = 3306,
            SshHostName = "Ip to the Ec2",
            SshUserName = "the ec2 user",
            SshPort = 22,
            SshKeyFile = @"filepath to local .pem file",
            Database = "db name",
            Password = "db-password"
        };

Я пыталсяиспользовать как компоновщик строк, так и sshclient, например:

 using (var sshClient = new SshClient(_connectionBuilder.SshHostName, 22, _connectionBuilder.SshUserName, new PrivateKeyFile(_connectionBuilder.SshKeyFile)))
            {

                sshClient.Connect();
                // SQL QUERY HERE
                sshClient.Disconnect();
            }

Код работает и подключается при его освобождении к экземпляру lambda, но не на моей локальной машине.

Работает, если я открываюОкно CMD и введите:

ssh -N -L 3306:{aws Db endpoint}:3306 -i {path to .pem} {user}@{ip}

И изменит сервер на localhost.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Для этого вы можете использовать SSH.NET .Вы можете найти рабочий пример здесь в отредактированном вопросе .

0 голосов
/ 23 сентября 2019

Возможно, ваша база данных недоступна публично.

PubliclyAccessible Указывает, является ли экземпляр БД экземпляром, доступным из Интернета.Если вы укажете значение true, AWS CloudFormation создаст экземпляр с общедоступным DNS-именем, которое преобразуется в общедоступный IP-адрес.Если вы укажете false, AWS CloudFormation создаст внутренний экземпляр с DNS-именем, который преобразуется в частный IP-адрес.

При создании базы данных убедитесь, что она общедоступна и находится вподсеть, к которой подключен интернет-шлюз.

Также убедитесь, что группы безопасности для базы данных разрешают соединения с вашими портами SSH (22) и портами tcp БД (3306).

РЕДАКТИРОВАТЬ

Вы НЕ МОЖЕТЕ получить доступ к серверам Aurora вне VPC:

Вы не можете дать кластеру Aurora Serverless DB открытый публичный IP-адрес.Вы можете получить доступ к кластеру Aurora Serverless DB только из виртуального частного облака (VPC) на основе сервиса Amazon VPC.

...