Какие порты нужно открыть в AWS для запуска кластера Greenplum, развернутого в Ambari?

У меня есть 5 узлов Greenplum Cluster в Amazon Web Services с Ambari. В моей группе безопасности открыты следующие порты (все с протоколом TCP): 80 50030 28080 8080 5432 50075 8441 50020 50010 443 9000 50070 22 50475 8021 8440 50470 50470 8020 50060 50090 51111 Я не могу запускать службы в Ambari, только Я могу запускать службы, если добавлю правило «весь трафик» в мою группу AWS Security. Какие порты мне нужно открыть и какие порты из моей группы безопасности я могу закрыть? Спасибо за помощь!


person Joan Sánchez Escudero    schedule 24.05.2017    source источник
comment
Весь трафик UDP и TCP должен быть разрешен между узлами в кластере. Вы пробовали торговую площадку Pivotal Greenplum? Он все делает за вас.   -  person Jon Roberts    schedule 24.05.2017
comment
У меня установлен основной Greenplum, и у меня были вторжения, потому что все порты открыты.   -  person Joan Sánchez Escudero    schedule 25.05.2017


Ответы (1)


При развертывании в AWS вам потребуется создать несколько ресурсов.

  1. Зона доступности: вы захотите использовать только одну зону доступности при развертывании любого продукта для работы с большими данными в Amazon.
  2. VPC: так же, как AZ, создайте только один VPC. Вы также можете настроить VPC для включения имен хостов DNS, что упрощает работу.
  3. Подсеть: подсеть указывает диапазон IP-адресов для развертываемых вами хостов. Вы также хотите, чтобы подсеть автоматически назначала IP-адрес при запуске.
  4. Группа безопасности: при создании VPC автоматически создается группа безопасности. Вы можете использовать это или создать еще один. Вероятно, здесь у вас возникли проблемы.

Включите TCP-порты 0-65535, UDP-порты 0-65535 и ping (icmp-порт -1) только для группы безопасности. Не открывайте все это миру (0.0.0.0/0).

Например:

aws ec2 authorize-security-group-ingress --group-id $security_group_id --protocol tcp --port 0-65535 --source-group $security_group_id
aws ec2 authorize-security-group-ingress --group-id $security_group_id --protocol udp --port 0-65535 --source-group $security_group_id
aws ec2 authorize-security-group-ingress --group-id $security_group_id --protocol icmp --port -1 --source-group $security_group_id

Затем получите свой IP-адрес. Вот изящный способ сделать это:

security_cidr=$(wget http://ipecho.net/plain -O - -q ; echo "/32")

Теперь разрешите доступ к ssh и подключитесь к базе данных только со своим IP-адресом.

aws ec2 authorize-security-group-ingress --group-id $security_group_id --protocol tcp --port 22 --cidr $security_cidr
aws ec2 authorize-security-group-ingress --group-id $security_group_id --protocol tcp --port 5432 --cidr $security_cidr
  1. Шлюз: создайте шлюз и подключите его к своему VPC.
  2. Маршрут: для VPC будет автоматически создана таблица маршрутов. Вам нужно будет выполнить маршрутизацию, используя шлюз и вашу таблицу маршрутизации, которая допускает пункт назначения 0.0.0.0/0. Это позволяет кластеру обмениваться данными через Интернет, но ваша группа безопасности по-прежнему разрешает подключение только вашему IP-адресу.
  3. Группа размещения: создание этой группы объединяет все ваши узлы для повышения производительности.
  4. Развертывание экземпляров: используйте вариант, оптимизированный для ebs, и выделенную аренду. При использовании хранилища EBS используйте диск типа st1. Если вы используете эфемерный, используйте RAID 0 с как можно большим количеством томов. Не создавайте только одно монтирование RAID0.

Вам еще предстоит выполнить множество оптимизаций, таких как включение сети 10 ГБ, установка сетевых драйверов Intel, настройка операционной системы, а также форматирование и монтирование дисков.

Намного более простым решением является использование предложения Pivotal Greenplum Amazon Marketplace, в котором все это уже настроено для вас. Он также развертывает кластер за считанные минуты.

person Jon Roberts    schedule 25.05.2017
comment
Если я включу TCP-порты 0-65535, UDP-порты 0-65535 и ping (icmp-порт -1) только для моей группы безопасности, я не смогу получить доступ к порту 8080 из браузера (введя . . ***. ***: 8080). Я могу это сделать только тогда, когда разрешу весь трафик :( - person Joan Sánchez Escudero; 29.05.2017
comment
Я не знаю, почему вы используете Ambari с Greenplum, но если вы хотите получить доступ к порту 8080 со своего компьютера, добавьте запись в группу безопасности для TCP-порта 8080 и разрешите доступ только к вашему IP-адресу. Я бы также изменил пароль Ambari по умолчанию. - person Jon Roberts; 30.05.2017