Skip to content

hodu26/cloudPJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์ตœ์ข… ํ”„๋กœ์ ํŠธ

์ด ์ €์žฅ์†Œ๋Š” AWS ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•œ ์ˆ˜๊ฐ•์‹ ์ฒญ ํ”Œ๋žซํผ์˜ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. S3, CloudFront, DocumentDB, Lambda, SQS๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™•์žฅ์„ฑ, ๊ฐ€์šฉ์„ฑ ๋ฐ ๋น„์šฉ ํšจ์œจ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉด์„œ๋„ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ณ  ์ตœ์ ํ™”๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

โญ ์ฃผ์š” ๊ธฐ๋Šฅ

โœจ ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ์ˆ˜๊ฐ•์‹ ์ฒญ ์‹œ์Šคํ…œ:
    • ํ•™์ƒ๋“ค์ด ๊ฐ•์˜๋ฅผ ์กฐํšŒํ•˜๊ณ , ์ˆ˜๊ฐ•์‹ ์ฒญ ๋ฐ ์ทจ์†Œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ๊ณผ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณ ๋ คํ•œ ์„ค๊ณ„.
  • ์‚ฌ์šฉ์ž ์ธ์ฆ:
    • ํ•ด์‹œ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ JWT๋ฅผ ์‚ฌ์šฉํ•œ ์•ˆ์ „ํ•œ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ.

๐Ÿ—๏ธ ์ธํ”„๋ผ

  • DocumentDB:
    • MongoDB ํ˜ธํ™˜์„ฑ๊ณผ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์˜ ํŽธ๋ฆฌํ•จ์„ ๊ณ ๋ คํ•œ ์„ ํƒ.
    • ๋ฉ€ํ‹ฐ AZ ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ๋‚ฎ์€ ๋Œ€๊ธฐ์‹œ๊ฐ„์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ตœ์ ํ™”.
  • S3 + CloudFront:
    • S3๋Š” ์ •์  ํŒŒ์ผ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ.
    • CloudFront๋Š” ์ „ ์„ธ๊ณ„ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์—์„œ ์บ์‹ฑ์„ ํ†ตํ•ด ๋‚ฎ์€ ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ๋ณด์žฅ.
  • Lambda Functions:
    • ์‚ฌ์šฉ์ž ์ธ์ฆ, ์ˆ˜๊ฐ•์‹ ์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋“ฑ์˜ ๋ฐฑ์—”๋“œ ์ž‘์—…์„ ์ฒ˜๋ฆฌ.
    • ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ปค๋„ฅ์…˜ ํ’€๋ง ์ตœ์ ํ™”.
  • SQS:
    • FIFO ํ๋กœ ํŠธ๋ž˜ํ”ฝ ๊ธ‰์ฆ ์ƒํ™ฉ์—์„œ๋„ ์š”์ฒญ ์ˆœ์„œ๋ฅผ ๋ณด์žฅ.
  • CloudWatch Alarms:
    • ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌ์ž์—๊ฒŒ ๊ฒฝ๊ณ ๋ฅผ ๋ฐœ์†ก.

๐Ÿ› ๏ธ ์ฃผ์š” ๊ธฐ์ˆ  ์Šคํƒ

AWS Lambda Amazon S3 Amazon CloudFront DocumentDB React Node.js

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

Architecture Diagram ( CloudFront -> lambda-db.js (๋กœ๊ทธ์ธ, ๊ฐ•์˜ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ) -> SQS -> lambda-sqs.js (์ˆ˜๊ฐ•์‹ ์ฒญ ์ฒ˜๋ฆฌ) )

