Recent Posts
Recent Comments
Archives
๋ฐ˜์‘ํ˜•
250x250
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-07 02:26
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

AWS DynamoDB ๊ฐœ๋… ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ ˆ์ฐจ(ํŒŒํ‹ฐ์…˜ ํ‚ค, ์ •๋ ฌ ํ‚ค ๊ฐœ๋…) ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Amazon Web Service

AWS DynamoDB ๊ฐœ๋… ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ ˆ์ฐจ(ํŒŒํ‹ฐ์…˜ ํ‚ค, ์ •๋ ฌ ํ‚ค ๊ฐœ๋…)

Tony Park 2022. 6. 24. 15:22
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“š ๋ชฉ์ฐจ

1.  AWS DynamoDB ๊ฐœ๋…
2.  AWS ๊ธฐ๋ณธ ์„ธํŒ…
3.  AWS DynamoDB ํ…Œ์ด๋ธ” ์ƒ์„ฑ

1.  AWS DynamoDB ๊ฐœ๋…

AWS DynamoDB๋Š” Key-Value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” AWS์˜ NoSQL ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. DynamoDB๋Š” ๊ทœ๋ชจ์™€ ์ƒ๊ด€์—†์ด ๋Œ€๋ถ€๋ถ„ 10ms ๋‚ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•  ๋งŒํผ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค๋ผ๋Š” ํฐ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, DB์˜ ์šฉ๋Ÿ‰์ด๋‚˜ ํŠธ๋ž˜ํ”ฝ์ด ๋Š˜์–ด๋‚˜๋ฉด AWS์—์„œ ์•Œ์•„์„œ ์Šค์ผ€์ผ๋ง ํ•ด์ฃผ๋ฉฐ, DB ๋ฐฑ์—…๋„ ์•Œ์•„์„œ ํ•ด์ค๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ์„ฑ๋Šฅ๊ณผ ์‚ฌ์šฉํ•œ ์šฉ๋Ÿ‰์— ๋Œ€ํ•ด์„œ๋งŒ ๊ณผ๊ธˆ์„ ๋ถ€๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ ์ตœ์ ํ™”์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

2.  AWS ๊ธฐ๋ณธ ์„ธํŒ…

DynamoDB ์ƒ์„ฑ์„ ์œ„ํ•ด AWS ํšŒ์›๊ฐ€์ž…๊ณผ ๋ฆฌ์ „ ๋ณ€๊ฒฝ๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ์„ธํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์„ธํŒ…์„ ๋งˆ์น˜์ง€ ์•Š์œผ์‹  ๋ถ„๋“ค์€ ์•„๋ž˜์˜ '๋” ๋ณด๊ธฐ'์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์‹œ์–ด ์ง„ํ–‰ํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

1)  ์„œ๋น„์Šค ๊ฐ€์ž…

๋จผ์ € AWS ํ™ˆํŽ˜์ด์ง€์— ๋ฐฉ๋ฌธํ•˜์…”์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด ์ตœ์ดˆ ๊ฐ€์ž…ํ•œ ์ด๋ฉ”์ผ ๊ณ„์ •์œผ๋กœ 1๋…„๊ฐ„ ๋ฌด๋ฃŒ ์ฒดํ—˜ํŒ(a.k.a., ํ”„๋ฆฌ ํ‹ฐ์–ด)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฌด๋ฃŒ์ธ ๋งŒํผ ์ €์‚ฌ์–‘ ์„œ๋น„์Šค ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํšŒ์›๊ฐ€์ž… ์‹œ ํ•ด์™ธ ๊ฒฐ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ ์šฉ์นด๋“œ ๋“ฑ๋ก์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์‹ ์šฉ์นด๋“œ์ธ์ง€ 100์›์„ ๊ฒฐ์ œํ–ˆ๋‹ค๊ฐ€ ๊ณง๋ฐ”๋กœ ์Šน์ธ ์ทจ์†Œ๋˜๋‹ˆ ์œ ํšจํ•œ ์‹ ์šฉ์นด๋“œ๋ฅผ ์ค€๋น„ํ•ด ์ฃผ์„ธ์š”.

AWS ํ™ˆํŽ˜์ด์ง€

2)  ์„œ๋น„์Šค ์ง€์—ญ ๋ณ€๊ฒฝ

ํšŒ์›๊ฐ€์ž…๊นŒ์ง€ ์™„๋ฃŒํ•˜์…จ๋‹ค๋ฉด ํ˜„์žฌ PC๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ์ง€์—ญ๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ์„œ๋น„์Šค ์ง€์—ญ(Region)์„ ์„ ํƒํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ถ”ํ›„์— ์„œ๋น„์Šค ์š”๊ธˆ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์ง€๋งŒ, ์„œ๋น„์Šค ์ง€์—ญ๋งˆ๋‹ค ๊ณผ๊ธˆ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด, AWS ํ™ˆํŽ˜์ด์ง€ ์šฐ์ธก ์ƒ๋‹จ์— ์ง€์—ญ ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋ฉด ์„œ๋น„์Šค ์ง€์—ญ์„ ๋ณ€๊ฒฝํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ•œ๋ฏผ๊ตญ์— ๊ฑฐ์ฃผํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด Seoul์„ ์„ ํƒํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ง€์—ญ ๋ณ€๊ฒฝ

