Невозможно подключиться к RDS MySQL из AWS Lambda

У меня есть база данных RDS MySQL, созданная под одной учетной записью AWS. Эта БД открыта, я могу подключиться с помощью Workbench или любого другого настольного приложения.

Также у меня есть другая учетная запись AWS, где я пытаюсь создать функцию Lambda для подключения к базе данных RDS из моей первой учетной записи.

И похоже, что это невозможно, потому что я каждый раз получаю тайм-аут.

Вот мой лямбда-код Java:

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import java.sql.DriverManager;

public class DBTest implements RequestHandler<String, String> {

    @Override
    public String handleRequest(String input, Context context) {
        context.getLogger().log("Input: " + input+"\n");

        try {
            StringBuilder url = new StringBuilder();

            url.append("jdbc:mysql://").
                append("jackdbinstance.********.eu-west-1.rds.amazonaws.com:3306/").
                append("TestLambdaDB"+"?").
                append("user=******&").
                append("password=*******");


            DriverManager.getConnection(url.toString());

            return "DB connected";
        } catch (Exception e) {
            return e.toString();
        }
    }
} 

Используя тот же код, я могу без проблем подключиться из моего настольного java-приложения.

Я не использую VPC, я выделил 512 МБ памяти для Lambda, тайм-аут установлен на 30 секунд (на мой взгляд, этого достаточно)

Может кто-нибудь помочь, пожалуйста?


person Yevhen    schedule 29.11.2017    source источник
comment
Как workbench подключается к вашей базе данных? Может ли workbench подключиться к порту 3306 вашего экземпляра напрямую (без ssh, переадресации портов и т. д.)? Означает ли это, что весь Интернет может также попытаться подключиться к вашему экземпляру через порт 3306?   -  person Noel Llevares    schedule 30.11.2017
comment
Вы проверили свою группу безопасности VPC, подключенную к RDS MySQL? Может быть, это блокирует IP-адреса Amazon, которые используются lamba? При первом создании RDS по умолчанию создается новая группа безопасности, и в эту группу безопасности автоматически добавляется IP-адрес вашего рабочего стола.   -  person Rodel    schedule 30.11.2017
comment
Спасибо Родель. Ваш ответ был полезен. Был только один IP.   -  person Yevhen    schedule 30.11.2017


Ответы (1)


Проблема была связана с конфигурацией группы безопасности для экземпляра RDS, для подключения использовался только один IP-адрес, каким-то образом это правило было установлено автоматически при создании экземпляра RDS.

person Yevhen    schedule 30.11.2017