Я сделал следующие шаги:
Я сделал все это, но до сих пор не могу подключиться к экземпляру с помощью ping или ssh. Если я выполню те же шаги без битов VPC, я смогу настроить это без проблем. Какой шаг мне не хватает?
Для связи за пределами VPC каждой подсети, отличной от используемой по умолчанию, требуется таблица маршрутизации и связанный с ней интернет-шлюз (подсети по умолчанию получают внешний шлюз и таблицу маршрутизации по умолчанию).
В зависимости от того, как вы создали общедоступную подсеть в VPC, вам может потребоваться явно добавить их дополнительно. Похоже, ваша настройка VPC соответствует сценарию 1 - частное облако (VPC) с единственной общедоступной подсетью и интернет-шлюз для обеспечения связи через Интернет из документации AWS VPC.
Ты будешь необходимо добавить интернет-шлюз к вашему VPC и внутри таблицы маршрутизации публичной подсети назначать 0.0.0.0/0
(маршрут по умолчанию) для перехода к назначенному интернет-шлюзу. В документации есть прекрасная иллюстрация точной топологии сети.
Кроме того, для получения дополнительной информации вы можете проверить Интернет-шлюз VPC Документация AWS. К сожалению, это немного запутано и неочевидно.
Дополнительные сведения о проблемах с подключением см. Также: Устранение неполадок при подключении к вашему экземпляру.
Не уверен, что это именно тот случай, но я только что создал VPC с общедоступными и частными подсетями и заметил, что существует группа безопасности по умолчанию, адрес источника которой совпадает с именем группы безопасности. Фактически доступа к нему нет. Пришлось изменить этот источник на Anywhere, и он начал работать.
Я заметил, что (я думаю) вам нужно быть осторожным с тем, в какой зоне доступности создан ваш экземпляр. Подсеть, сетевой интерфейс и экземпляр должны быть в одной зоне доступности, иначе нет возможности подключиться к общедоступному IP-адресу. для этого экземпляра.
Возможно, я ошибаюсь - но я так не думаю, это стоило мне 12 часов работы, чтобы разобраться.
Надеюсь, это поможет кому-то другому.
Вы должны выделить ENI и назначить эластичный IP-адрес этому ENI. Кроме того, вы должны назначить этот ENI своему VPC. Таблица маршрутизации также должна быть правильной, чтобы правильно пересылать внешние пакеты в ваш VPC.
Поскольку SSH является протоколом с отслеживанием состояния, вам необходимо убедиться, что у вас есть следующее правило OUTBOUND в вашем сетевом ACL:
Rule # Type Protocol Port Range Destination Allow / Deny
100 Custom TCP Rule TCP (6) 49152-65535 0.0.0.0/0 ALLOW