Telepítsen egy tavaszi indító alkalmazást az AWS Beanstalk alkalmazásba
1. Áttekintés
Ebben az oktatóanyagban bemutatjuk, hogyan telepíthet egy alkalmazást a Bootstrap egy egyszerű alkalmazásból a Spring Boot oktatóanyag segítségével az AWS Elastic Beanstalk alkalmazásba.
Ennek részeként:
- Telepítse és konfigurálja az AWS CLI eszközöket
- Hozzon létre egy Beanstalk projektet és MySQL telepítést
- Konfigurálja az alkalmazást a MySQL-hez az AWS RDS-ben
- Telepítse, tesztelje és méretezze az alkalmazást
2. Az AWS rugalmas babkocsik konfigurálása
Előfeltételként regisztrálnunk kellett magunkat az AWS-re, és létre kellett hoznunk egy Java 8 környezetet az Elastic Beanstalk-on. Telepítenünk kell az AWS CLI-t is, amely lehetővé teszi számunkra, hogy csatlakozzunk a környezetünkhöz.
Tehát ezt figyelembe véve be kell jelentkeznünk és inicializálnunk kell az alkalmazásunkat:
cd ... / spring-boot-bootstrap eb init
> Válasszon alapértelmezett régiót 1) us-east-1: US East (N. Virginia) 2) us-west-1: US West (N. California) 3) us-west-2: US West (Oregon) 4) eu-west-1: EU (Írország) 5) eu-central-1: EU (Frankfurt) 6) ap-south-1: Ázsia-csendes-óceáni (Mumbai) 7) ap-southeast-1: Asia Pacific (Szingapúr) 8) ap-délkelet-2: Ázsia-csendes-óceáni (Sydney) 9) ap-északkelet-1: Ázsia-csendes-óceáni (Tokió) 10) ap-északkelet-2: Ázsia-csendes-óceáni (Szöul) 11) sa-kelet-1: Dél-Amerika (Sao Paulo) ) 12) cn-north-1: Kína (Peking) 13) cn-northwest-1: Kína (Ningxia) 14) us-kelet-2: US East (Ohio) 15) ca-central-1: Kanada (Central) 16) eu-west-2: EU (London) 17) eu-west-3: EU (Párizs) 18) eu-north-1: EU (Stockholm) (alapértelmezett érték: 3):
Amint a fentiekből látható, a rendszer kéri a régió kiválasztását.
Végül kiválaszthatjuk az alkalmazást:
> Válassza ki a használni kívánt alkalmazást 1) baeldung-demo 2) [Új alkalmazás létrehozása] (alapértelmezés szerint 2):
Most, a CLI létrehoz egy nevű fájlt .elasticbeanstalk / config.yml. Ez a fájl megőrzi a projekt alapértelmezett értékeit.
3. Adatbázis
Most létrehozhatjuk az adatbázist az AWS Web Console-on vagy a CLI segítségével:
eb create --single --database
Felhasználónév és jelszó megadásához kövessük az utasításokat.
A létrehozott adatbázisunkkal állítsuk be most az alkalmazásunk RDS hitelesítő adatait. Ezt egy tavaszi profilban fogjuk megtenni babkagyló létrehozásával src / main / resources / application-beanstalk.properties alkalmazásunkban:
spring.datasource.url = jdbc: mysql: // $ {rds.hostname}: $ {rds.port} / $ {rds.db.name} spring.datasource.username = $ {rds.username} spring.datasource. jelszó = $ {rds.password}
A tavasz megkeresi a megnevezett ingatlant rds.hostname nevű környezeti változóként RDS_HOSTNAME. Ugyanez a logika érvényes a többire is.
4. Alkalmazás
Most hozzáadunk egy Beanstalkot–specifikus Maven profil a pom.xml:
beanstalk $ {project.name} -eb org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-compiler-plugin ** / cloud / config / *. java
Ezután megadjuk a tárgyat az Elastic Beanstalk konfigurációs fájlban .elasticbeanstalk / config.yml:
install: artefact: target / spring-boot-bootstrap-eb.jar
És végül két környezeti változót felveszünk az Elastic Beanstalk-ba. Az első meghatározza az aktív tavaszi profilokat, a második pedig a Beanstalk által elvárt alapértelmezett 5000-es port használatát biztosítja:
eb setenv SPRING_PROFILES_ACTIVE = beanstalk, mysql eb setenv SERVER_PORT = 5000
5. Telepítés és tesztelés
Most készen állunk a kiépítésre és a telepítésre:
mvn clean package spring-boot: csomagolja újra az eb telepítést
Ezután ellenőrizzük az állapotot és meghatározzuk a telepített alkalmazás DNS-nevét:
eb státusz
A kimenetünk pedig valami hasonló lehet:
A környezettel kapcsolatos részletek: BaeldungDemo-env Alkalmazás neve: baeldung-demo Régió: us-east-2 Telepített verzió: app-181216_154233 Környezetazonosító: e-42mypzuc2x Platform: arn: aws: Flexiblebeanstalk: us-east-2 :: platform / Java 8 fut 64 bites Amazon Linux / 2.7.7 rétegben: WebServer-Standard-1.0 CNAME: BaeldungDemo-env.uv3tr7qfy9.us-east-2.elasticbeanstalk.com Frissítve: 2018-12-16 13: 43: 22,294000 + 00: 00 Állapot: Kész Egészség: Zöld
Most tesztelhetjük az alkalmazást - vegyük észre a CNAME mező DNS-ként történő használatát az URL kitöltéséhez.
Most tegyünk fel egy könyvet könyvtárunkba:
http POST //baeldungdemo-env.uv3tr7qfy9.us-east-2.elasticbeanstalk.com/api/books author = "Iain M. Banks"
És ha minden rendben van, akkor valami olyat kellene kapnunk:
HTTP / 1.1 201 Gyorsítótár-vezérlés: no-cache, no-store, max-age = 0, must-validal Connection: keep-életben Tartalom-típus: application / json; charset = UTF-8 Dátum: 2018. december 19., szerda 15:36:31 GMT lejár: 0 Pragma: no-cache Server: nginx / 1.12.1 Transfer-Encoding: chunked X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mód = blokk {"author": "Iain M. Banks", "id": 5, "title": "A játékok játékosa"}
6. Az alkalmazás méretezése
Végül a telepítést két példány futtatására méretezzük:
eb skála 2
A Beanstalk most két példányt futtat az alkalmazásból és a terheléselosztó forgalomból mindkét példányban.
A gyártás automatikus skálázása kicsit jobban érintett, így ezt egy másik napra hagyjuk.
7. Következtetés
Ebben az oktatóanyagban:
- Telepítette és konfigurálta az AWS Beanstalk CLI-t, és konfigurált egy online környezetet
- Telepített egy MySQL szolgáltatást és konfigurálta az adatbázis-kapcsolat tulajdonságait
- Megépítette és telepítette a konfigurált Spring Boot alkalmazást, és
- Tesztelte és méretezte az alkalmazást
További részletekért olvassa el a Beanstalk Java dokumentációját.
Mint mindig, példáink teljes forráskódja itt van, át a GitHubon.