2013-08-24 3 views
5

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.

Odpowiedz

3

Cóż, nie mam jeszcze doświadczenia w budowaniu struktur AWS, ale postaram się pomóc.

1) Nie można udostępniać woluminów EBS za pośrednictwem instancji EC2, do tego scenariusza trzeba będzie użyć usługi sieciowej lub usługi RDS ... Może łatwiej będzie zapłacić nieco więcej za lepszą instancję podczas pracy zmiany, także Load Balancer dodaje trochę więcej wydatków na swój system, użyj kalkulatora aws, aby sprawdzić, czy jest to warte.

2) Dla plików Proponuję użyć S3, api jest naprawdę proste, żadnych sztuczek, dobrej prędkości i dużo tańsze niż przechowywanie obrazów w EBS, wystarczy zapisać link w bazie danych i jesteś dobry, dostęp z dowolnego miejsca .

3) Jak wspomniałem na pierwszej odpowiedzi, nie można udostępnić woluminu EBS, więc potrzebne będą dwie równe instancje.

Zobacz także tę opcję: http://aws.amazon.com/pt/elasticbeanstalk/ Jest to naprawdę prosty sposób na uruchomienie wszystkiego w aws.