https://github.com/cloudsteak/trn-aws-webapp-nosql
AWS WebApp NoSQL hozzáféréssel
https://github.com/cloudsteak/trn-aws-webapp-nosql
Last synced: 10 months ago
JSON representation
AWS WebApp NoSQL hozzáféréssel
- Host: GitHub
- URL: https://github.com/cloudsteak/trn-aws-webapp-nosql
- Owner: cloudsteak
- License: mit
- Created: 2024-02-19T13:08:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-21T09:37:05.000Z (over 2 years ago)
- Last Synced: 2025-04-08T19:57:09.852Z (about 1 year ago)
- Language: JavaScript
- Size: 379 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AWS WebApp NoSQL hozzáféréssel
Az Amazon NoSQL adatbázis-szolgáltatásához az Amazon DynamoDB-t használhatjuk. Ebben a példában megmutatom, hogyan lehet létrehozni egy egyszerű webalkalmazást az Express.js és az EJS (Embedded JavaScript templating) használatával Node.js-ben, ami képes adatok olvasására és írására egy DynamoDB táblában.
## Tartalomjegyzék
- [Összetevők](#Összetevők)
- [DynamoDB tábla létrehozása](#DynamoDB-tábla-létrehozása)
- [IAM user létrehozása DynamoDB hozzáféréssel](#IAM-user-létrehozása-DynamoDB-hozzáféréssel)
- [Alkalmazás helyi futtatása](#Alkalmazás-helyi-futtatása)
- [Alkalmazás futtatása Elastic Beanstalk segítségével](#Alkalmazás-futtatása-Elastic-Beanstalk-segítségével)
- [Elastic Beanstalk környezet létrehozása](#Elastic-Beanstalk-környezet-létrehozása)
- [Adatbázis hozzáférési paraméterek hozzáadása Elastic Beanstalk környezethez](#Adatbázis-hozzáférési-paraméterek-hozzáadása-Elastic-Beanstalk-környezethez)
- [CodePipeline konfigurálása a folyamatos üzembehelyezéshez](#CodePipeline-konfigurálása-a-folyamatos-üzembehelyezéshez)
- [JSON generálás](#JSON-generálás)
## Összetevők
- AWS Elastic Beanstalk
- AWS DynamoDB
## DynamoDB tábla létrehozása
1. Lépjünk be az AWS Management Console-ba, és keressük meg a DynamoDB szolgáltatást.
2. Kattintsunk az **Create table** gombra.
3. Adja meg a tábla nevét, és az elsődleges kulcsot (Partition key).
- Tábla neve: mentordata
- Partition key: id (String)
4. Kattintsunk a **Create table** gombra.
Pár perc múlva a tábla elkészül, és készen áll az adatok fogadására.
## IAM user létrehozása DynamoDB hozzáféréssel
1. Lépjünk be az AWS Management Console-ba, és keressük meg az IAM szolgáltatást.
2. Kattintsunk az **Add user** gombra.
3. Adja meg a felhasználó nevét.
4. Kattintsunk a **Next** gombra.
5. Válasszuk ki a **Attach policies directly** lehetőséget, és keressük meg a **AmazonDynamoDBFullAccess** jogosultságot.
6. Kattintsunk a **Next** gombra.
7. Kattintsunk a **Create user** gombra.
8. Válasszuk ki a felhasználót, és kattintsunk a **Security credentials** fülre.
9. Válasszuk ki a a **Commant Line Interface (CLI)** lehetőséget.
10. Jelöljük be a **I understand the above recommendation and want to proceed to create an access key.** lehetőséget.
11. Kattintsunk a **Next** gombra.
12. Kattintsunk a **Create access key** gombra.
13. A generált hozzáférési kulcsokat mentse el, mert csak egyszer jelenik meg.
## 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
# .env file
AWS_ACCESS_KEY="{AWS access key}"
AWS_SECRET_KEY="{AWS secret key}"
AWS_REGION=eu-central-1
AWS_TABLE_NAME=mentordata
```
4. Indítsd el az alkalmazást: `npm start`
5. 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: mentordata
- Environment name: mentordata-env
- Domain (opcionális): mentordata
- 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: mentordata-role
7. EC2 key pair: Create new key pair
- Key pair name: mentordata-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 "mentordata-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 |
| -------------- | ---------------- |
| AWS_ACCESS_KEY | {AWS access key} |
| AWS_SECRET_KEY | {AWS secret key} |
| AWS_REGION | eu-central-1 |
| AWS_TABLE_NAME | mentordata |
8. 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: mentordata-pipeline
- Pipeline type: V1
- Execution mode: Suspended
- Service role: New service role
- Role name: mentordata-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: mentordata
- Environment name: mentordata-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://mentordata.eu-central-1.elasticbeanstalk.com/](http://mentordata.eu-central-1.elasticbeanstalk.com/) címen elérhető lesz az alkalmazás.
## JSON generálás
https://json-generator.com/
Séma:
```bash
[
'{{repeat(1, 1)}}',
{
kor: '{{integer(18, 75)}}',
nev: {
vezeteknev: '{{random("Nagy","Kovács","Horváth","Tóth","Szabó","Kiss","Molnár","Varga","Farkas","Pap")}}',
keresztnev: '{{random("Gergő","Petra","Balázs","Krisztián","Anikó","Márton","Zsófia","Bence","Dóra","Gábor",)}}'}
}
]
```