Рейтинг:0

Как лямбда-функция AWS может вызывать экземпляр EC2 через частный IP-адрес?

флаг cz

Как я могу заставить лямбду вызывать экземпляры ec2 через свой частный IP-адрес?

Короче говоря, создаю бота для разногласий для моих товарищей по серверу Minecraft, чтобы запускать и останавливать экземпляр AWS, а также обрабатывать автоматическое отключение, если на сервере никого нет.

Функция Lambda будет обрабатывать запуск, остановку, получение текущего автоматически назначенного общедоступного IP-адреса и подтверждение того, что сервер работает через протокол запросов Minecraft (порт UDP 25565).

Я пытаюсь сделать это как можно более экономичным и хочу посмотреть, смогу ли я сделать это без назначенного эластичного IP-адреса. Так как у меня будет более одного сервера minecraft, который нужно будет запустить. И есть плата, если этот сервер находится в автономном режиме с эластичным IP-адресом или вы используете более 1 эластичного IP-адреса.

Я протестировал ту же функцию, когда тот же сервер использовал эластичный IP-адрес, и она работала, как и ожидалось. Теперь я хочу знать, могу ли я сделать то же самое с частным IP-адресом.

Tim avatar
флаг gp
Tim
А... с какой частью у тебя проблемы? Найти частный неэластичный IP-адрес или вызвать его? Если вы можете позвонить по эластичному IP-адресу, я не уверен, в чем разница, чтобы позвонить на частный IP-адрес. Вы, вероятно, знаете это, но остановка экземпляра выполняется путем вызова API EC2, для которого вам не нужен IP-адрес.
user3346931 avatar
флаг cz
Вызов частного IP-адреса после запуска экземпляра сервера - это то, с чем мне нужна помощь. Запуск и остановка экземпляра обрабатывается API-интерфейсом ec2 на лямбда-выражении. Когда API выполнит действие «statusCheck», он одновременно вызовет descriptionInstance и вызовет UDP-порт 25565, затем объединит их и отфильтрует для чтения ботом разногласий.
Tim avatar
флаг gp
Tim
Если вы можете звонить по эластичному IP-адресу, какая разница звонить на публичный IP-адрес? Я не понимаю проблемы, с которой вы столкнулись. Вы бы просто вызвали EC2 API, чтобы найти IP в любом случае, не так ли?
Рейтинг:0
флаг af

Если вы еще этого не сделали, вам необходимо подключить Lambda к VPC, в котором работает экземпляр EC2. https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html

По умолчанию функции Lambda могут взаимодействовать только с ресурсами в общедоступном Интернете, поэтому общедоступный IP-адрес экземпляра EC2, API-интерфейсы AWS и т. д.

Оттуда вам нужно убедиться, что группа безопасности (SG), назначенная экземпляру EC2, может получать (входящий) трафик от SG, назначенной для функции Lambda. Это будет порт UDP 25565 или что вам нужно.

Вам также необходимо убедиться, что SG, назначенная для функции Lambda, может выполнять исходящие подключения к SG, назначенной экземпляру EC2, опять же через UDP-порт 2265 или любой другой, который вам нужен. Это немного проще, так как исходящая политика обычно широко открыта.

Для тестирования вы можете назначить SG для функции Lambda другому экземпляру EC2, поместите экземпляр, играющий роль функции Lambda, в ту же подсеть (подсети), что поможет проверить настройку в дальнейшем.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.