๐Ÿ—‚๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๐Ÿ“ฆ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ
โ”œโ”€โ”€ ๐Ÿ“‚ src
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components       # React ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ pages            # ํŽ˜์ด์ง€ ๊ตฌ์„ฑ
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ utils            # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ api              # API ํ˜ธ์ถœ ๋ชจ๋“ˆ
โ”œโ”€โ”€ ๐Ÿ“‚ public               # ์ •์  ํŒŒ์ผ
โ”œโ”€โ”€ ๐Ÿ“œ buildspec.yaml       # Code Pipeline ๋ฐฐํฌ ํŒŒ์ผ
โ”œโ”€โ”€ ๐Ÿ“œ README.md            # ํ”„๋กœ์ ํŠธ ์„ค๋ช…์„œ
|
โ”œโ”€โ”€ ๐Ÿ“‚ lambda
|   โ”œโ”€โ”€ ๐Ÿ“‚ server.js                  # local-test์šฉ
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ index-db.js                # lambda - ๋ฐฑ์—”๋“œ 1
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ index-sqs.js               # lambda - ๋ฐฑ์—”๋“œ 
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ add_json_to_documents      # documentDB์— json ์‚ฝ์ž…ํ•˜๋Š” lambda
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ convert_to_json.py         # excel to json ๋ณ€ํ™˜

๐Ÿ“ฑ ์ฃผ์š” ํ™”๋ฉด

๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… (์„œ์šธ ๋ฆฌ์ „)

Login-Seoul

์ˆ˜๊ฐ•์‹ ์ฒญ ํŽ˜์ด์ง€ (๋ฒ„์ง€๋‹ˆ์•„ ๋ฆฌ์ „)

Sugnag-Versinia

๐Ÿ”ง ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

  1. API Gateway: HTTP ์š”์ฒญ์„ ์ ์ ˆํ•œ Lambda ํ•จ์ˆ˜๋กœ ๋ผ์šฐํŒ….
  2. Lambda Functions: CRUD ์ž‘์—… ์ˆ˜ํ–‰ ๋ฐ DocumentDB์™€ ํ†ต์‹ .
  3. SQS: ์ˆ˜๊ฐ•์‹ ์ฒญ ์š”์ฒญ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ.
  4. DocumentDB: ์‚ฌ์šฉ์ž ๋ฐ ๊ฐ•์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ.
  5. S3 + CloudFront:
    • S3๋Š” React ํ”„๋ก ํŠธ์—”๋“œ์™€ ์ •์  ํŒŒ์ผ์„ ์ €์žฅ.
    • CloudFront๋Š” ์ „ ์„ธ๊ณ„ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ œ๊ณต.
  6. CloudWatch: ์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ, ์˜ค๋ฅ˜ ๋ฐ ๋กœ๊ทธ๋ฅผ ์ถ”์ ํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ง€์›.

๐Ÿค” DocumentDB์™€ S3 + CloudFront ์„ ํƒ ์ด์œ 

DocumentDB

  • ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค: ๋ฐฑ์—…, ์Šค์ผ€์ผ๋ง ๋ฐ ํŒจ์น˜ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜์—ฌ ์šด์˜ ๋ถ€๋‹ด ๊ฐ์†Œ.
  • MongoDB ํ˜ธํ™˜์„ฑ: ๊ธฐ์กด MongoDB ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ.
  • ๊ณ ๊ฐ€์šฉ์„ฑ: ๋ฉ€ํ‹ฐ AZ ์ง€์›์œผ๋กœ ๋‹ค์šดํƒ€์ž„ ์ตœ์†Œํ™”.

S3 + CloudFront

  • ๋น„์šฉ ํšจ์œจ์„ฑ: S3๋Š” ์ €๋น„์šฉ ์ €์žฅ์†Œ์ด๋ฉฐ, CloudFront๋Š” ์บ์‹œ๋œ ์‘๋‹ต์œผ๋กœ ๋Œ€์—ญํญ ๋น„์šฉ ์ ˆ๊ฐ.
  • ๊ธ€๋กœ๋ฒŒ ๊ฐ€์šฉ์„ฑ: CloudFront์˜ ์—ฃ์ง€ ๋กœ์ผ€์ด์…˜์€ ์ „ ์„ธ๊ณ„์—์„œ ๋‚ฎ์€ ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ๋ณด์žฅ.
  • ๋ฆฌ์ „ ์ด์ค‘ํ™”: CloudFront๋ฅผ ํ†ตํ•œ ์„œ์šธ/๋ฒ„์ง€๋‹ˆ์•„ ๋ฆฌ์ „ ์ด์ค‘ํ™”.
  • ํ™•์žฅ์„ฑ: ์ˆ˜๋™ ๊ฐœ์ž… ์—†์ด๋„ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ.

