Туннелирование в кластер красных смещений - PullRequest
0 голосов
/ 19 ноября 2018

Я новичок в красном смещении. В настоящее время я могу создать кластер красных смещений и подключить его через SQL Workbench, но я с нетерпением жду возможности туннелировать мой кластер красных смещений, выполняя ssh с моего MAC-терминала. Я провел некоторые исследования и смог создать экземпляр ec2 с тем же идентификатором VPC и группой подсетей, с помощью которого я создаю свой кластер Redshift. Я уже установил psql на мой экземпляр ec2. Я не могу понять, где я иду не так, когда я использую команду psql для подключения к красному смещению:

psql -h my redshift endpoint -p 5439 -d database name -U user -c " my query "

выдает ошибку psql: не удалось перевести имя хоста "моя конечная точка красного смещения" в адрес: имя или служба неизвестна

Ответы [ 3 ]

0 голосов
/ 19 ноября 2018

Первым шагом является туннелирование к экземпляру EC2 с использованием ssh с командой, которая перенаправляет локальный порт на удаленный порт:

ssh -i KEYPAIR.pem -L 5439:REDSHIFT-ENDPOINT:5439 ec2-user@EC2-PUBLIC-IP

Где:

  • KEYPAIR.pem должно быть именем пары ключей, используемой для доступа к экземпляру EC2
  • REDSHIFT-ENDPOINT - DNS-имя конечной точки Redshift
  • EC2-PUBLIC-IP - это IP-адрес экземпляра EC2

Эта команда говорит:

  • Создание соединения ssh с помощью пары ключей
  • Переадресация любого трафика, отправленного на локальный порт 5439, на удаленный компьютер, затем пусть удаленный компьютер отправляет этот трафик на REDSHIFT-ENDPOINT:5439 (замените конечную точку на REDSHIFT-ENDPOINT )

Затем вы можете подключиться к Redshift на localhost:5439, как если бы он работал на вашем компьютере.Этот трафик будет отправлен на удаленный компьютер, который отправит его на REDSHIFT-ENDPOINT:5439.

Например, если вы хотите использовать psql для подключения к Redshift, используйте:

psql -h localhost -p 5439 -U <username>
0 голосов
/ 23 ноября 2018

Спасибо Джону Ротенштейну за то, что он дал мне понимание, что я фактически пропустил правило Входящего, связанное с моей группой безопасности, чтобы разрешить трафик, поступающий только с частного IP-адреса красного смещения. И мой экземпляр ec2, и красное смещение находились в одном и том же VPC, поэтому предполагалось использовать приватный, а не публичный IP. Также забыл поставить открытый ключ ssh от redshift в файле ec2 authorized_key. Как только я это сделал, это сработало.

0 голосов
/ 19 ноября 2018

попробуйте psql -h localhost -p 5439 -d -U -c " my query " или psql -p 5439 -d -U -c " my query ", вы не можете использовать переключатель -h без аргумента, который по умолчанию равен localhost, если вы не используете его

...