3.  AWS DynamoDB ํ…Œ์ด๋ธ” ์ƒ์„ฑ

1) DynamoDB ์ฝ˜์†” ์ ‘๊ทผ

AWS ๊ฒ€์ƒ‰์ฐฝ์— DynamoDB๋ฅผ ๊ฒ€์ƒ‰ํ•˜์…”์„œ ์ฝ˜์†”์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1).

๊ทธ๋ฆผ 1. DynamoDB ์ฝ˜์†” ์ ‘๊ทผ

2) ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 2).

๊ทธ๋ฆผ 2. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

3) ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์˜ต์…˜ ์„ค์ •

ํ…Œ์ด๋ธ” ์ด๋ฆ„, ํŒŒํ‹ฐ์…˜ ํ‚ค, ์ •๋ ฌ ํ‚ค๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 3). ๊ธฐ๋ณธ ํ‚ค(Primary Key)์ธ ํŒŒํ‹ฐ์…˜ ํ‚ค(Partition Key)๋Š” ๋ฐ˜๋“œ์‹œ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ ์ •๋ ฌ ํ‚ค(Sort Key)๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 3. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์˜ต์…˜: ํ…Œ์ด๋ธ” ์ด๋ฆ„, ํŒŒํ‹ฐ์…˜ ๋ฐ ์ •๋ ฌ ํ‚ค

  • ํŒŒํ‹ฐ์…˜ ํ‚ค(Partition Key)
    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„ํ•œ ์žฅ์น˜๋กœ์จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฒน์น˜๊ฑฐ๋‚˜ null, undefined ๊ฐ’ ํ• ๋‹น ๋ถˆ๊ฐ€(e.g., ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ)
    • Hash ์†์„ฑ์œผ๋กœ Hash Key๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ '๊ฐ™๋‹ค' ํ˜น์€ '๊ฐ™์ง€ ์•Š๋‹ค'์™€ ๊ฐ™์€ ์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅ
    • ๊ธฐ๋ณธ ํ‚ค, Primary Key๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
  • ์ •๋ ฌ ํ‚ค(Sort Key)
    • Range ์†์„ฑ์œผ๋กœ Sort Key๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ๋น„๊ต๋Œ€์†Œ ํ˜น์€ '~๋กœ ์‹œ์ž‘ํ•˜๋Š”'๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅ
    • DynamoDB์—์„œ ๋ฐ์ดํ„ฐ ์ •๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ

๋‚˜๋จธ์ง€๋Š” ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ๋‘๊ณ  ๋งจ ์•„๋ž˜์— ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ์ง€๋‚˜๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ 4์™€ ๊ฐ™์ด Table์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 4. ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์™„๋ฃŒ

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” AWS Lambda๋ฅผ ํ™œ์šฉํ•˜์—ฌ DynamoDB ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

https://heytech.tistory.com/420

 

AWS Lambda ๊ธฐ๋ฐ˜ DyanamoDB ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์กฐํšŒ ๋ฐฉ๋ฒ•

๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ ๋ณธ ํŠœํ† ๋ฆฌ์–ผ์„ ์ž˜ ๋”ฐ๋ผ์˜ค์‹œ๋ฉด AWS Lambda์—์„œ DynamoDB ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๊ฐ€์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ AWS DynamoDB AWS Lam

heytech.tistory.com

๐Ÿ“Œ ์ฐธ๊ณ ํ•  ๋งŒํ•œ ํฌ์ŠคํŒ…

1. AWS ๊ธฐ๋ฐ˜ ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•
     1)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
     2)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
     3)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
     4)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
     5)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
     6)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
     7)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
     8)  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
     9) ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…  

2.  AWS ํ™œ์šฉ ํฌ์ŠคํŒ…
    1) AWS Lambda์™€ Docker๋ฅผ ํ™œ์šฉํ•œ ํŒŒ์ผ ์—…๋กœ๋“œ/์ฝ๊ธฐ ์‹œ์Šคํ…œ ๊ตฌํ˜„
    2) AWS Lambda์—์„œ AWS S3 ํŒŒ์ผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•
    3) AWS DynamoDB ๊ฐœ๋… ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ ˆ์ฐจ(ํŒŒํ‹ฐ์…˜ ํ‚ค, ์ •๋ ฌ ํ‚ค ๊ฐœ๋…)
    4) AWS Lambda๋ฅผ ํ™œ์šฉํ•œ DyanamoDB ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์กฐํšŒ ๋ฐฉ๋ฒ•



ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ณด์™„ํ•  ์ ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”! 

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ๊ฑด๊ฐ•ํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :) 

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

728x90
๋ฐ˜์‘ํ˜•
Comments