์ด ์ ์ฅ์๋ AWS ์๋น์ค๋ฅผ ํ์ฉํ ์๊ฐ์ ์ฒญ ํ๋ซํผ์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์์คํ ๊ตฌํ ๋ด์ฉ์ ๋ด๊ณ ์์ต๋๋ค. S3, CloudFront, DocumentDB, Lambda, SQS๋ฅผ ํ์ฉํ์ฌ ํ์ฅ์ฑ, ๊ฐ์ฉ์ฑ ๋ฐ ๋น์ฉ ํจ์จ์ฑ์ ๋ณด์ฅํ๋ฉด์๋ ๋ณด์์ ์ ์งํ๊ณ ์ต์ ํ๋ ์์ ์ ์ํํฉ๋๋ค.
- ์๊ฐ์ ์ฒญ ์์คํ
:
- ํ์๋ค์ด ๊ฐ์๋ฅผ ์กฐํํ๊ณ , ์๊ฐ์ ์ฒญ ๋ฐ ์ทจ์๋ฅผ ํ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ํธ๋ํฝ๊ณผ ์ค์๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๊ณ ๋ คํ ์ค๊ณ.
- ์ฌ์ฉ์ ์ธ์ฆ:
- ํด์๋ ๋น๋ฐ๋ฒํธ์ JWT๋ฅผ ์ฌ์ฉํ ์์ ํ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ.
- DocumentDB:
- MongoDB ํธํ์ฑ๊ณผ ๊ด๋ฆฌํ ์๋น์ค์ ํธ๋ฆฌํจ์ ๊ณ ๋ คํ ์ ํ.
- ๋ฉํฐ AZ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ๋ฎ์ ๋๊ธฐ์๊ฐ์ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ต์ ํ.
- S3 + CloudFront:
- S3๋ ์ ์ ํ์ผ ์ ์ฅ์๋ก ์ฌ์ฉ.
- CloudFront๋ ์ ์ธ๊ณ ์ฃ์ง ๋ก์ผ์ด์ ์์ ์บ์ฑ์ ํตํด ๋ฎ์ ๋๊ธฐ์๊ฐ์ ๋ณด์ฅ.
- Lambda Functions:
- ์ฌ์ฉ์ ์ธ์ฆ, ์๊ฐ์ ์ฒญ ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์กฐํ ๋ฑ์ ๋ฐฑ์๋ ์์ ์ ์ฒ๋ฆฌ.
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธ์์ฉ์ ์ํ ์ปค๋ฅ์ ํ๋ง ์ต์ ํ.
- SQS:
- FIFO ํ๋ก ํธ๋ํฝ ๊ธ์ฆ ์ํฉ์์๋ ์์ฒญ ์์๋ฅผ ๋ณด์ฅ.
- CloudWatch Alarms:
- ์์คํ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌ์์๊ฒ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์ก.
( 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 ๋ณํ
- API Gateway: HTTP ์์ฒญ์ ์ ์ ํ Lambda ํจ์๋ก ๋ผ์ฐํ .
- Lambda Functions: CRUD ์์ ์ํ ๋ฐ DocumentDB์ ํต์ .
- SQS: ์๊ฐ์ ์ฒญ ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ.
- DocumentDB: ์ฌ์ฉ์ ๋ฐ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ฅ.
- S3 + CloudFront:
- S3๋ React ํ๋ก ํธ์๋์ ์ ์ ํ์ผ์ ์ ์ฅ.
- CloudFront๋ ์ ์ธ๊ณ ์ฃ์ง ๋ก์ผ์ด์ ์์ ์ฝํ ์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ณต.
- CloudWatch: ์์คํ ๋ฉํธ๋ฆญ, ์ค๋ฅ ๋ฐ ๋ก๊ทธ๋ฅผ ์ถ์ ํ์ฌ ๋ฌธ์ ํด๊ฒฐ ์ง์.
- ๊ด๋ฆฌํ ์๋น์ค: ๋ฐฑ์ , ์ค์ผ์ผ๋ง ๋ฐ ํจ์น ์์ ์ ์๋ํํ์ฌ ์ด์ ๋ถ๋ด ๊ฐ์.
- MongoDB ํธํ์ฑ: ๊ธฐ์กด MongoDB ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ์ํํ ํตํฉ.
- ๊ณ ๊ฐ์ฉ์ฑ: ๋ฉํฐ AZ ์ง์์ผ๋ก ๋ค์ดํ์ ์ต์ํ.
- ๋น์ฉ ํจ์จ์ฑ: S3๋ ์ ๋น์ฉ ์ ์ฅ์์ด๋ฉฐ, CloudFront๋ ์บ์๋ ์๋ต์ผ๋ก ๋์ญํญ ๋น์ฉ ์ ๊ฐ.
- ๊ธ๋ก๋ฒ ๊ฐ์ฉ์ฑ: CloudFront์ ์ฃ์ง ๋ก์ผ์ด์ ์ ์ ์ธ๊ณ์์ ๋ฎ์ ๋๊ธฐ์๊ฐ์ ๋ณด์ฅ.
- ๋ฆฌ์ ์ด์คํ: CloudFront๋ฅผ ํตํ ์์ธ/๋ฒ์ง๋์ ๋ฆฌ์ ์ด์คํ.
- ํ์ฅ์ฑ: ์๋ ๊ฐ์ ์์ด๋ ๋๊ท๋ชจ ํธ๋ํฝ ์ฒ๋ฆฌ.
- AWS CLI ์ค์น ๋ฐ ๊ตฌ์ฑ.
- Node.js (v20+) ์ค์น.
- S3, CloudFront, Lambda, DocumentDB ๋ฑ AWS ์๋น์ค ์ ๊ทผ ๊ถํ.
-
ํ๋ก ํธ์๋ ์คํ:
- React ์ ํ๋ฆฌ์ผ์ด์
์คํ:
npm install npm start
- React ์ ํ๋ฆฌ์ผ์ด์
์คํ:
-
๋ฐฑ์๋ ์คํ:
- Lambda ํจ์๋ฅผ ํจํค์งํ๊ณ localstack, mongoDB์ฐ๊ฒฐ.
- express.js๋ฅผ ํตํด server.js ๊ตฌ์ฑ ๋ฐ ์คํ
npm install node server.js
-
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ธฐํ:
- Mongo Compass๋ mongoimport๋ฅผ ํตํด ์ด๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ DocumentDB์ ์
๋ ฅ:
mongoimport --uri <documentdb-uri> --collection courses --file courses.json --jsonArray
- Mongo Compass๋ mongoimport๋ฅผ ํตํด ์ด๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ DocumentDB์ ์
๋ ฅ:
-
ํ๋ก ํธ์๋ ์๋ ๋ฐฐํฌ:
- AWS Code Pipeline ์ฌ์ฉ
- React ์ ํ๋ฆฌ์ผ์ด์
๋น๋:
npm install npm run build
- ๋น๋ ํด๋๋ฅผ S3 ๋ฒํท์ ๋๊ธฐํ:
aws s3 sync build/ s3://<your-bucket-name> --delete
- CloudFront๋ฅผ S3 ๋ฒํท์ ์๋ณธ์ผ๋ก ์ค์ .
-
๋ฐฑ์๋ ๋ฐฐํฌ:
- Lambda ํจ์๋ฅผ ํจํค์งํ๊ณ AWS Lambda์ ์ ๋ก๋.
- Lambda๋ฅผ API Gateway์ ์ฐ๊ฒฐ.
-
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ธฐํ:
- add_json_to_documents lambda ๋ฐฐํฌ๋ฅผ ์ด๊ธฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ DocumentDB์ ์ ๋ ฅ.
-
SQS ๊ตฌ์ฑ:
- SQS FIFO ํ ์์ฑ.
- Lambda๊ฐ ํ์์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค์ .
-
๋ชจ๋ํฐ๋ง ์ค์ :
- Apache JMeter ๋๋ Artillery์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๊ณ ํธ๋ํฝ ์๋ฎฌ๋ ์ด์ .
- CloudWatch ๋ฉํธ๋ฆญ์์ ๋ค์ ํญ๋ชฉ์ ๋ชจ๋ํฐ๋ง:
- ์ง์ฐ ์๊ฐ.
- ์ค๋ฅ์จ.
- ๋ฆฌ์์ค ํ์ฉ๋.


