
Я настроил PuTTY для доступа к моим экземплярам, как описано винструкция. Я установил имя хоста, как оно отображается на панели управления экземпляра - все работает отлично. Но когда я перезапускаю свой экземпляр, его публичный IP-адрес (а также публичный DNS) отличается (AFAIU, они перестраиваются каждый раз при перезапуске экземпляра). Поэтому мне приходится перенастраивать свое соединение в PuTTY. Есть ли способ получить некоторую постоянную конфигурацию, которая будет работать независимо от смены IP-адреса?
PS: Я знаю, что Elastic IP — это решение, но меня интересуют и другие варианты.
решение1
Упакуйте свое приложение в контейнер Docker и перезапустите контейнер Docker внутри хост-машины, если это необходимо. В сервисе Elastic Beanstalk есть поддержка Docker, поэтому вам не придется беспокоиться об установке и настройке Docker. Таким образом, типичный поток для работы напрямую с сервисом выглядит следующим образом:
- Развернуть новый экземпляр Beanstalk (который на самом деле является EC2 с предустановленным программным обеспечением)
- Разверните на нем образ hello-world или используйте свой собственный.
- Подключитесь по SSH к экземпляру EC2.
- судо су
- докер пс
- И так далее...
Однако есть некоторая неочевидная особенность использования Beanstalk, так как по умолчанию ваше приложение будет открыто для внешнего мира на порту 80 с использованием предустановленного nginx, и вам придется немного перенастроить nginx, если вы не хотите открывать порт 80. Но на самом деле вы получите полную мощь автоматизации развертывания, доступную с Beanstalk.
решение2
Не вижу причин не использовать Elastic IP — он бесплатный и простой в настройке.
Другим вариантом было бы использование динамического DNS, но вам нужно будет иметь возможность выполнить какой-то скрипт при запуске экземпляра (внутренний или внешний). Мы использовали такую настройку в прошлом для наших внутренних адресов, но в конечном итоге перешли на VPC. DNSMadeEasy поддерживает эту функцию, доступно множество скриптов, и вы можете легко написать свой собственный.