Произошла ошибка тайм-аута соединения при попытке подключиться к БД Dynamo без прокси - PullRequest
1 голос
/ 31 января 2020

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

#DynamoDB configuration
amazon.dynamodb.endpoint=https://dynamodb.REGIONXXXX.amazonaws.com
amazon.dynamodb.region=XXXXXXXXX
spring.data.dynamodb.entity2ddl.auto=create-only
proxy.server.address=XXXXXXXXX
proxy.server.port=31XXXXX

Конфигурация DynamoDB:

@Bean
public AmazonDynamoDB amazonDynamoDB() {
    return AmazonDynamoDBClientBuilder
            .standard()
            .withClientConfiguration(
                    PredefinedClientConfigurations.defaultConfig()
                            .withProxyHost(proxy)//we want to remove this code.
                            .withProxyPort(port))
            .withEndpointConfiguration(
                    new AwsClientBuilder
                            .EndpointConfiguration(amazonDynamoDBEndpoint, amazonDynamoDBRegion))
            .build();
}

Требуется подключить ее с помощью VP C конечных точек, поэтому мы считаем, что мы можем подключить его без какого-либо прокси. Какие все конфигурации необходимы для того же? Требуются ли какие-либо изменения кода вместо удаления прокси?

Мы настроили конечную точку VP C со следующей политикой:

{
"Statement": [
    {
        "Action": "*",
        "Effect": "Allow",
        "Resource": "*",
        "Principal": "*"
    }
]

}

Но при попытке подключиться к DynamoDB с тем же кодом, упомянутым выше (без прокси), что приводит к появлению ошибки ниже:

com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to dynamodb.XXXXXX-1.amazonaws.com:443 [dynamodb.XXXXXXX.amazonaws.com/XX.1XX.226.XXX] failed: connect timed out

Пожалуйста, помогите решить эту проблему.

1 Ответ

1 голос
/ 31 января 2020

DyanamoDB, как и S3, использует конечные точки шлюза VP C. После включения шлюза VP C вы можете просто использовать конфигурацию по умолчанию, поскольку VP C обрабатывает маршрутизацию запроса от экземпляра EC2 на частный IP-адрес к DynamoDB.

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
.build();

Примечание: я не знаком с AWS Java API, поэтому я взял это выше из AWS Пример кода.

Предполагается, что правила маршрутизации вашей группы безопасности и VP C правильные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...