Как лучше всего общаться между инстансами Amazon EC2?

41

Я настраивал экземпляры 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-адреса клиентов.

ks78
источник
2
+1 - мне бы понравились эластичные частные IP. Также обратите внимание, что я думаю, что вы не можете общаться между регионами через частные IP-адреса.
Джоэл К
Я думаю, вы обнаружите, что один m1.small даст вам гораздо лучшую производительность, чем несколько t1.micro. Затем обновите до c1.medium. Затем начните запускать несколько c1.medium или используйте еще больший тип экземпляра. Однако обратите внимание, что m1.small и c1.medium поддерживают только 32-битные, а не 64-битные.
Эрик Хаммонд

Ответы:

29

Прочтите статью Эрика Хаммонда, в которой объясняется, как использовать 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

Шломо Свидлер
источник
Спасибо за ваш ответ. Я все больше думаю о том, что динамический DNS - это путь, хотя я никогда раньше не настраивал DNS. Знаете ли вы какие-либо сайты, которые предлагают подробное описание того, как это сделать?
ks78
6

Разверните свой экземпляр EC2 в виртуальном частном облаке AWS (VPC). Когда вы настраиваете свой VPC, вы назначаете CIDR всем экземплярам EC2 в VPC, и внутренний IP будет статическим.

user188724
источник
Это, безусловно, лучший подход.
ceejayoz
2
  • Самый безопасный способ связи

SSH - очень хороший метод для передачи данных между различными серверами, но если вы ищете что-то вроде постоянного соединения (например, с базой данных), вы можете использовать любой вид программного обеспечения для зашифрованного туннелирования, например stunnel

  • Нестатические частные IP-адреса

Поскольку нет статичных частных IP-адресов, вы можете использовать для этого какое-то автоматическое развертывание сервера, есть несколько инструментов, таких как mcollective, capistrano или func, которые позволят вам зарегистрировать новый экземпляр на центральном назначенном сервере и сгенерировать действия на нескольких машины на основе этого

lynxman
источник
Я первоначально отправил тот же вопрос на StackOverflow. Там кто-то предложил использовать DNS-сервер, поэтому, если частные IP-адреса изменятся, это не будет иметь значения, потому что они будут использовать DNS-имена для общения. Что вы думаете об этом решении?
ks78
1
Это неплохое решение, если вы в состоянии поддерживать динамическую зону DNS в актуальном состоянии, хотя, поскольку вам потребуется использовать ее, а также основной DNS-сервер для всех ваших экземпляров, это также даст вам единую точку отказа, вот почему я предложил mcollective или capistrano вместо этого, поскольку это также даст вам преимущество выполнения сложных операций на ваших узлах
lynxman
Спасибо. Мне просто интересно, что вы думаете об этом решении. Я посмотрю в Mcollective и Capistrano.
ks78
извините за восстановление старого потока, но частные IP-адреса все еще нестатичны на ec2? Это не то, что я наблюдаю на новой установке ec2 - сетевые интерфейсы остаются без внимания после того, как я прекращаю работу с серверами, и частные IP-адреса еще не изменились. Я также, кажется, могу выбрать дополнительные частные IP-адреса, если это необходимо.
icyitscold