Skip to content

Latest commit

 

History

History
195 lines (158 loc) · 7.34 KB

README.md

File metadata and controls

195 lines (158 loc) · 7.34 KB

AWS WebApp SQL hozzáféréssel

Tartalomjegyzék

Összetevők

  • AWS Elastic Beanstalk
  • AWS RDS (MariaDB)

SQL adatbázis létrehozása

  1. Lépjünk be az AWS konzolba
  2. Keresőbe írjuk be a RDS szolgáltatást
  3. Kattintsunk a "Create database" gombra
  4. Válasszuk ki a Mariadb adatbázist
  5. Válasszuk ki a "Free tier" opciót
  6. Töltsük ki a következő oldalon a kötelező mezőket
    • DB instance identifier: adatbazis
    • Master username: adatgazda
    • Jelszónál (Master password) generáljunk valami erős jelszót itt. (Pl.: FA+Hb#Tb8dLsUdac8UVesY*8)
  7. Kattintsunk a "Create database" gombra
  8. Miután létrejött az adatbázis, kattintsunk rá, majd kattintsunk a "Modify" gombra
  9. A "Public accessibility" opciót állítsuk "Yes" (Connectivity > Additional configuration)
  10. Kattintsunk a "Continue" gombra
  11. Kattintsunk a "Apply immediately" gombra
  12. Kattintsunk a "Modify DB instance" gombra
  13. Várd meg, amíg a módosítás végrehajtódik

Kapcsoldás az adatbázishoz

Többféle programot hasznélhatunk az adatbázis kezelésére, de most a Beekeeper-t fogjuk használni. Innen tudod letölteni: Beekeeper

  1. Telepítsd a Beekeeper-t
  2. Nyisd meg a programot
  3. Kattints a "New Connection" gombra
  4. Kapcsolat típusa: MariaDB
  5. Töltsd ki a következő mezőket:
    • Connection name: AWS RDS
    • Hostname: az RDS adatbázisunk endpoint-je (ezt megtalálod az RDS konzolban)
    • Port: 3306
    • Username: adatgazda
    • Password: a korábban generált jelszó
  6. Kattints a "Test" gombra, hogy ellenőrizd a kapcsolatot
  7. Ha minden rendben van, kattints a "Save" gombra
  8. Csatlakozz az adatbázishoz

Adatbázis létrehozása

  1. Nyiss egy új lekérzező (Query) fület
  2. Futtasd le a következő SQL parancsot:
CREATE DATABASE cikkek
CHARACTER SET utf8
COLLATE utf8_hungarian_ci;

USE cikkek;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    userId INT,
    title VARCHAR(255) NOT NULL,
    content TEXT,
    FOREIGN KEY (userId) REFERENCES users(id)
);

Alkalmazás helyi futtatása

  1. Klónozd le a projektet
  2. Telepítsd a szükséges csomagokat: npm install
  3. Hozz létre egy .env fájlt a projekt gyökérkönyvtárában a következő tartalommal:
# .env file
DB_USER="adatgazda"
DB_PASSWORD={RDS jelszava}
DB_SERVER={RDS endpoint}
DB_NAME="cikkek"
DB_PORT="3306"
  1. Indítsd el az alkalmazást: npm start
  2. Nyisd meg a böngészőt, és látogasd meg a http://localhost:8080 címet

Alkalmazás futtatása Elastic Beanstalk segítségével

EC2 instance profile létrehozása

Elastic Beanstalk környezet létrehozásához szükségünk lesz egy EC2 instance profile-ra, amely engedélyezi az EC2 példányoknak a megfelelő hozzáférését.

  1. Lépjünk be az AWS konzolba
  2. Keresőbe írjuk be az IAM szolgáltatást
  3. A bal oldali menüben kattintsunk az "Roles" menüpontra
  4. A Trusted entity type lehetőségek közül válasszuk ki az AWS service opciót
  5. A Choose a use case lehetőségek közül válasszuk ki az EC2 opciót
  6. Kattintsunk a "Next" gombra
  7. Adjuk hozzá a következő engedélyeket:
    • AWSElasticBeanstalkWebTier
    • AWSElasticBeanstalkWorkerTier
    • AWSElasticBeanstalkMulticontainerDocker
  8. Kattintsunk a "Next" gombra
  9. Role name: webalkalmazas-role
  10. Kattintsunk a "Create role" gombra

Elastic Beanstalk környezet létrehozása

  1. Lépjünk be az AWS konzolba
  2. Keresőbe írjuk be az Elastic Beanstalk szolgáltatást
  3. Kattintsunk a "Create environment" gombra
  4. Töltsük ki a kötelező mezőket
    • Application name: cikkek
    • Environment name: cikkek-env
    • Domain (opcionális): cikkek
    • Platform: Node.js
    • Platform branch: Node.js 20
    • Application code: Sample application
    • Presets: Single instance
  5. Kattintsunk a "Next" gombra
  6. Create and use new service role
    • Service role name: cikkek-role
  7. EC2 key pair: Create new key pair
    • Key pair name: cikkek-key
  8. EC2 instance profile:
    • Instance profile name: webalkalmazas-role
  9. Kattintsunk a "Next" gombra
  10. Kattintsunk a "Skip to review" gombra
  11. Kattintsunk a "Submit" gombra

Ha létrejött a példa alkalmazás, adjuk hozzá az alkalmazás számára szükséges adatbázis hozzásférési paramétereket

Adatbázis hozzáférési paraméterek hozzáadása Elastic Beanstalk környezethez

  1. Lépjünk be az AWS konzolba
  2. Keresőbe írjuk be az Elastic Beanstalk szolgáltatást
  3. Kattintsunk a "cikkek-env" környezetre
  4. A bal oldali menüben kattintsunk a "Configuration" menüpontra
  5. "Updates, monitoring, and logging" részben kattintsunk a "Edit" gombra
  6. Keressük meg az "Environment properties" részt és kattintsunk az "Add environment property" gombra
  7. Adjuk hozzá a következő környezeti változókat
Név Érték
DB_USER adatgazda
DB_PASSWORD {jelszó amit az adatbázis felhasználóhoz megadtál}
DB_SERVER {RDS endpoint}
DB_NAME cikkek
DB_PORT 3306
  1. Kattintsunk a "Apply" gombra

Pár perc múlva életbe lépnek a változtatások.

CodePipeline konfigurálása a folyamatos üzembehelyezéshez

Végül CodePipeline segítségével töltsd fel a saját alkalmazásodat:

  1. Keresőbe írjuk be a CodePipeline szolgáltatást
  2. Kattintsunk a "Create pipeline" gombra
  3. Töltsük ki a kötelező mezőket
    • Pipeline name: cikkek-pipeline
    • Pipeline type: V1
    • Execution mode: Suspended
    • Service role: New service role
    • Role name: cikkek-pipeline-role
  4. Kattintsunk a "Next" gombra
  5. Source provider: GitHub (Version 2)
    • Repository: {GitHub repository link}
    • Branch: main
  6. Kattintsunk a "Next" gombra
  7. Build provider: Skip build stage
  8. Deployment provider: Elastic Beanstalk
    • Application name: cikkek
    • Environment name: cikkek-env
  9. Kattintsunk a "Create pipeline" gombra

Amikor elkészült a pipeline, a GitHub repository-ba feltöltött változások automatikusan frissítik az alkalmazást az Elastic Beanstalk környezetben.

Pár perc múlva a http://cikkek.eu-central-1.elasticbeanstalk.com/ címen elérhető lesz az alkalmazás.