Я настраиваю инстансы Amazon EC2 для будущего проекта. Все они являются микро экземплярами, работающими под управлением 64-битного Ubuntu Server. Вот что я настроил на данный момент:
В настоящее время существует только один веб-сервер, но со временем их будет больше.
Мой первый вопрос: каков наилучший и наиболее безопасный способ взаимодействия инстансов Amazon EC2 между собой? В настоящее время я использую SSH, это лучший метод?
Согласно Amazon, с инстансов, обменивающихся данными между собой с использованием своих эластичных IP-адресов, будет взиматься плата за передачу данных. Однако экземпляры, обменивающиеся данными с использованием своих частных IP-адресов, могут делать это бесплатно. К сожалению, кажется, что частные IP-адреса меняются, если экземпляр останавливается и перезапускается.
Это мой второй вопрос: как использовать частные IP-адреса инстансов Amazon, если они не статические?
Я знаю, что экземпляры, вероятно, не будут останавливаться и запускаться очень часто, но все же, если IP-адрес находится в разных файлах конфигурации, было бы больно просматривать их все и изменять его.
Меня в первую очередь беспокоят веб-серверы, которым потребуется доступ к серверу базы данных и файловому серверу, которым потребуется доступ ко всем экземплярам при выполнении резервного копирования.
Примечание: Я никогда раньше не использовал Bacula и еще не настроил его, но предполагаю, что для их резервного копирования потребуются IP-адреса клиентов.
Ознакомьтесь со статьей Эрика Хаммонда, в которой объясняется, как использовать эластичные IP-адреса даже из EC2. Этот метод НЕ приводит к расходам за пропускную способность, поскольку разрешение эластичного 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, которые позволят вам зарегистрировать новый экземпляр на центральном назначенном сервере и генерировать действия на нескольких машины на основе этого