Я был в той же ситуации и сделал код для присоединения предварительно полученного EIP к главному экземпляру. Но если вы хотите подключить AWS RDS, вы можете просто разрешить группу безопасности EMR, которая является лучшей.
Ниже приведено то, что я использовал для исправления EIP для главного экземпляра, а не для других. В случае приложения spark с кластерным режимом главный узел имеет сеанс драйвера spark, и только тот, который необходим для включения в белый список.
#!/bin/bash
BOOL=`cat /emr/instance-controller/lib/info/instance.json | jq .isMaster`
if [ $BOOL == "true" ]
then
ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`
aws ec2 associate-address --instance-id $ID --public-ip $1
fi
Этот сценарий получает аргумент, который является EIPВы хотите, и я поместил этот код в качестве действия начальной загрузки для EMR. Помните, что EMR должен иметь разрешение на выполнение для associate-address
.