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 Beanstalkotspecifikus 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.