Dzisiaj kontynuacja lekcji o uruchamianiu aplikacji, skonfigurujemy bazę danych i podepniemy wybraną przez nas domenę. Gotowa?
Konfigurujemy bazę danych
Pierwszym naszym krokiem w tej lekcji będzie konfiguracja bazy danych. Użyjemy do tego bazy danych MySQL hostowanej w usłudze Amazon RDS.
Tworzenie bazy danych w Amazon RDS
Najpierw logujemy się do konsoli Amazon AWS pod adresem console.aws.amazon.com .
Przechodzimy teraz z powrotem do narzędzia RDS i czekamy, aż nasa baza danych zostanie skonfigurowana.
Zarządzanie zdalną bazą danych
Aby zarządzać zdalną bazą danych polecamy skorzystać z narzędzia MySQL Workbench. Narzędzie to można bezpłatnie pobrać ze strony producenta www.mysql.com/products/workbench/ . Omówienie funkcji MySQL znajdziemy np na tym instruktażowym video w serwisie YouTube.
Uruchamiamy naszą aplikację
Koeljnym krokiem jest po prostu uruchomienie naszej aplikacji :)
Pula połączeń do bazy danych
W lekcji 12 wspominaliśmy o tym, że w produkcyjnej aplikacji należy używać puli połączeń. Pula połaczeń otwiera wiele połaczeń z bazą danych jednocześnie, po czym jedynie ‘wypożycza’ połaczenia do obsługi konkretnych zapytań. Dzięki temu aplikacja nie traci czasu na nawiązywanie połaczeń i ich zamykanie. Przykładowa konfiguracja poniżej:
<bean id="employeeDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="adresRDS" />
<property name="user" value="naszLoginUzytkownikaRDS" />
<property name="password" value="naszeHasloRDS" />
<property name="maxPoolSize" value="10" />
<property name="minPoolSize" value="4" />
<property name="maxStatements" value="100" />
<property name="testConnectionOnCheckout" value="true" />
</bean>
Oczywiście musisz podmienić adres URL, nazwę użytkownika oraz hasło na dane do bazy danych w RDS (adres URL jest podobny, jak w przypadku lokalnej bazy danych, ale zamiast localhost podajemy adres endpoint, który znajdziemy w panelu RDS)
Generowanie pliku WAR
Ponieważ nasz projekt był tworzony w mavenie, plik WAR otrzymujemy ‘gratis’ podczas budowania. Plik ten znajdziemy w katalogu /target w głównym katalogu modułu koty-webapp naszego projektu.
Wgrywanie pliku WAR do Elastic Beanstalk
Ostatni krok to wgranie wygenerowanego pliku WAR do naszego środowiska w Elastic Beanstalk. W tym celu wchodzimy do Elastic Beanstalk poprzez konsolę i wybieramy nasze środowisko.
Dodajemy własną domenę do naszej aplikacji
Ten krok jest opcjonalny — możemy kupić wybraną przez nas domenę i skonfigurować ją tak, aby po jej wpisaniu w przeglądarce pokazywała się nasza aplikacja. Najpierw jednak musimy ją kupić
Kupujemy domenę
Proces zakupu domeny jest inny w zależności od firmy, w której rejestrujemy domenę. Firm, które to umożliwiają są naprawdę tysiące (wystarczy wpisać w google ‘domeny’) — poniżej przedstawiamy dwie największe w Polsce oraz jedną międzynarodową. Domenę można też zakupić bezpośrednio w panelu Amazon AWS — także zamieszczamy link do dokumentacji poniżej. Każda z tych firm ma inne promocje, inne cenniki, inny panel — ciężko powiedzieć, która z nich jest najlepsza. Sugerujemy jednak skorzystanie z którejś z największych firm, jest mniejsze prawdopodobieństwo że z ewentualnymi problemami zostaniemy sami.
Konfigurujemy Route53
To wystarczy, jesli chodzi o konfigurację w Route53. Musisz jeszcze skonfigurować samą domenę tam, gdzie ją kupiłeś, aby wskazywała na Route53 jako serwer, który nią zarządza. O tym jak to zrobić w kolejnym kroku, póki co spisz lub skopiuj adresy, które są zaznaczone na niebiesko (bez kropek na końcu) — będą Ci one potrzebne w następnym kroku (dla Twojej domeny prawie na pewno będą one nieco inne).
Konfigurujemy domenę
Podobnie jak w przypadku zakupu domeny, dokładna procedura zależy od firmy, w której kupiliśmy naszą domenę. To, co musimy zrobić, to ustawić serwery DNS na te, które odczytaliśmy w poprzednim kroku. Poniżej linki do pomocy poszczególnych firm opisujących ten proces:
Jeśli rejestrowałaś domenę w usłudze Amazon Route53, nie są konieczne żadne dodatkowe kroki :)
Podsumowanie
W tej części lekcji dowiedziałaś się jak przygotować aplikację do jej publikacji w sieci, jak skonfigurować domenę oraz bazę danych tak, aby współpracowały ze sobą :) Teraz możesz już chwalić się swoją aplikacją przed rodziną, znajomymi, ale przede wszystkim przed swoim przyszłym pracodawcą :)
Gratulacje!
Ostrzeżenie
Uwaga! W tej lekcji zrobiliśmy kilka rzeczy, które nie są dobrymi praktykami w przypadku aplikacji, które muszą być zabezpieczone i działać w każdych warunkach, przede wszystkim:
- Nie należy umożliwiać dostępu do bazy danych z dowolnego adresu (krok z konfiguracją security group w narzędziu VPC)! Zamiast tego powinny tam się znaleźć jedynie adresy serwerów aplikacji lub sieci wewnętrznej. Taka konfiguracja znacznie przekracza jednak ramy tego kursu i nie będzie omawiana
- Baza danych powinna być uruchomiona w kilku lokalizacjach (opcja Multi A‑Z deployment). Z uwagi na koszty, które byłyby naliczone, a które wykraczają poza Free Tier, wybraliśmy inną opcję
- Użytkownik, którego aplikacja używa do łączenia się z bazą danych powinien być inny niż użytkownik administracyjny i nie powinien mieć uprawnień, których nie potrzebuje (np. do modyfikacji / usuwania tabel)
Miej to na uwadze w swojej przyszłej pracy — na potrzeby aplikacji, która nie ma dużego znaczenia biznesowego, a dane w niej zawarte nie są wrażliwe, użyte podejście móże być wystarczające. Pamiętaj jednak, że pewne rzeczy można poprawić.
Jeśli uważasz powyższą lekcję za przydatną, mamy małą prośbę: polub nasz fanpage. Dzięki temu będziesz zawsze na bieżąco z nowymi treściami na blogu ( i oczywiście, z nowymi częściami kursu Javy). Dzięki!