Hey Tech
AWS DynamoDB ๊ฐ๋ ๋ฐ ํ ์ด๋ธ ์์ฑ ์ ์ฐจ(ํํฐ์ ํค, ์ ๋ ฌ ํค ๊ฐ๋ ) ๋ณธ๋ฌธ
AWS DynamoDB ๊ฐ๋ ๋ฐ ํ ์ด๋ธ ์์ฑ ์ ์ฐจ(ํํฐ์ ํค, ์ ๋ ฌ ํค ๊ฐ๋ )
Tony Park 2022. 6. 24. 15:22๐ ๋ชฉ์ฐจ
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์์ ๊ฒฐ์ ํ๋ค๊ฐ ๊ณง๋ฐ๋ก ์น์ธ ์ทจ์๋๋ ์ ํจํ ์ ์ฉ์นด๋๋ฅผ ์ค๋นํด ์ฃผ์ธ์.
2) ์๋น์ค ์ง์ญ ๋ณ๊ฒฝ
ํ์๊ฐ์ ๊น์ง ์๋ฃํ์ จ๋ค๋ฉด ํ์ฌ PC๋ฅผ ์ฌ์ฉ ์ค์ธ ์ง์ญ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ ์๋ ์๋น์ค ์ง์ญ(Region)์ ์ ํํ์ ์ผ ํฉ๋๋ค. ์ถํ์ ์๋น์ค ์๊ธ์ ๋ํด ์ดํด๋ณด๊ฒ ์ง๋ง, ์๋น์ค ์ง์ญ๋ง๋ค ๊ณผ๊ธ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋์ ๊ฐ์ด, AWS ํํ์ด์ง ์ฐ์ธก ์๋จ์ ์ง์ญ ์ด๋ฆ์ ํด๋ฆญํ๋ฉด ์๋น์ค ์ง์ญ์ ๋ณ๊ฒฝํ์ค ์ ์์ต๋๋ค. ๋ํ๋ฏผ๊ตญ์ ๊ฑฐ์ฃผํ๊ณ ๊ณ์๋ค๋ฉด Seoul์ ์ ํํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
3. AWS DynamoDB ํ ์ด๋ธ ์์ฑ
1) DynamoDB ์ฝ์ ์ ๊ทผ
AWS ๊ฒ์์ฐฝ์ DynamoDB๋ฅผ ๊ฒ์ํ์ ์ ์ฝ์์ ์ ๊ทผํฉ๋๋ค(๊ทธ๋ฆผ 1).
2) ํ ์ด๋ธ ์์ฑ ๋ฒํผ ํด๋ฆญ
ํ ์ด๋ธ ์์ฑ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค(๊ทธ๋ฆผ 2).
3) ํ ์ด๋ธ ์์ฑ ์ต์ ์ค์
ํ ์ด๋ธ ์ด๋ฆ, ํํฐ์ ํค, ์ ๋ ฌ ํค๋ฅผ ์ ๋ ฅํฉ๋๋ค(๊ทธ๋ฆผ 3). ๊ธฐ๋ณธ ํค(Primary Key)์ธ ํํฐ์ ํค(Partition Key)๋ ๋ฐ๋์ ์ค์ ํด์ผ ํ๋ฉฐ ์ ๋ ฌ ํค(Sort Key)๋ ์ ํ ์ฌํญ์ ๋๋ค. ๊ฐ๊ฐ์ ๋ํด ์์๋ด ๋๋ค.
- ํํฐ์
ํค(Partition Key)
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ํ ์ฅ์น๋ก์จ ๋ฐ์ดํฐ๊ฐ ๊ฒน์น๊ฑฐ๋ null, undefined ๊ฐ ํ ๋น ๋ถ๊ฐ(e.g., ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ)
- Hash ์์ฑ์ผ๋ก Hash Key๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ '๊ฐ๋ค' ํน์ '๊ฐ์ง ์๋ค'์ ๊ฐ์ ์ฐ์ฐ๋ง ๊ฐ๋ฅ
- ๊ธฐ๋ณธ ํค, Primary Key๋ผ๊ณ ๋ ๋ถ๋ฆ
- ์ ๋ ฌ ํค(Sort Key)
- Range ์์ฑ์ผ๋ก Sort Key๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ๋น๊ต๋์ ํน์ '~๋ก ์์ํ๋'๊ณผ ๊ฐ์ ์ฐ์ฐ๋ง ๊ฐ๋ฅ
- DynamoDB์์ ๋ฐ์ดํฐ ์ ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ
๋๋จธ์ง๋ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ๋๊ณ ๋งจ ์๋์ ํ ์ด๋ธ์ ์์ฑํ๊ฒ ์ต๋๋ค. ์๊ฐ์ด ์กฐ๊ธ ์ง๋๋ฉด ์๋์ ๊ทธ๋ฆผ 4์ ๊ฐ์ด Table์ด ์์ฑ๋ฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ AWS Lambda๋ฅผ ํ์ฉํ์ฌ DynamoDB ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ณ ์กฐํํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค.
https://heytech.tistory.com/420
๐ ์ฐธ๊ณ ํ ๋งํ ํฌ์คํ
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 ํ ์ด๋ธ ๋ฐ์ดํฐ ์ฝ์ /์กฐํ ๋ฐฉ๋ฒ
ํฌ์คํ ๋ด์ฉ์ ์ค๋ฅ๊ฐ ์๊ฑฐ๋ ๋ณด์ํ ์ ์ด ์๋ค๋ฉด ์๋์ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์!
๊ทธ๋ผ ์ค๋๋ ์ฆ๊ฒ๊ณ ๊ฑด๊ฐํ ํ๋ฃจ ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค :)
๊ณ ๋ง์ต๋๋ค๐
'SW ๊ฐ๋ฐ > Amazon Web Service' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS ECR] Docker Push EOF ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2024.02.04 |
---|---|
AWS Lambda๋ฅผ ํ์ฉํ DyanamoDB ํ ์ด๋ธ ๋ฐ์ดํฐ ์ฝ์ /์กฐํ ๋ฐฉ๋ฒ (0) | 2022.06.24 |
AWS Lambda์ Docker๋ฅผ ํ์ฉํ ํ์ผ ์ ๋ก๋/์ฝ๊ธฐ ์์คํ ๊ตฌํ (6) | 2022.06.20 |
AWS Lambda์์ AWS S3 ํ์ผ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ (0) | 2022.06.19 |
ํ์ผ ์ ๋ก๋ ์น ํ์ด์ง ๊ตฌ์ถ: (9) AWS S3 ๊ธฐ๋ฐ ์น ํธ์คํ (0) | 2022.06.10 |