๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

AWS

AWS / S3, Cloudfront๋ฅผ ํ™œ์šฉํ•ด ๋ฐฐํฌํ•˜๊ธฐ

 

Vite๋กœ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ

 

1. Vite๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

npm create vite@latest 250527-vite -- --template react

 

2. ๋นŒ๋“œํ•˜๊ธฐ

npm run build

 

dist ํด๋”๊ฐ€ ์ƒ์„ฑ๋จ

 

๋นŒ๋“œํ•ด ์ƒ์„ฑ๋œ dist ํด๋”๋ฅผ ๊ฐ์ฒด๋กœ ์—…๋กœ๋“œํ•  ๊ฒƒ์ด๋‹ค

 

3. ๋ฒ„ํ‚ท ์—…๋กœ๋“œ

๊ธฐ์กด ๊ฐ์ฒด๋Š” ์‚ญ์ œํ•˜๊ณ  dist ํด๋” ๋‚ด ํŒŒ์ผ๋“ค์„ ๋“œ๋ž˜๊ทธํ•ด ์—…๋กœ๋“œํ•œ๋‹ค.

 

์—…๋กœ๋“œ ํ›„ ์†์„ฑํƒญ์˜ ๋งจ ์•„๋ž˜ ์›น์‚ฌ์ดํŠธ ์—”๋“œํฌ์ธํŠธ๋กœ ๋“ค์–ด๊ฐ€๋ณด๋ฉด ๋ฐ”๋€ ํŒŒ์ผ๋“ค๋กœ ์ž˜ ๋ฐฐํฌ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

 

 

 

 

Next ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ

1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

npx create-next-app@latest

 

์ดํ›„ ๋‚˜์˜ค๋Š” prompt๋Š” ๋ญ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ๊ธฐ๋ณธ์„ค์ •๋Œ€๋กœ ์ฒดํฌํ•˜๊ณ  ๋„˜์–ด๊ฐ„๋‹ค

 

2. ๋นŒ๋“œํ•˜๊ธฐ

NextJS์˜ ์ •์ , ๋™์  ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์›นํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค

 

1) ์ •์ (static) ๋ฐฉ์‹

  • ํŽ˜์ด์ง€๊ฐ€ ๋นŒ๋“œ ํƒ€์ž„์— ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜์–ด HTML๋กœ ๋ฐฐํฌ๋จ
  • S3 + CloudFront ๊ฐ™์€ ์ •์  ํ˜ธ์ŠคํŒ… ํ™˜๊ฒฝ์— ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค
  • + CRA, Vite๋กœ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๋„ ๋ชจ๋‘ ์ •์ ์ธ ์›นํŽ˜์ด์ง€

2) ๋™์ (dynamic) ๋ฐฉ์‹

  • ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ ๋™์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ html ํŒŒ์ผ์„ ์ƒ์„ฑ
  • ๋™์  ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”  s3์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•จ (vercel, node.js๊ฐ™์€ ๋ณ„๋„์˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์ด ํ•„์š”)

 

์ฆ‰ ์ •์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค

 

next.config.mjs

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'export',
};

export default nextConfig;

 

๊ทธ๋ฆฌ๊ณ  ํ„ฐ๋ฏธ๋„์— ๋นŒ๋“œ ๋ช…๋ น์–ด ์ž…๋ ฅ

npm run build

 

out ํด๋” ์ƒ์„ฑ

์ด์ œ outํด๋” ๋‚ด์˜ ํŒŒ์ผ๋“ค์„ ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œํ•˜๋ฉด ๋œ๋‹ค

 

3. ๋ฒ„ํ‚ท ์—…๋กœ๋“œ

์œ„์™€ ๊ฐ™์œผ๋‹ˆ ์ƒ๋žต

 

 

 


 

 

 

CloudFront

CDN

  • Content Delivery Network์˜ ์•ฝ์–ด
  • Edge Location(์ „์„ธ๊ณ„ ๊ณณ๊ณณ์— ์ปจํ…์ธ ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ €์žฅํ•ด๋†“์„ ์ˆ˜ ์žˆ๋Š” ์ž„์‹œ ์ €์žฅ์†Œ)๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ์„œ๋น„์Šค๋กœ, ํ•ด๋‹น ์ปจํ…์ธ ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์บ์‹ฑํ•ด๋‘” ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹

