Mój obecny scenariusz jest taki, że mam aplikację Java EE zbudowaną na Struts 2.0 i działającą na serwerze tomcat + mysql. Aplikacja jest obecnie hostowana na Virtual Private Server z 2 GB RAM i 60 GB dysku. Jednak użycie aplikacji wzrasta od 10 do 20 razy w godzinach szczytu, powodując awarię serwerów Tomcat i MySQL.Jak skonfigurować aplikację Java (tomcat i mysql) na Amazon AWS z funkcją Auto Scaleup i load balancers?
Zacząłem szukać alternatyw i znalazłem EC2 Amazon jako najlepszy mecz. Z powodzeniem skonfigurowałem darmową instancję Micro RHEL AMI i zainstalowałem Tomcat + MySQL na komputerze. Czytałem również o EBS, Load Balancers, Auto Scale, Cloud Watch i pokrewnych materiałach na stronie Amazon.
To jest mój główny cel, który chcę osiągnąć poprzez AWS:
- stworzenie dwóch instancji EC2 na Amazon (pierwotne i wtórne)
- Instancja wtórny będzie nieaktywne przez większość dzień
- W godzinach szczytu wtórna instancja powinna się automatycznie obudzić
- System równoważenia obciążenia rozpocznie routing ruchu na oba serwery w zależności od dostępności
- Po zmniejsza ruch, serwer wtórny powinien być dezaktywowany automatycznie
Mam następujące pytania głupie :)
Jak danych MySQL być współdzielony pomiędzy obu instancji EC2 ? Czy mogę zainstalować MySQL na woluminie EBS i zamontować ten wolumin jednocześnie w obu instancjach EC2? Czy rozwiąże to mój istniejący problem z MySQL: Zbyt wiele połączeń, które dostaję dużo na moim obecnym VPS w godzinach szczytu?
Jak udostępnić przesłane pliki i obrazy w obu instancjach EC2? Czy będę musiał przechowywać te pliki na zewnętrznym woluminie EBS (poza moim Tomcat WebApps Directory)?
Czy mogę zachować mój pełny folder projektu w wolumenie External EBS i czy ma on odwzorowanie wirtualne? Uprzejmie proszę o podanie jej zalet i wad.
Również kilka dobrych tutoriali na klastrowania Tomcat na EC2, zarządzania sesjami, AWS automatycznym skalowaniem i równoważenia obciążenia będą bardzo pomocne.