ํ์ผ ์ ๋ก๋ ์น ํ์ด์ง ๊ตฌ์ถ: (5) AWS 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 ๊ธฐ๋ฐ ์น ํธ์คํ
๐จ๐ป ๋ค์ด๊ฐ๋ฉฐ
์ด์ ํฌ์คํ ์์๋ ํ์ผ ์ ๋ก๋์ฉ ์น ํ์ด์ง Frontend ๊ตฌ์ถ, AWS IAM ์ญํ , Lambda, S3๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ์๊ฐํ์์ต๋๋ค. ๋ณธ ํฌ์คํ ์์๋ AWS API Gateway๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ์๊ฐํฉ๋๋ค.
๐ ๋ชฉ์ฐจ
1. API Gateway ๊ฐ๋
2. API Gateway ์์ฑ
1. API Gateway ๊ฐ๋
์๋ง์กด ์น ์๋น์ค(AWS)์ API Gateway๋ HTTP, REST, WebSocket API๋ฅผ ์์ฑ, ๊ฒ์, ์ ์ง, ๋ชจ๋ํฐ๋ง, ๋ณดํธํด ์ฃผ๋ ์๋น์ค์ ๋๋ค. ์์ธํ ๊ฐ๋ ์ค๋ช ์ AWS์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค.
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/welcome.html
Amazon API Gateway๋ ๋ฌด์์ ๋๊น? - Amazon API Gateway
์ด ํ์ด์ง์ ์์ ์ด ํ์ํ๋ค๋ ์ ์ ์๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค๋ง์์ผ ๋๋ ค ์ฃ์กํฉ๋๋ค. ์ ๊น ์๊ฐ์ ๋ด์ด ์ค๋ช ์๋ฅผ ํฅ์์ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ํด ์ฃผ์ญ์์ค.
docs.aws.amazon.com
2. API Gateway ์์ฑ
1) API Gateway ์ฝ์ ์ ๊ทผ
๋จผ์ AWS ํํ์ด์ง ๋ด ๊ฒ์์ฐฝ์์ API Gateway๋ฅผ ๊ฒ์ํ์ฌ ํด๋น ์ฝ์๋ก ์ ๊ทผํฉ๋๋ค(๊ทธ๋ฆผ 1).
2) REST API ๊ตฌ์ถ
์ฝ์ ํ๋จ์ REST API ๊ตฌ์ถ์ ํด๋ฆญํฉ๋๋ค(๊ทธ๋ฆผ 2).
3) API ๋ค์ด๋ฐ
์๋์ ๊ทธ๋ฆผ 3์ฒ๋ผ, "์ API" ์ ํํ ํ, ์ง๊ด์ ์ธ ์ด๋ฆ์ผ๋ก API๋ฅผ ๋ค์ด๋ฐํ๊ณ ์ฐ์ธก ํ๋จ์ "API ์์ฑ" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
4) ๋ฆฌ์์ค ์์ฑ
์๋์ ๊ทธ๋ฆผ 4์ฒ๋ผ, "์์ "์ ํด๋ฆญํ๊ณ "๋ฆฌ์์ค ์์ฑ"์ ํด๋ฆญํฉ๋๋ค.
5) ๋ฆฌ์์ค ์์ฑ์ต์
๋ฆฌ์์ค ๋ค์ด๋ฐํ๊ณ API Gateway CORS ํ์ฑํ๋ฅผ ์ฒดํฌํฉ๋๋ค(๊ทธ๋ฆผ 5).
6) ๋ฉ์๋ ์์ฑ
๋ค์ ์๋์ ๊ทธ๋ฆผ 6์ฒ๋ผ "์์ " ๋ฒํผ ํด๋ฆญ ํ "๋ฉ์๋ ์์ฑ" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
7) POST ๋ฉ์๋ ์์ฑ
์๋์ ๊ทธ๋ฆผ 7์ฒ๋ผ "POST"๋ฅผ ์ ํํ๊ณ ์ฒดํฌ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
8) POST ๋ฉ์๋ ์ค์
์๋์ ๊ทธ๋ฆผ 8์ฒ๋ผ, ํตํฉ ์ ํ์ Lambda ํจ์๋ฅผ ์ ํํ๊ณ , Lambda ํ๋ก์ ํตํฉ ์ฌ์ฉ์ ์ฒดํฌํฉ๋๋ค. ์ด์ ํฌ์คํ ์์ ์์ฑํ๋ Lambda ํจ์ ์ด๋ฆ์ ์ ๋ ฅํ์ฌ ํด๋น ๋๋ค ํจ์๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
9) API ๋ฐฐํฌํ๊ธฐ
์๋์ ๊ทธ๋ฆผ 9์ฒ๋ผ, ๋ค์ "์์ " ๋ฒํผ ํด๋ฆญ ํ "API ๋ฐฐํฌ" ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
10) API ๋ฐฐํฌ ์คํ ์ด์ง ์ค์
๋ฐฐํฌ ์คํ ์ด์ง๋ [์ ์คํ ์ด์ง]๋ก ์ ํํ๊ณ ์๋์ ์คํ ์ด์ง ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค(๊ทธ๋ฆผ 10).
์ด์ API Gateway ์์ฑ ๋ฐ ๊ธฐ๋ณธ์ ์ธ ์ธํ ์ด ์๋ฃ๋์์ต๋๋ค. ์๋์ ๊ทธ๋ฆผ 11์ฒ๋ผ ๋ฐฐํฌ๋ URL์ ํ์ธํ์ค ์ ์์ต๋๋ค. ์ถํ ํด๋น URL๋ก ํ์ผ์ axios๋ฅผ ํ์ฉํด POST ํ ์์ ์ ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ ๋ฐฑ์๋ ์ญํ ์ Lambda ํจ์ ์์ฑ ์ ์ฐจ๋ฅผ ์๊ฐํฉ๋๋ค.
๐ ์๋ฆฌ์ฆ ํฌ์คํ
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 ๊ธฐ๋ฐ ์น ํธ์คํ
ํฌ์คํ ๋ด์ฉ์ ์ค๋ฅ๊ฐ ์๊ฑฐ๋ ๋ณด์ํ ์ ์ด ์๋ค๋ฉด ์๋์ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์!
๊ทธ๋ผ ์ค๋๋ ์ฆ๊ฒ๊ณ ๊ฑด๊ฐํ ํ๋ฃจ ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค :)
๊ณ ๋ง์ต๋๋ค๐