Я настраивал экземпляры Amazon EC2 для предстоящего проекта. Все это микро экземпляры, работающие под управлением Ubuntu Server 64bit. Вот что я настроил до сих пор:
- Веб-сервер - Apache
- Сервер базы данных - MySQL
- Сервер разработки - Apache & MySQL
- Файловый сервер - SVN & Bacula (резервное копирование выполняется в сегменты S3)
В настоящее время существует только один веб-сервер, но со временем их станет больше.
Мой первый вопрос: каков наилучший и наиболее безопасный способ взаимодействия инстансов Amazon EC2 между собой? В настоящее время я использую SSH, это лучший метод?
Согласно Amazon, за связь между собой с использованием своих Elastic IP-адресов будет взиматься плата за передачу данных. Однако экземпляры, общающиеся с использованием своих частных IP-адресов, могут делать это бесплатно. К сожалению, кажется, что частные IP-адреса меняются, если экземпляр остановлен и перезапущен.
Итак, это мой второй вопрос: как использовать частные IP-адреса экземпляров Amazon, если они не статичны?
Я знаю, что экземпляры, вероятно, не будут останавливаться и запускаться очень часто, но, тем не менее, если IP-адрес находится в различных конфигурационных файлах, было бы больно просматривать их все и изменять.
В первую очередь меня волнуют веб-серверы, которым потребуется доступ к серверу базы данных и файловому серверу, которым потребуется доступ ко всем экземплярам при выполнении резервного копирования.
Примечание: я никогда раньше не использовал Bacula и пока не настроил его, но я предполагаю, что для его резервного копирования потребуются IP-адреса клиентов.
Ответы:
Прочтите статью Эрика Хаммонда, в которой объясняется, как использовать Elastic IP-адреса даже из EC2. Этот метод НЕ приводит к каким-либо затратам на полосу пропускания, потому что разрешение Elastic IP-адреса (по имени) из EC2 возвращает частный IP-адрес.
http://alestic.com/2009/06/ec2-elastic-ip-internal
Для большего количества вариантов у меня есть статья, исследующая несколько альтернатив:
http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html
источник
Разверните свой экземпляр EC2 в виртуальном частном облаке AWS (VPC). Когда вы настраиваете свой VPC, вы назначаете CIDR всем экземплярам EC2 в VPC, и внутренний IP будет статическим.
источник
SSH - очень хороший метод для передачи данных между различными серверами, но если вы ищете что-то вроде постоянного соединения (например, с базой данных), вы можете использовать любой вид программного обеспечения для зашифрованного туннелирования, например
stunnel
Поскольку нет статичных частных IP-адресов, вы можете использовать для этого какое-то автоматическое развертывание сервера, есть несколько инструментов, таких как mcollective, capistrano или func, которые позволят вам зарегистрировать новый экземпляр на центральном назначенном сервере и сгенерировать действия на нескольких машины на основе этого
источник