#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, который решил проблему