Подключение к Aurora MySQL без сервера с помощью Node
Я пытаюсь подключиться к своему кластеру Aurora Serverless MySQL DB с помощью модуля mysql, но мое соединение всегда прерывается.
const mysql = require('mysql');
//create connection
const db = mysql.createConnection({
host : 'database endpoint',
user : 'root',
password : 'pass',
database : 'testdb'
});
//connect
db.connect((err) => {
if(err){
throw err;
console.log('connection failed');
}
console.log('mysql connected...');
})
db.end();
У моего кластера нет публичного IP-адреса, поэтому я пытаюсь использовать конечную точку. Я успешно подключился к БД с помощью Cloud9, но не могу подключиться с помощью узла. Я должен что-то упустить.
1 ответ
Aurora Serverless использует внутреннюю сетевую настройку AWS, которая в настоящее время поддерживает только соединения изнутри VPC, и это должен быть тот же VPC, где развернут безсерверный кластер.
Вопрос: Как мне подключиться к кластеру Aurora Serverless DB?
Вы получаете доступ к кластеру Aurora Serverless DB из клиентского приложения, работающего в том же виртуальном частном облаке Amazon (VPC). Вы не можете дать кластеру Aurora Serverless DB публичный IP-адрес.
Это же ограничение относится к Amazon EFS по архитектурно-подобным причинам. Вы можете обойти ограничение в EFS, и тот же обходной путь может быть использован для Aurora Serverless, но вам необходимо полностью отключить проверки работоспособности, так как эти соединения проверки работоспособности будут поддерживать экземпляр постоянно. Лучше всего избегать использования базы данных в Интернете.
Вы также можете использовать некоторые решения VPN. Они должны были бы быть основаны на экземплярах и, вероятно, должны были бы использовать NAT для маскировки клиентского адреса за внутренним адресом экземпляра VPN - это фактически то, что делает упомянутый выше обходной путь прокси, но на другом уровне OSI.