์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์์ฐ์ด์ฒ๋ฆฌ
- ์ธ๊ณต์ง๋ฅ
- sap
- ํ๋ธ๋ฃจ
- react
- Git
- DFS
- ๋ฅ๋ฌ๋
- tableau
- AI
- abap
- ๋น ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ ๋ถ์
- ๋ฐฑ์ค
- github
- erp
- ์ฝ๋ฉํ ์คํธ
- nlp
- ํ ์คํธ๋ถ์
- ๊นํ๋ธ
- ์๋ง์กด์น์๋น์ค
- ํ๋ธ๋ก
- ์ฝํ
- ๋ฐ์ดํฐ๋ถ์
- AWS
- ๋ฆฌ์กํธ
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ ์คํธ๋ง์ด๋
- ํ์ด์ฌ
- Today
- Total
Hey Tech
ํ์ผ ์ ๋ก๋ ์น ํ์ด์ง ๊ตฌ์ถ: (9) AWS S3 ๊ธฐ๋ฐ ์น ํธ์คํ ๋ณธ๋ฌธ
ํ์ผ ์ ๋ก๋ ์น ํ์ด์ง ๊ตฌ์ถ: (9) AWS S3 ๊ธฐ๋ฐ ์น ํธ์คํ
Tony Park (ํ ๋) 2022. 6. 10. 14:37๐ ์๋ฆฌ์ฆ ํฌ์คํ
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 ๊ธฐ๋ฐ ์น ํธ์คํ
๐จ๐ป ๋ค์ด๊ฐ๋ฉฐ
๋ณธ ํฌ์คํ ์์๋ AWS S3๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ ์น ํธ์คํ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ์ง๊ธ๊น์ง ํ๋ก ํธ์๋๋ localhost์์ ๊ตฌ๋ํ๊ธฐ ๋๋ฌธ์, ๋ก์ปฌ PC๊ฐ ์๋ ์ธ๋ถ์์ URL์ ํ๊ณ ์ ๊ทผํ ์ ์์์ต๋๋ค. ์ด๋ฒ ํํ ๋ฆฌ์ผ์ ๋ง์น์๋ฉด ์ธ์ , ์ด๋์๋ ๋ฒํท ์น ์ฌ์ดํธ ์๋ํฌ์ธํธ(i.e., URL)๋ฅผ ํตํด ํ์ผ ์ ๋ก๋ ์น ํ์ด์ง์ ์ ์ํ์ฌ ์๋ฒ์ ํ์ผ์ ์ ๋ก๋ํ์ค ์ ์์ต๋๋ค.
๐ ๋ชฉ์ฐจ
1. S3 ๋ฒํท ์์ฑ
2. S3 ๋ฒํท ์ ์ฑ ํธ์ง
3. S3 ์์ฑ ํธ์ง
4. ๋ฐฐํฌ ํ์ผ ์์ฑ
5. ๋ฐฐํฌ ํ์ผ ์ ๋ก๋
6. ์น ๊ตฌ๋ ํ ์คํธ
1. S3 ๋ฒํท ์์ฑ
1) S3 ์ฝ์ ์ ๊ทผ
- S3 ๊ฒ์ ํ S3 ์ฝ์ ์ ๊ทผ(๊ทธ๋ฆผ 1)
2) ๋ฒํท ์์ฑ
- "๋ฒํท ๋ง๋ค๊ธฐ" ํด๋ฆญ(๊ทธ๋ฆผ 2)
3) ๋ฒํท ๋ค์ด๋ฐ
- ๋ฒํท ์ด๋ฆ ์ค์ (๊ทธ๋ฆผ 3)
4) ํผ๋ธ๋ฆญ ์์ธ์ค ์ฐจ๋จ ํด์
- ํ ์คํธ ๋ชฉ์ ์ด๋ฏ๋ก '๋ชจ๋ ํผ๋ธ๋ฆญ ์ก์ธ์ค ์ฐจ๋จ' ์ฒดํฌ ํด์ (๊ทธ๋ฆผ 4)
5) ๋ฒํท ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ์ํธํ
- ๋ฒํท ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ์๋ฒ ์ธก ์ํธํ ๋ชจ๋ 'ํ์ฑํ' ์ ํ(๊ทธ๋ฆผ 5)
- ์ฐ์ธก ํ๋จ '๋ฒํท ๋ง๋ค๊ธฐ' ๋ฒํผ ํด๋ฆญ
2. S3 ๋ฒํท ์ ์ฑ ํธ์ง
1) ๋ฒํท ์ ๊ทผ
- ๋ฐฉ๊ธ ์์ฑํ ๋ฒํท ์ ๊ทผ(๊ทธ๋ฆผ 6)
2) ๊ถํ ํธ์ง ์ฝ์ ์ ๊ทผ
- ๋ฒํท ๋ด ๋ฉ๋ด๋ฐ์์ ๊ถํ ํด๋ฆญ(๊ทธ๋ฆผ 7)
3) ๋ฒํท ์ ์ฑ ํธ์ง
- ๋ฒํท ์ ์ฑ 'ํธ์ง' ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 8)
4) ๋ฒํท ์ ์ฑ ์ ๋ ฅ
- ์๋์ ๋ฒํท ์ ์ฑ ๋ณต์ฌ ๋ฐ ๋ถ์ฌ๋ฃ๊ธฐ
- Resource์๋ ๋ณธ์ธ S3 ๋ฒํท ์ด๋ฆ ์ ๋ ฅ(๊ทธ๋ฆผ 9)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::๋ฒํท์ด๋ฆ/*"
}
]
}
3. S3 ์์ฑ ํธ์ง
1) ์์ฑ ํธ์ง ์ฝ์ ์ ๊ทผ
- ๋ฒํท ๋ฉ๋ด๋ฐ ๋ด ์์ฑ ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 10)
2) ์ ์ ์น ํธ์คํ ํธ์ง ์ฝ์ ์ ๊ทผ
- ์ ์ ์น ์ฌ์ดํธ ํธ์คํ ํธ์ง ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 11)
3) ์ ์ ์น ํธ์คํ ํธ์ง
- ์ ์ ์น ์ฌ์ดํธ ํธ์คํ ํ์ฑํ ์ฒดํฌ(๊ทธ๋ฆผ 12)
- ํธ์คํ ์ ํ: ์ ์ ์น ์ฌ์ดํธ ํธ์คํ
- ์ธ๋ฑ์ค ๋ฌธ์: index.html
- ์ค๋ฅ ๋ฌธ์: index.html(์๋)
4. ๋ฐฐํฌ ํ์ผ ์์ฑ
ํ๋ก ํธ์๋ ํ๋ก์ ํธ ํฐ๋ฏธ๋๋ก ๋์์์ ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฐฐํฌ ํ์ผ์ ์์ฑํฉ๋๋ค(๊ทธ๋ฆผ 13).
npm run build
5. ๋ฐฐํฌ ํ์ผ ์ ๋ก๋
1) S3 ๊ฐ์ฒด ์ฝ์ ์ ๊ทผ
- ํ๋ก ํธ์๋ ๋ด๋น S3 ๋ฒํท ์ ๊ทผ
- ๋ฉ๋ด๋ฐ - ๊ฐ์ฒด ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 14)
2) ํ์ผ ์ ๋ก๋
- "ํ์ผ ์ถ๊ฐ" ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 15)
- ๋น๋ํ ํ์ผ ์ ํ(๊ทธ๋ฆผ 16)
- "ํด๋ ์ถ๊ฐ" ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 17)
- static ํ์ผ ์ถ๊ฐ(๊ทธ๋ฆผ 18)
- ์ฐ์ธก ๋งจ ํ๋จ์ "์ ๋ก๋" ๋ฒํผ ํด๋ฆญ(๊ทธ๋ฆผ 19)
6. ์น ๊ตฌ๋ ํ ์คํธ
- ์์ฑ ํญ ํด๋ฆญ(๊ทธ๋ฆผ 20)
- ํ๋จ์ ์ ์ ์น ์ฌ์ดํธ ํธ์คํ ํญ ๋ด ์๋ํฌ์ธํธ ๋งํฌ ํด๋ฆญ(๊ทธ๋ฆผ 21)
- ์น ํ์ด์ง ํ์ธ(๊ทธ๋ฆผ 22)
- ํ์ผ ์ ๋ก๋ ํ ์ฝ์์ฐฝ ํ์ธ(๊ทธ๋ฆผ 23)
- ์๋ฌ ์์ด ์ ๋ก๋ ๋ก์ง์ ์ํ ์ฌ๋ถ ํ์ธ
- ํ์ผ ์ ์ฅ์ฉ S3 ๋ด ํ์ผ ์ ๋ก๋ ํ์ธ(๊ทธ๋ฆผ 24)
์ด๊ฒ์ผ๋ก S3๋ฅผ ํ์ฉํ์ฌ ์น ํ์ด์ง๋ฅผ ํธ์คํ ํ๊ณ , S3, Lambda, API Gateway๋ฅผ ํ์ฉํ์ฌ ํ์ผ์ ์ ๋ก๋ํ๋ ์์คํ ๊ตฌํ๊น์ง ์์ฑํ์์ต๋๋ค.
๐ ์๋ฆฌ์ฆ ํฌ์คํ
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 ๊ธฐ๋ฐ ์น ํธ์คํ
ํฌ์คํ ๋ด์ฉ์ ์ค๋ฅ๊ฐ ์๊ฑฐ๋ ๊ถ๊ธํ ์ฌํญ์ด ์์ผ์๋ค๋ฉด ์๋์ ๋๊ธ ๋จ๊ฒจ์ฃผ์๊ธธ ๋ฐ๋๋๋ค.
๊ทธ๋ผ ์ค๋๋ ์ฆ๊ฒ๊ณ ๊ฑด๊ฐํ ํ๋ฃจ ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค๐
๊ณ ๋ง์ต๋๋ค :)