Задаче ECS не удается установить соединение с локальным SQL Server

#sql-server #amazon-web-services #amazon-ecs #amazon-vpc

#sql-server #amazon-web-services #amazon-ecs #amazon-vpc

Вопрос:

У меня есть контейнер, работающий внутри кластера ECS, который должен взаимодействовать с сервером SQL, расположенным в локальном центре обработки данных, исходящие правила SG, прикрепленные к контейнеру, широко открыты. Какие другие возможности мне нужно изучить?

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

«status»: «DOWN»,
«components»: {
«db»: {
«status»: «DOWN»,
«details»: {
«ошибка»: «org.springframework.jdbc.CannotGetJdbcConnectionException: не удалось установить соединение с JDBC;
вложенным исключением является com.microsoft.sqlserver.jdbc.Исключение SQLServerException: соединение TCP / IP с хостом xyz.com , произошел сбой порта XXXX.
Ошибка: «Время ожидания подключения истекло.
Проверьте свойства подключения. Убедитесь, что экземпляр SQL Server запущен на хосте и принимает соединения TCP / IP через порт. Убедитесь, что TCP-соединения с портом не заблокированы брандмауэром.».»}},
«Дисковое пространство»: { «статус»:»ВВЕРХ», «подробности»: {«всего»: 265444, «свободно»: 155557, «пороговое значение»: 764468, «существует»: true}},»ping»:{«status»:»UP»}}}

Комментарии:

1. У вас есть группы безопасности, которые вы настроили на стороне AWS. Как насчет аппаратных и программных брандмауэров на вашем исходном конце?

2. У нас есть другие сервисы / инструменты, которые могут устанавливать соединение из on-Prem с aws, так что это знак или подтверждение со стороны on-Prem, что он разрешает подключения из aws

3. Брандмауэры имеют отдельные правила для входящего и исходящего трафика. То, что вы можете подключиться из on-prem к AWS, не означает, что вы можете пойти другим путем.

4. Fargate или EC2? Используете ли вы сетевой режим awsvpc? Если да, убедитесь, что задача запущена в частной подсети со шлюзом NAT.

5. awsvpc и задача выполняются внутри частной подсети

Ответ №1:

ECS fargate использует DNS, который невозможно было разрешить, я добавил его в route53, который решил проблему