CloudFront

  • ์ปจํ…์ธ ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ „์†กํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค
  • ๊ธฐ๋ณธ ๋ณด์•ˆ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•จ

CloudFront์˜ ์ž‘๋™ ๊ณผ์ •

  • s3์—๋Š” ์ปจํ…์ธ ๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ์Œ
  1. ์‚ฌ์šฉ์ž ์š”์ฒญ ๋ฐœ์ƒ
  2. Edge Location ํ™•์ธ
  3. CloudFront๋Š” ์‚ฌ์šฉ์ž์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด Edge Location์— ์š”์ฒญํ•ด ์ปจํ…์ธ ๋ฅผ ๋ฐ›์•„์˜ด ⇒ ์†๋„๊ฐ€ ๋นจ๋ผ์ง

CloudFront๋ฅผ ์‚ฌ์šฉํ•˜์˜€์„ ๋•Œ์˜ ์ด์ 

  • ์ปจํ…์ธ ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ธฐ์กด s3์—๋Š” HTTPS๋ฅผ ์ ์šฉ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์ด ์—†์Œ ⇒ CloudFront๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•ˆ์„ ๋” ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Œ

CloudFront๋ฅผ ์‚ฌ์šฉํ•œ ์•„ํ‚คํ…์ณ ๊ตฌ์„ฑ

[์‚ฌ์šฉ์ž] ⇒ [CloudFront] ⇒ [S3]

 

 

 

์‹ค์Šต

cloudFront ์„œ๋น„์Šค ํŽ˜์ด์ง€ : https://us-east-1.console.aws.amazon.com/cloudfront/v4/home?region=ap-northeast-2#/welcome

 

1. ๋ฐฐํฌ ์ƒ์„ฑ

์œ„ ์‚ฌ์ดํŠธ๋กœ ๋“ค์–ด๊ฐ€์„œ CloudFront ๋ฐฐํฌ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

origin domain์—์„œ ์ƒ์„ฑํ•œ ๋ฒ„ํ‚ท ์„ ํƒ ํ›„ '์›น ์‚ฌ์ดํŠธ ์—”๋“œํฌ์ธํŠธ ์‚ฌ์šฉ' ํด๋ฆญ

๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ ๊ธฐ๋ณธ์„ค์ •...

 

๊ธฐ๋ณธ ์บ์‹œ ๋™์ž‘์—์„œ '๋ทฐ์–ด ํ”„๋กœํ† ์ฝœ ์ •์ฑ…'์—์„œ Redirect HTTP to HTTPS๋กœ ์ฒดํฌ(* HTTP๋กœ ์š”์ฒญํ•ด๋„ HTTPS๋กœ ๋ฐ”๊ฟ” ์‘๋‹ตํ•˜๋Š” ์ •์ฑ…)

์‹ค์Šต์ด๋‹ˆ๊นŒ ๊ฐ€๊ฒฉ ๋ถ„๋ฅ˜๋ฅผ ์•„์‹œ์•„์—์„œ ์‚ฌ์šฉ ์ฒดํฌ

๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ๊ฐ’ ๋ฃจํŠธ ๊ฐ์ฒด๋กœ index.html ์ž‘์„ฑ ํ›„ ๋ฐฐํฌ ์ƒ์„ฑ ํด๋ฆญ

 

 

 

๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ด์ œ ๋„๋ฉ”์ธ์„ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋ฐ,

๋ฐฐํฌ๋œ ์‚ฌ์ดํŠธ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด 2~3๋ถ„ ์ •๋„๋Š” ๊ฑธ๋ฆฐ๋‹ค๊ณ ํ•œ๋‹ค...

์•„๋ฌดํŠผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ฐฐํฌ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋ณต์‚ฌํ•ด ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด๋ณด๋ฉด ์šฐ์ธก ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์ž˜ ๋ฐฐํฌ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

'AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

AWS / ์„œ๋น„์Šค๋“ค ์ •๋ฆฌํ•˜๊ธฐ  (0) 2025.05.29
AWS / CI/CD  (1) 2025.05.29
AWS / ๋„๋ฉ”์ธ, HTTPS ์„ค์ •  (0) 2025.05.28
AWS / ๊ธฐ์ดˆ  (0) 2025.05.26