โš™๏ธ ์„ค์ • ๋ฐฉ๋ฒ•

์‚ฌ์ „ ์ค€๋น„

  • AWS CLI ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ.
  • Node.js (v20+) ์„ค์น˜.
  • S3, CloudFront, Lambda, DocumentDB ๋“ฑ AWS ์„œ๋น„์Šค ์ ‘๊ทผ ๊ถŒํ•œ.

๋ฐฐํฌ ๋‹จ๊ณ„

๋กœ์ปฌ

  1. ํ”„๋ก ํŠธ์—”๋“œ ์‹คํ–‰:

    • React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰:
      npm install
      npm start
  2. ๋ฐฑ์—”๋“œ ์‹คํ–‰:

    • Lambda ํ•จ์ˆ˜๋ฅผ ํŒจํ‚ค์ง•ํ•˜๊ณ  localstack, mongoDB์—ฐ๊ฒฐ.
    • express.js๋ฅผ ํ†ตํ•ด server.js ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰
      npm install
      node server.js
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”:

    • Mongo Compass๋‚˜ mongoimport๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ๊ฐ•์˜ ๋ฐ์ดํ„ฐ๋ฅผ DocumentDB์— ์ž…๋ ฅ:
      mongoimport --uri <documentdb-uri> --collection courses --file courses.json --jsonArray

AWS

  1. ํ”„๋ก ํŠธ์—”๋“œ ์ž๋™ ๋ฐฐํฌ:

    • AWS Code Pipeline ์‚ฌ์šฉ
    • React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ:
      npm install
      npm run build
    • ๋นŒ๋“œ ํด๋”๋ฅผ S3 ๋ฒ„ํ‚ท์— ๋™๊ธฐํ™”:
      aws s3 sync build/ s3://<your-bucket-name> --delete
    • CloudFront๋ฅผ S3 ๋ฒ„ํ‚ท์„ ์›๋ณธ์œผ๋กœ ์„ค์ •.
  2. ๋ฐฑ์—”๋“œ ๋ฐฐํฌ:

    • Lambda ํ•จ์ˆ˜๋ฅผ ํŒจํ‚ค์ง•ํ•˜๊ณ  AWS Lambda์— ์—…๋กœ๋“œ.
    • Lambda๋ฅผ API Gateway์™€ ์—ฐ๊ฒฐ.
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”:

    • add_json_to_documents lambda ๋ฐฐํฌ๋ฅผ ์ดˆ๊ธฐ ๊ฐ•์˜ ๋ฐ์ดํ„ฐ๋ฅผ DocumentDB์— ์ž…๋ ฅ.
  4. SQS ๊ตฌ์„ฑ:

    • SQS FIFO ํ ์ƒ์„ฑ.
    • Lambda๊ฐ€ ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค์ •.
  5. ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค์ •:

    • CloudWatch ๊ฒฝ๋ณด๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์ถ”์ :
      • API Gateway ์š”์ฒญ ์ˆ˜.

      • SQS ๋ฉ”์‹œ์ง€ ๋Œ€๊ธฐ์—ด ๊ธธ์ด.

      • DocumentDB ์—ฐ๊ฒฐ ํ™œ์šฉ๋ฅ .

      • ๋“ฑ๋“ฑ

        CloudWatch ๋ชจ๋‹ˆํ„ฐ๋ง

๐Ÿงช ํ…Œ์ŠคํŠธ (์˜ˆ์ •)

  • Apache JMeter ๋˜๋Š” Artillery์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๊ณ ํŠธ๋ž˜ํ”ฝ ์‹œ๋ฎฌ๋ ˆ์ด์…˜.
  • CloudWatch ๋ฉ”ํŠธ๋ฆญ์—์„œ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ๋ชจ๋‹ˆํ„ฐ๋ง:
    • ์ง€์—ฐ ์‹œ๊ฐ„.
    • ์˜ค๋ฅ˜์œจ.
    • ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors