Konfigurowałem instancje Amazon EC2 dla nadchodzącego projektu. Wszystkie są mikro instancjami, działającymi na Ubuntu Server 64bit. Oto co skonfigurowałem do tej pory:
- Serwer WWW - Apache
- Serwer bazy danych - MySQL
- Serwer deweloperski - Apache i MySQL
- Serwer plików - SVN i Bacula (kopie zapasowe są tworzone dla segmentów S3)
Obecnie istnieje tylko jeden serwer WWW, ale ostatecznie będzie ich więcej.
Moje pierwsze pytanie brzmi: jaki jest najlepszy, najbezpieczniejszy sposób komunikacji między instancjami Amazon EC2? Obecnie używam SSH, czy to najlepsza metoda?
Według Amazon za instancje komunikujące się między sobą za pomocą elastycznych adresów IP naliczane będą opłaty za transfer danych. Jednak instancje komunikujące się przy użyciu swoich prywatnych adresów IP mogą to zrobić za darmo. Niestety wydaje się, że prywatne adresy IP zmieniają się, jeśli instancja zostanie zatrzymana i ponownie uruchomiona.
To moje drugie pytanie: jak wykorzystać prywatne adresy IP instancji Amazon, jeśli nie są statyczne?
Wiem, że instancje prawdopodobnie nie będą zatrzymywane i uruchamiane bardzo często, ale jeśli adres IP znajduje się w różnych plikach konfiguracyjnych, trudno byłoby przejrzeć je wszystkie i zmienić.
Przede wszystkim martwię się o serwery WWW, które będą potrzebowały dostępu do serwera bazy danych i serwera plików, które będą potrzebowały dostępu do wszystkich instancji podczas wykonywania kopii zapasowych.
Uwaga: Nigdy wcześniej nie korzystałem z Baculi i nie mam jeszcze konfiguracji, ale zakładam, że będzie potrzebował adresów IP klientów, aby utworzyć ich kopię zapasową.
Odpowiedzi:
Sprawdź artykuł Erica Hammonda wyjaśniający, jak używać elastycznych adresów IP nawet z poziomu EC2. Ta metoda NIE powoduje żadnych opłat za przepustowość, ponieważ rozwiązywanie elastycznego adresu IP (według nazwy) z poziomu EC2 zwraca prywatny adres IP.
http://alestic.com/2009/06/ec2-elastic-ip-internal
Aby uzyskać więcej opcji, mam artykuł analizujący kilka alternatyw:
http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html
źródło
Wdróż instancję EC2 w AWS Virtual Private Cloud (VPC). Podczas konfigurowania VPC przypiszesz CIDR do wszystkich instancji EC2 w VPC, a wewnętrzny adres IP będzie statyczny.
źródło
SSH to bardzo dobra metoda przesyłania danych między różnymi serwerami, ale jeśli szukasz czegoś takiego jak stałe połączenie (na przykład z bazą danych), możesz użyć dowolnego rodzaju zaszyfrowanego oprogramowania tunelującego, takiego jak
stunnel
Ponieważ nie ma możliwości posiadania statycznych prywatnych adresów IP, możesz użyć do tego pewnego rodzaju automatycznego wdrożenia serwera, istnieje kilka narzędzi, takich jak mcollective, capistrano lub func, które pozwolą ci zarejestrować nową instancję na centralnym wyznaczonym serwerze i generować działania na wielu oparte na tym maszyny
źródło