Unit6 - [Deploy] Amazon Web Service

๊ฐ•์„ฑ์ผยท2023๋…„ 8์›” 1์ผ
0
post-thumbnail

โœ… TIL


์ž˜ ๋งŒ๋“ค์–ด์ง„ ์›น ์„œ๋น„์Šค๋Š” ๋ฐฐํฌ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๋” ์ด์ƒ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.
๋”ฐ๋ผ์„œ ์›น ๊ฐœ๋ฐœ์ž๋Š” ๋ฐฐํฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์„ ํƒ‘์žฌํ•˜๊ณ  ์žˆ๊ณ , ๊ฐ„๋‹จํ•œ ๋ฐฐํฌ ์ •๋„๋Š” ํ˜ผ์ž ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์˜ค๋Š˜์€ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค Amazon Web Service(์ดํ•˜ AWS)๋ฅผ ์ด์šฉํ•ด์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•œ๋‹ค.

๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์˜ ๋ฐœ์ „๊ณผ AWS์˜ ๋“ฑ์žฅ์€ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์— ํ˜์‹ ์„ ๋ถˆ๋Ÿฌ์ผ์œผ์ผฐ๋‹ค.
๋งŒ์ผ AWS๊ฐ€ ์—†์—ˆ๋”๋ผ๋ฉด ์šฐ๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ง์ ‘ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค.

ํ•˜์ง€๋งŒ, ์ด์ œ๋Š” ํด๋ฆญ ๋ช‡ ๋ฒˆ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋˜ํ•œ ์‚ฌ์šฉํ•œ ๋งŒํผ ๋ˆ์„ ์ง€๋ถˆํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ด ๋ชจ๋“  ๊ฒƒ๋“ค์ด ๊ฐ€๋Šฅํ• ๊นŒ?

์ด์ œ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ๊ธฐ๋ณธ๊ณผ ๋ฐฐํฌ์˜ ๊ฐœ๋…, ๊ทธ๋ฆฌ๊ณ  AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š”
์ฃผ์š” ์„œ๋น„์Šค๋ฅผ ์ง์ ‘ ๋‹ค๋ค„๋ณด๋ฉด์„œ, ์ด ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ์ง€ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.



Amazon Web Service


์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(AWS)๋ž€ ์•„๋งˆ์กด์ด ์ž์‚ฌ์˜ ๋…ธํ•˜์šฐ๋ฅผ ์‚ด๋ ค ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” โ€˜ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šคโ€™๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

AWS์—๋Š” ์ปดํ“จํŒ…, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ถ„์„, ๋„คํŠธ์›Œํ‚น, ๋ชจ๋ฐ”์ผ, ๊ฐœ๋ฐœ์ž ๋„๊ตฌ, ๊ด€๋ฆฌ ๋„๊ตฌ, IoT, ๋ณด์•ˆ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ, AWS์˜ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ธฐ๋„ ํ•œ๋‹ค. ์ผ์ „์—๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์—…์ž์—๊ฒŒ ๊ฐ๊ฐ ๋นŒ๋ ค์•ผ ํ–ˆ๋˜ ์ธํ”„๋ผ๋ฅผ ์ผ๊ด„๋กœ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ์šด์˜์ฒด์ œ(OS), ์›น ์„œ๋ฒ„, DB ์„œ๋ฒ„ ๋“ฑ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๊นŒ์ง€ ํ†ต์งธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ์„œ๋น„์Šค์ด๊ธฐ๋„ ํ•˜๋‹ค.


์•„๋งˆ์กด ์›น ์„œ๋น„์Šค(AWS)์˜ ํŠน์ง•

AWS์˜ ํŠน์ง•์œผ๋กœ๋Š”,

  • ์„œ๋น„์Šค๋ฅผ ์กฐํ•ฉํ•˜๊ธฐ ์‰ฝ๋‹ค. AWS์—์„œ๋งŒ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋กœ๋„ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋Œ€๋ถ€๋ถ„ ๊ตฌ์ถ• ๊ฐ€๋Šฅํ•˜๋ฉฐ, AWS์™€ AWS ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ์กฐํ•ฉํ•˜์—ฌ ๊ตฌ์ถ•ํ•˜๊ธฐ ์‰ฝ๋‹ค.
  • ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  ์–‘์„ ๋ฏธ๋ฆฌ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋ถ€์กฑํ•ด์ง€๋ฉด ๊ทธ๋•Œ๋งˆ๋‹ค ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ™์€ ์–‘์„ ๊ณ„์† ๋นŒ๋ ค์•ผ ํ•˜๋Š” ์ •์•ก์ œ์™€ ์ฐจ๋ณ„์ ์ด ์žˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋ฒ„๊ฐ€ ๋งค์šฐ ํฐ ๊ทœ๋ชจ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋„คํŠธ์›Œํฌ๋‚˜ ์„œ๋ฒ„ ์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ˜„์žฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ „ ์„ธ๊ณ„ 31๊ฐœ์˜ ์ง€๋ฆฌ์  ๋ฆฌ์ „ ๋‚ด์— 99๊ฐœ์˜ ๊ฐ€์šฉ ์˜์—ญ์„ ์šด์˜ํ•˜๊ณ  ์žˆ์–ด, ๊ธ€๋กœ๋ฒŒ๋กœ ํ™•์žฅ ์‹œ ํ™•์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ์ง€์—ญ๊ณผ ์ง€๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „์—์„œ ์„œ๋น„์Šค ์‹œ์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ•œ๊ตญ์–ด ์ง€์› ๋ฐ ์›ํ™” ๊ฒฐ์ œ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ณด์•ˆ ๊ด€๋ จํ•˜์—ฌ ๋ฒ•๋ น, ๊ทœ์ •, ํ”„๋ผ์ด๋ฒ„์‹œ ๊ธฐ์ค€์„ ์ค€์ˆ˜ํ•˜๊ณ  ์žˆ๋Š” ์•ˆ์ „ํ•œ ์„œ๋น„์Šค์ด๋‹ค.

์ด๋Ÿฐ AWS๋Š” 165๊ฐœ ์ด์ƒ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ์ค‘ ์œ ๋ช…ํ•œ ์„œ๋น„์Šค๋กœ๋Š” EC2, S3, RDS ๋“ฑ์ด ์žˆ๋‹ค.



EC2


  • ์žฅ์ 
    • ๋ช‡ ๋ฒˆ์˜ ํด๋ฆญ๋งŒ์œผ๋กœ PC๋ฅผ ๊ตฌ์„ฑํ•˜๋ฏ€๋กœ, ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ์งง๋‹ค.
    • AMI๋ฅผ ํ†ตํ•ด์„œ ํ•„์š”ํ•œ ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
      • ์šด์˜์ฒด์ œ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ CPU์™€ RAM, ์šฉ๋Ÿ‰๊นŒ์ง€๋„ ์†์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•œ๋‹ค.

EC2๋Š” ์ปดํ“จํ„ฐ๋ฅผ ํ•œ ๋Œ€ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ปดํ“จํ„ฐ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋นŒ๋ฆฐ ์ปดํ“จํ„ฐ๋Š” ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ์™€ ๋‹ค๋ฅด๊ฒŒ ์•„๋งˆ์กด์ด ์ „ ์„ธ๊ณ„์— ๋งŒ๋“ค์–ด ๋†“์€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(์ธํ”„๋ผ)์—
๋งŒ๋“ค์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ(์ธํ„ฐ๋„ท)๋ฅผ ํ†ตํ•ด์„œ ์ปดํ“จํ„ฐ๋ฅผ ์ œ์–ดํ•ด์•ผ ํ•œ๋‹ค๋Š”
์ฐจ์ด์ ์ด ์žˆ์„ ๋ฟ ์ผ๋ฐ˜์ ์ธ ์ปดํ“จํ„ฐ์™€ ๋‹ค๋ฅธ ์ ์€ ์—†๋‹ค.

์•„๋งˆ์กด EC2๋ฅผ ํ†ตํ•ด์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ผ์€ ์›น์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ 
์›น ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์š”์ฒญํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ธ์Šคํ„ด์Šค๋Š” 1๋Œ€์˜ ์ปดํ“จํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋‹จ์œ„์ด๊ณ , AWS์—์„œ ์ปดํ“จํ„ฐ๋ฅผ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ์„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.



RDS


RDS๋Š” Relational Database Service์˜ ์•ฝ์ž๋กœ AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค์ด๋‹ค.

์™œ RDS๋ฅผ ์‚ฌ์šฉํ• ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด์ „ ์Šฌ๋ผ์ด๋“œ์—์„œ EC2๊ฐ€ ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ์ž„๋Œ€ํ•˜๋Š” ์„œ๋น„์Šค๋ผ๊ณ  ๋ฐฐ์› ๋‹ค.
EC2 ์ธ์Šคํ„ด์Šค์— MySQL ๊ฐ™์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ์„ค์น˜ํ•˜๋ฉด ๊ตณ์ด RDS๋ฅผ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†์ง€ ์•Š์„๊นŒ?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด์•ผ ํ•  ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ?

EC2 ์ธ์Šคํ„ด์Šค์— ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ์„ค์น˜ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ์™€ RDS๋ฅผ ํ†ตํ•ด
๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ์˜ ์ฐจ์ด๋Š” ๊ฐœ์ธ ์†Œ์œ  ์ฐจ๋Ÿ‰๊ณผ ๋ Œํ„ฐ์นด ํšŒ์‚ฌ์—์„œ ๋Œ€์—ฌํ•œ ์ฐจ๋Ÿ‰์œผ๋กœ ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๊ฐœ์ธ ์†Œ์œ  ์ฐจ๋Ÿ‰์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค.
๊ฐœ์ธ ์†Œ์œ  ์ฐจ๋Ÿ‰์„ ์ด์šฉํ•˜๋ฉด ์œ ์ง€ ๋ณด์ˆ˜, ๋ณดํ—˜์ฒ˜๋ฆฌ ๊ฐ™์€ ์ผ๋“ค์„ ์˜จ์ „ํžˆ ์šด์ „์ž๊ฐ€ ๋ถ€๋‹ดํ•œ๋‹ค.

์ฐจ๋Ÿ‰ ์ •๋น„๋ฅผ ์œ„ํ•ด์„œ ์ •๋น„์†Œ์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•˜๊ณ ,
๊ธฐํƒ€ ์ฐจ๋Ÿ‰๊ณผ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์ผ์ด ์ƒ๊ธธ ๋•Œ ๋“ค์—ฌ์•ผ ํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ์ˆ˜๊ณ ๊ฐ€ ํฌ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จํ•ด์„œ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งค์šฐ ์ ๊ธฐ ๋•Œ๋ฌธ์—,
์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ผ์ด ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์˜ ์„ค์น˜์™€ ๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ๋ฐฑ์—…์„ ํ•ด์•ผ ํ•œ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ๊ฐ€์šฉ์„ฑ๊ณผ ๋‚ด๊ตฌ์„ฑ์ด ํ™•๋ณด๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์ •์ƒ์ ์œผ๋กœ
์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ํ™•๋ฅ ์ด ์ปค์ง€๋ฉฐ, ํ›„์— ํ•„์š”์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

๊ทธ์— ๋น„ํ•ด RDS๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ Œํ„ฐ์นด ํšŒ์‚ฌ์—์„œ ์ฐจ๋Ÿ‰์„ ๋Œ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค.

๋ Œํ„ฐ์นด ํšŒ์‚ฌ์—์„œ ์ฐจ๋Ÿ‰์„ ๋Œ€์—ฌํ•˜๋ฉด ๋Œ€์—ฌ ์ฐจ๋Ÿ‰๊ณผ ๊ด€๋ จํ•˜์—ฌ ์‹œ๊ฐ„์ด ๋“ค์–ด๊ฐ€๋Š” ์ผ๋“ค์„ ๋ Œํ„ฐ์นด ํšŒ์‚ฌ์—์„œ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•œ๋‹ค.
์šด์ „์ž๋Š” ์ฐจ๋Ÿ‰์„ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์— ๋Œ€ํ•ด์„œ ์‹œ๊ฐ„์„ ๋”ฐ๋กœ ์Ÿ์„ ํ•„์š” ์—†์ด ์šด์ „๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ์— ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค.

RDS๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ์ง€ ๋ณด์ˆ˜์™€ ๊ด€๋ จ๋œ ์ผ๋“ค์„ RDS์—์„œ ์ „์ ์œผ๋กœ ์ž๋™ ๊ด€๋ฆฌํ•œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ ์ดˆ๊ธฐ ์„ค์ •์„ ์ œ์™ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—
์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ ๋ฐ–์— ์—†๊ธฐ์— ํฐ ํŽธ์˜์„ฑ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ๋‹ค.



S3


S3๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์ „์—, ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž ์‹œ ์•Œ์•„๋ณด๊ฒ ๋‹ค. ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ž€ ๋ญ˜๊นŒ?

ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ž€ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์ธํ„ฐ๋„ท ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ์ด๋‹ค.
์ปดํ“จํ„ฐ ๋ถ€ํ’ˆ์œผ๋กœ ๋น„์œ ํ•˜๋ฉด ํ•˜๋“œ๋””์Šคํฌ์˜ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค.

์šฐ๋ฆฌ๋Š” ์•Œ๊ฒŒ ๋ชจ๋ฅด๊ฒŒ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด์™”๋‹ค.
๊ตฌ๊ธ€์˜ Google Drive, ๋„ค์ด๋ฒ„์˜ MYBOX, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ Onedrive์™€ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ์˜ˆ์‹œ์ด๋‹ค.

ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋Š” ๋›ฐ์–ด๋‚œ ์ ‘๊ทผ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ๋œ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹น ์ปดํ“จํ„ฐ๋ฅผ ์ด์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ์›น ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ์ €์žฅ๋œ ํŒŒ์ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
๋˜ํ•œ ์ปดํ“จํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›น์— ์ ‘์†์ด ๊ฐ€๋Šฅํ•œ ๋‹ค๋ฅธ ์ „์ž๊ธฐ๊ธฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

S3๋Š” Simple Storage Service์˜ ์•ฝ์ž๋กœ AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค์ด๋‹ค.

  • ์žฅ์ 
    1. S3๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋›ฐ์–ด๋‚œ ์ ‘๊ทผ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    2. ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์ˆ˜๊ณ ๋ฅผ ๋“ค์ด์ง€ ์•Š๊ณ  ์Šคํ† ๋ฆฌ์ง€ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅ/์ถ•์†Œํ•  ์ˆ˜ ์žˆ๋Š” ๋†’์€ ํ™•์žฅ์„ฑ์ด ์žˆ๋‹ค.
      • ๋˜ํ•œ S3์—์„œ๋Š” ์Šคํ† ๋ฆฌ์ง€์˜ ์šฉ๋Ÿ‰์„ ๋ฌดํ•œํžˆ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
        ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์šฉ์ ์ธ ์ธก๋ฉด์—์„œ ๋งค์šฐ ํšจ์œจ์ ์ด๋‹ค.
    3. ๋‚ด๊ตฌ์„ฑ์ด ๋†’์œผ๋ฉด ์ €์žฅ๋œ ํŒŒ์ผ์„ ์œ ์‹คํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์–ด์ง„๋‹ค. S3๋Š” 99.999999999%์˜ ๋‚ด๊ตฌ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.
      • (S3์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ์žƒ์–ด๋ฒ„๋ฆด ํ™•๋ฅ ๋ณด๋‹ค, ๊ธธ์„ ๊ฑท๋‹ค๊ฐ€ ๋ฒผ๋ฝ์„ ๋งž์„ ํ™•๋ฅ (์•ฝ 0.0000007%์˜ ํ™•๋ฅ )์ด 700๋ฐฐ๋‚˜ ๋” ๋†’๋‹ค.)
    4. ๊ฐ€์šฉ์„ฑ์ด ๋†’์œผ๋ฉด ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ํŒŒ์ผ๋“ค์„ ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค.
      S3๋Š” ์—ฐ๊ฐ„ 99.99%์˜ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋„๋ก ์„ค๊ณ„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค.
    5. ๋‹ค์–‘ํ•œ ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ €์žฅ์†Œ๋ฅผ ์–ด๋–ค ๋ชฉ์ ์œผ๋กœ ํ™œ์šฉํ• ์ง€์— ๋”ฐ๋ผ ํšจ์œจ์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งŽ์ด ์„ ํƒํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.
      • Standard ํด๋ž˜์Šค: ๋ฒ”์šฉ์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋‹ค. ๋ฐ์ดํ„ฐ์— ๋น ๋ฅธ ์†๋„๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๋Œ€์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ž˜ ๋ณด๊ด€ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ๋Š” ํšจ์œจ์ ์ธ ์„ ํƒ์ง€๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ณด๊ด€ ๋น„์šฉ์ด ๋†’๊ฒŒ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
      • Glacier ํด๋ž˜์Šค: ์žฅ๊ธฐ์ ์ธ ๋ณด๊ด€ ๋ชฉ์ ์œผ๋กœ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์‹ค ๋•Œ๋Š” Glacier๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. ๋น„๋ก ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋น„์šฉ์ด ๋งค์šฐ ์ €๋ ดํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
    6. ์ •์ (์„œ๋ฒ„์˜ ๊ฐœ์ž… X) ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…(์„œ๋ฒ„์˜ ํ•œ ๊ณต๊ฐ„์„ ์ž„๋Œ€ํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
      ๋ฒ„ํ‚ท์ด ์‚ฌ์šฉ์ž๋“ค์ด ์ •์  ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฒ„ํ‚ท์ด๋ผ๋Š” ์ €์žฅ ๊ณต๊ฐ„์— ์ •์  ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ๋ฒ„ํ‚ท์„ ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์šฉ๋„๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์ •์  ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฒ„ํ‚ท์ด๋ž€ S3์— ์ €์žฅ๋˜๋Š” ํŒŒ์ผ๋“ค์ด ๋‹ด๊ธฐ๋Š” ๋ฐ”๊ตฌ๋‹ˆ์ด๋‹ค. ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ผ๊ณ ๋„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

S3์—์„œ ์ €์žฅ๋˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์€ ๋ฒ„ํ‚ท ์•ˆ์— ์ €์žฅ๋˜์–ด์•ผ ํ•˜๊ณ , ๋ฒ„ํ‚ท์—๋Š” ๋ฌดํ•œํ•œ ์–‘์˜ ํŒŒ์ผ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ๋ฒ„ํ‚ท์€ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์€ ๋ฒ„ํ‚ท์ด ์†ํ•ด ์žˆ๋Š” ๋ฆฌ์ „(๋ฒ„ํ‚ท์ด ์ƒ์„ฑ๋œ ์ง€์—ญ)์—์„œ ์œ ์ผํ•ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ ๋ฒ„ํ‚ท ์ •์ฑ…์„ ์ƒ์„ฑํ•˜์—ฌ ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์œ ์ €์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

S3์—์„œ ๋ฒ„ํ‚ท์— ๋‹ด๊ธฐ๋Š” ํŒŒ์ผ์„ ๊ฐ์ฒด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์™œ ๊ฐ์ฒด๋ผ๊ณ  ๋ถ€๋ฅผ๊นŒ?
S3์—์„œ ์ €์žฅ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ํ‚ค-๊ฐ’ ํŽ˜์–ด ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

S3์— ์ €์žฅ๋˜๋Š” ๊ฐ์ฒด๋Š” ํŒŒ์ผ๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ๋‹ค.
ํŒŒ์ผ์€ ์œ„์— ์„ค๋ช…ํ•œ ๋Œ€๋กœ ํ‚ค-๊ฐ’ ํŽ˜์–ด ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

  • ํŒŒ์ผ์˜ ๊ฐ’์—๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. S3 ๊ฐ์ฒด์˜ ๊ฐ’์œผ๋กœ์จ ์ €์žฅ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 5TB์ด๋‹ค.

  • ํŒŒ์ผ์˜ ํ‚ค๋Š” ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์‹๋ณ„์ž ์—ญํ• ์„ ํ•œ๋‹ค.
    ํŒŒ์ผ์˜ ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ผ, ํฌ๊ธฐ, ์œ ํ˜•๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ๋ฐ์ดํ„ฐ์ด๋‹ค.
    ๊ฐ์ฒด๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์ข‹๋‹ค.

๋ชจ๋“  ๊ฐ์ฒด๋Š” ๊ณ ์œ ํ•œ URL ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

URL ์ฃผ์†Œ๋Š” http://[๋ฒ„ํ‚ท์˜ ์ด๋ฆ„].S3.amazonaws.com/[๊ฐ์ฒด์˜ ํ‚ค]์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ ,
URL ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ๋„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.



๋ฐฐํฌ ์ „๋žต


์ž‘์„ฑํ•œ Client ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์–ด๋–ป๊ฒŒ ์ œ๊ณตํ• ์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ธ S3๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ Client๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž์ฒด ๊ฐœ๋ฐœ ์„œ๋ฒ„ (์˜ˆ, create-react-app)๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ผ์ด์–ธํŠธ ์•ฑ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋ณดํ†ต์ด๋‹ค.
๊ทธ๋Ÿผ, ํด๋ผ์ด์–ธํŠธ๋ฅผ ์œ„ํ•ด์„œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ํด๋ผ์ด์–ธํŠธ ์•ฑ์„ ์ •์  ํŒŒ์ผ๋กœ ๋นŒ๋“œํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค.
๋”ฐ๋ผ์„œ S3๋ฅผ ์ด์šฉํ•ด์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค.

์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋นŒ๋“œ์ด๋‹ค.

๋นŒ๋“œ๋ž€ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์—†์• ๊ณ , ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜๋กœ ํผ์ ธ์žˆ๋Š”
๋ฐ์ดํ„ฐ๋“ค์„ ํ†ตํ•ฉ/ ์••์ถ•ํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ธฐ์— ์ตœ์ ํ™”๋œ ์ƒํƒœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๋นŒ๋“œ ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ์˜ ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ค๊ณ ,
์›น ์‚ฌ์ดํŠธ์˜ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค๋Š” ์žฅ์ ์ด ์ƒ๊ธด๋‹ค.

ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์˜ ๋นŒ๋“œ๋Š”, ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฒˆ๋“ค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.
์›น ์•ฑ์—์„œ์™€๊ฐ™์ด HTML, CSS, JS์˜ ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค.

์›น ์•ฑ์€ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ •์  ํŒŒ์ผ(static files)์˜ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ์‚ฌ์šฉ์ž๋“ค์ด ์ œ๊ณต๋ฐ›์€ Client Application์„ ํ†ตํ•ด์„œ
์š”์ฒญ์„ ์ „๋‹ฌํ•  Server Application์€ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•ด์•ผ ํ• ๊นŒ?

AWS EC2 ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.



๋ฐฑ์—”๋“œ ๋ฐฐํฌ ์‹ค์Šต


repository ์ฃผ์†Œ์˜ main ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•œ๋‹ค.

  • ์„œ๋ฒ„ ๋ฐฐํฌ (EC2)
    • EC2 ์ฝ˜์†”์„ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
    • ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ  EC2 ์ธ์Šคํ„ด์Šค์— ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค.
    • ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • Getting Started
    • ์ด๋ฒˆ ์Šคํ”„๋ฆฐํŠธ๋Š” JWT ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋ฐœ๊ธ‰๋œ JWT ํ† ํฐ์„ Local Storage์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์›น ์‚ฌ์ดํŠธ ์ฃผ์†Œ์— HTTPS๋ฅผ ์ ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • .env.example ํŒŒ์ผ์„ ๋ณด๋ฉฐ ์–ด๋–ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์ด ์ •์˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. (๋‚˜์ค‘์— ์‹ค์Šต์„ ์ง„ํ–‰ํ•  ๋•Œ ์ฃผ์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค)
  • ์„œ๋ฒ„ ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ํ™•์ธ ๋ฐฉ๋ฒ•
    • ์„œ๋ฒ„ ๋ฐฐํฌ ์„ฑ๊ณต ์‹œ 'hello World' ์‘๋‹ต์„ ๋ฐ›๋Š”๋‹ค.

IAM ํ™•์ธ ๋ฐ ๋กœ๊ทธ์ธ ํŠœํ† ๋ฆฌ์–ผ

๋ฉ”์ผ๋กœ ์ „๋‹ฌ๋ฐ›์€ ๋งํฌ์— ์ ‘์†ํ•ด์„œ, ๋กœ๊ทธ์ธ์ด ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

๊ณ„์ • ID์™€ ๊ฐ™์€ ๋ถ€๋ถ„์€ ์ด๋ฏธ ์ง€์ •์ด ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ฏ€๋กœ, ๊ทธ ๋ถ€๋ถ„์„ ์ œ์™ธํ•œ
์‚ฌ์šฉ์ž ์ด๋ฆ„(๋ฉ”์ผ๋กœ ์ „๋‹ฌ๋ฐ›์€ login)๊ณผ ์•”ํ˜ธ(๋ฉ”์ผ๋กœ ์ „๋‹ฌ๋ฐ›์€ password)๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

์•„๋ž˜ ํ™”๋ฉด์ด ์ž˜ ๋ณด์ธ๋‹ค๋ฉด IAM์ด ์ •์ƒ์ ์œผ๋กœ ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.
์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—, ํ˜„์žฌ ๋ฆฌ์ „์ด ์„œ์šธ๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ๋Š”์ง€ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•œ๋‹ค. ์„œ์šธ์ด ์•„๋‹ˆ๋ฉด, ๋ฆฌ์ „์„ ์„œ์šธ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.


IAM ํ™•์ธ ๋ฐ ๋กœ๊ทธ์ธ ํŠœํ† ๋ฆฌ์–ผ

์ด๋ฒˆ ์‹ค์Šต์—์„œ ์‚ฌ์šฉํ•˜๋Š” EC2๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑ์ด ๋˜์–ด์žˆ๋‹ค.
AWS ์ฝ˜์†”์—์„œ EC2๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ํด๋ฆญํ•ด์„œ EC2 ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•œ๋‹ค.

์ธ์Šคํ„ด์Šค(์‹คํ–‰ ์ค‘)์„ ํด๋ฆญํ•ด ๋“ค์–ด๊ฐ€ ์ž์‹ ์ด ๋ถ€์—ฌ ๋ฐ›์€ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.
EC2 ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฆ„์€ ๋ฉ”์ผ๋กœ ์ „๋‹ฌ ๋ฐ›์€ login์—์„œ student๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์ด๋‹ค.
(ex. ์ „๋‹ฌ๋ฐ›์€ login์ด fe-student-0-kimploo๋ผ๋ฉด, EC2 ์ธ์Šคํ„ด์Šค ์ด๋ฆ„์€ fe-0-kimploo ์ด๋‹ค.)
์ด์–ด ๊ฒ€์ƒ‰๋œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ํด๋ฆญํ•˜๊ณ , "์—ฐ๊ฒฐ"์„ ํด๋ฆญํ•œ๋‹ค.

์ด์–ด ํ„ฐ๋ฏธ๋„์„ bash๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ์ดํ›„ ์‹ค์Šต ๊ณผ์ •๊ณผ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜๋Š” bash๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ณ  ์ œ์ผ ์ตœ์ƒ๋‹จ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

$ bash
$ cd ~



EC2 ์ธ์Šคํ„ด์Šค ์ƒ์—์„œ ์„œ๋ฒ„ ์‹คํ–‰ ํŠœํ† ๋ฆฌ์–ผ


์ง€๋‚œ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ๋ถ€์—ฌ ๋ฐ›์€ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €๋กœ ์—ด๋ฆฐ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ์ƒํƒœ๊นŒ์ง€ ํ™•์ธํ–ˆ๋‹ค.
์ด๋ฒˆ ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ๋ถ€์—ฌ ๋ฐ›์€ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ ‘์†ํ•ด ๋ณด๊ฒ ๋‹ค.


1. ์ธ์Šคํ„ด์Šค์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ


์šฐ๋ฆฌ๋Š” EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์ƒ PC ํ•œ ๋Œ€๋ฅผ ์ž„๋Œ€ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ฐฐ์› ๋‹ค. ์ปดํ“จํ„ฐ ์šด์˜์ฒด์ œ๋ฅผ ์ฒ˜์Œ ๊ตฌ์ž…ํ•˜๋ฉด ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๋“ฏ์ด, EC2 ์ธ์Šคํ„ด์Šค์— ์ฒ˜์Œ ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค. ์ €๋ฒˆ ์‹ค์Šต์—์„œ EC2 ์ธ์Šคํ„ด์Šค์™€ ์—ฐ๊ฒฐํ•œ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ์ •๋ณด๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

$ sudo apt update

์–ด๋Š ์ •๋„์˜ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ์—…๋ฐ์ดํŠธ ๊ณผ์ •์ด ๋๋‚˜๋ฉด nvm๊ณผ node.js๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.

๋จผ์ € nvm ์„ค์น˜๋Š” NVM GitHub ํŽ˜์ด์ง€์˜ Install & Update Script ๋ถ€๋ถ„์„ ์ฐธ์กฐํ–ˆ๋‹ค.

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash // nvm ์„ค์น˜

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s 
"${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" // This loads nvm

์„ค์น˜ ๊ณผ์ •์ด ๋งˆ๋ฌด๋ฆฌ๋˜๋ฉด ํ„ฐ๋ฏธ๋„์— nvm --version ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ nvm ์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋๋‚ฌ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด nvm ์„ค์น˜ ๊ณผ์ •์ด ์ •์ƒ์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ๋˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” node.js๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

$ nvm install node 

๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์„ค์น˜๊ฐ€ ์ง„ํ–‰์ด ๋œ๋‹ค.

node.js์˜ ์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด npm ๋ช…๋ น์–ด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž…๋ ฅ๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ„ฐ๋ฏธ๋„์—

$ sudo apt install npm

๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ npm ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์„ค์น˜๋ฅผ ์ง„ํ–‰ ํ›„ npm --version ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ npm ์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
์ •์ƒ์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๋‹ค๋ฉด nvm๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฒ„์ „์ด ์ถœ๋ ฅ ๋œ๋‹ค.

์œ„ ๊ณผ์ •์ด ๋ชจ๋‘ ๋๋‚˜๋ฉด node.js ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•์ด ์™„๋ฃŒ๋œ๋‹ค.


2. git์„ ํ†ตํ•ด ์„œ๋ฒ„ ์ฝ”๋“œ ํด๋ก  ๋ฐ›๊ธฐ


ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ ํ›„, ๊ณผ์ œ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ๊นƒํ—™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ ,
git clone ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— ๊ณผ์ œ ์ฝ”๋“œ๋ฅผ ํด๋ก  ๋ฐ›๋Š”๋‹ค.

ํด๋ก  ๋ฐ›๊ธฐ ์ „, ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์˜ ํ„ฐ๋ฏธ๋„์—์„œ ํด๋ก ์„ ๋ฐ›๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•™์Šต ์ดˆ๊ธฐ์— ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— git clone์„ ์œ„ํ•ด ์ง„ํ–‰ํ–ˆ๋˜ Git SSH ๋“ฑ๋ก์ด ํ•„์š”ํ•˜๋‹ค. ๊ธฐ์กด์— ํ–ˆ๋˜ ๊ณผ์ •์„ ๋‹ค์‹œ ๋ณต์Šตํ•ด ๋ณด๋ฉฐ SSH๋ฅผ ๋“ฑ๋กํ•œ ๋’ค, ๊ณผ์ œ๋ฅผ ํด๋ก ๋ฐ›๋Š”๋‹ค.

์œ„ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ์„œ AWS SSH keys๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋“ฑ๋กํ•ด์คฌ๋‹ค.

๐Ÿ’ก ๊ธฐ์กด SSH๋ฅผ ๋‘๊ณ , ์™œ SSH๋ฅผ ๋‹ค์‹œ ๋“ฑ๋กํ• ๊นŒ?
๐Ÿ‘‰ ์•„๋งˆ์กด AWS EC2์—์„œ ์ƒˆ๋กœ ์ž‘์—… ํ™˜๊ฒฝ์„ ๋ถ€์—ฌ๋ฐ›์€ ๊ฒƒ์ด๋ฏ€๋กœ, ๋‹ค์‹œ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

// # ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
ssm-user@ip-172-31-33-2:~$ cd ~

// # git clone
ssm-user@ip-172-31-33-2:~$ git clone git@github.com:codestates-seb/fe-sprint-practice-deploy.git
Cloning into 'fe-sprint-practice-deploy'...
...

// yes๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ clone์ด ์ง„ํ–‰๋œ๋‹ค.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
remote...

// ์ •์ƒ์ ์œผ๋กœ ํด๋ก ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ํ„ฐ๋ฏธ๋„์— ls ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
ssm-user@ip-172-31-33-2:~$ ls
fe-sprint-practice-deploy

// ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์Šคํ”„๋ฆฐํŠธ ์ฝ”๋“œ ์•ˆ์˜ server ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•œ๋‹ค.
cd fe-sprint-practice-deploy/server/
  
// server ํด๋”๋กœ ์ด๋™ํ•œ ๋’ค, npm install ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์„œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.
ssm-user@ip-172-31-8-224:~/fe-sprint-practice-deploy/server$ npm install

added 99 packages, and audited 100 packages in 3s

8 packages are looking for funding
  run `npm fund` for details

2 moderate severity vulnerabilities

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

3. EC2 ์ธ์Šคํ„ด์Šค์—์„œ ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ


npm install ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•œ ์„ค์น˜ ๊ณผ์ •์ด ์™„๋ฃŒ๋˜๋ฉด npm start ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ„ฐ๋ฏธ๋„์— ๋ณด์ธ๋‹ค.

์œ„ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ด๋Š” ์ด์œ ๋Š” 1024๋ฒˆ ์•„๋ž˜์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” sudo npm start ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ํ†ตํ•ด ์ •์ƒ์ ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


4. EC2 ์ธ์Šคํ„ด์Šค์˜ IP ์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•˜๊ธฐ


์ด์ œ EC2 ์ธ์Šคํ„ด์Šค์˜ IP ์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
IP ์ฃผ์†Œ๋Š” EC2 ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ƒ์„ฑํ•œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜ ํ™”๋ฉด์—์„œ ๋ณด๋ผ์ƒ‰์œผ๋กœ ๊ฐ•์กฐ๋œ ๋ถ€๋ถ„์„ ๋ณด๋ฉด, ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ฃผ์†Œ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
ํผ๋ธ”๋ฆญ IPv4 ์ฃผ์†Œ์™€ ํผ๋ธ”๋ฆญ IPv4 DNS๋Š” ํ˜•ํƒœ๋งŒ ๋‹ค๋ฅผ ๋ฟ ๊ฐ™์€ ์ฃผ์†Œ์ด๋‹ค. ๋‘˜ ์ค‘ ์–ด๋–ค ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌธ์ œ์—†๋‹ค.

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ํผ๋ธ”๋ฆญ IPv4 DNS ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ ‘์† ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค์˜ IP ์ฃผ์†Œ๋กœ ์ ‘์†ํ–ˆ์„ ๋•Œ, hello world๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์„ฑ๊ณต์ด๋‹ค.

๋˜ํ•œ EC2 ์„œ๋ฒ„๋ฅผ ํ™•์ธํ•ด ๋ณด๋ฉด GET ์š”์ฒญ์ด ์ฐํ˜€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.



ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ ์‹ค์Šต


์•ž์„  ์Šฌ๋ผ์ด๋“œ๋ฅผ ํ†ตํ•ด S3์— ๋Œ€ํ•œ ๊ฐœ๋… ํ•™์Šต์„ ์™„๋ฃŒํ–ˆ๋‹ค.

์ด๋ฒˆ ์Šคํ”„๋ฆฐํŠธ์—์„œ๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์ด ์™„๋ฃŒ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜
ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ AWS ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๋ฐฐํฌํ•˜๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค.

repository ์ฃผ์†Œ์˜ main ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•œ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ๋ฐฐํฌ (S3)
    • S3 ์ฝ˜์†”์„ ํ†ตํ•ด ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ ํŒŒ์ผ์„ ๋นŒ๋“œํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค.
    • ์ •์  ์›น ํ˜ธ์ŠคํŒ… ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค.
  • Getting Started
    • ์ด๋ฒˆ ์Šคํ”„๋ฆฐํŠธ๋Š” JWT ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋ฐœ๊ธ‰๋œ JWT ํ† ํฐ์„ Local Storage์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด
      ์›น ์‚ฌ์ดํŠธ ์ฃผ์†Œ์— HTTPS๋ฅผ ์ ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
    • .env.example ํŒŒ์ผ์„ ๋ณด๋ฉฐ ์–ด๋–ค ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์ด ์ •์˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
      (๋‚˜์ค‘์— ์‹ค์Šต์„ ์ง„ํ–‰ํ•  ๋•Œ ์ฃผ์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค)
  • ํด๋ผ์ด์–ธํŠธ ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ํ™•์ธ ๋ฐฉ๋ฒ•
    • EC2 ์ธ์Šคํ„ด์Šค๋กœ ์„œ๋ฒ„๋ฅผ ์ผœ๋‘” ์ƒํƒœ์—์„œ S3 ๋ฒ„ํ‚ท์œผ๋กœ ์ •์  ์›น์„ ํ˜ธ์ŠคํŒ…ํ•œ ๋’ค
      ์ƒ์„ฑ๋œ ์—”๋“œํฌ์ธํŠธ ์ฃผ์†Œ์— ์ ‘์†ํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.
    • ์œ„ ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค๋ฉด ์ด๋ฆ„ ์ž…๋ ฅ๋ž€์— "๊น€์ฝ”๋”ฉ"์„,
      ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ๋ž€์— "1234"๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

S3 ์ •์  ์›น ํ˜ธ์ŠคํŒ… ํŠœํ† ๋ฆฌ์–ผ


์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ์ฝ”๋“œ์Šคํ…Œ์ด์ธ ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž์‹ ์˜ S3 ๋ฒ„ํ‚ท์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ ์‹ค์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค.
๋จผ์ € AWS ์ฝ˜์†”์—์„œ S3๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž์‹ ์˜ github login id๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ž์‹ ์˜ ๋ฒ„ํ‚ท์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. EC2์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ S3 ๋ฒ„ํ‚ท ์ด๋ฆ„ ๋˜ํ•œ ๋ฉ”์ผ๋กœ ์ „๋‹ฌ ๋ฐ›์€ login์—์„œ student๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์ด๋ฉฐ, ๋’ค์— s3๊ฐ€ ๋ถ™์–ด ์žˆ๋‹ค. (ex. ์ „๋‹ฌ๋ฐ›์€ login์ด fe-student-0-kimploo๋ผ๋ฉด, S3 ๋ฒ„ํ‚ท ์ด๋ฆ„์€ fe-0-kimploo-s3 ์ด๋‹ค.)

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ ๋ฒˆ๋“ค์„ ์—…๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ฒˆ๋“ค๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ณผ์ œ๊ฐ€ ๋ฏธ๋ฆฌ ์ค€๋น„๋˜์–ด ์žˆ๋‹ค. ๋ฐฐํฌ ๊ณผ์ œ์˜ client ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ž˜ ํด๋ก ํ•ด์™”๋‹ค๋ฉด, ๋ฐฐํฌ ์‹œ ์ •ํ™•ํ•œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ์•„๋ž˜ ํŒŒ์ผ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค. .env.example ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ REACT_APP_API_URL์˜ ๊ฐ’์œผ๋กœ ์•„๊นŒ ์‹ค์Šตํ–ˆ๋˜ EC2 ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ๋Š”๋‹ค.

.env ํŒŒ์ผ์„ ๋”ฐ๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, .env ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ์ค‘์š” ๋ณด์•ˆ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”
๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ .gitignore์— ํฌํ•จํ•˜์—ฌ ์™ธ๋ถ€์— ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์›์น™์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  npm install, npm run build ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. create-react-app์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ ๋ฒˆ๋“ค๋ง์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” build ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ๋ถ€ํ„ฐ S3 ๋ฒ„ํ‚ท์— ๋นŒ๋“œํ•œ ํŒŒ์ผ๋“ค์„ ์—…๋กœ๋“œํ•˜๊ฒ ๋‹ค. ๋จผ์ € build ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฒ„ํ‚ท์˜ ๋ฃจํŠธ ๋„ฃ๋Š”๋‹ค.
ํด๋”์™€ ํŒŒ์ผ์„ ๊ตฌ๋ถ„ํ•ด์„œ ๋‹จ์œ„ ๋ณ„๋กœ ์ž˜ ์—…๋กœ๋“œํ•˜๋„๋ก ํ•œ๋‹ค.

์—…๋กœ๋“œ๊ฐ€ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ์ดˆ๋ก์ƒ‰ ๋ฐ•์Šค๊ฐ€ ์œ„์— ๋œจ๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋‹ค๋ฉด, ๋‹ซ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ ์ž์‹ ์˜ ๋ฒ„ํ‚ท์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, ์—…๋กœ๋“œ ์‹œ build ํด๋” ์ž์ฒด๋ฅผ ๋„ฃ์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

build ํด๋” ์ž์ฒด๋ฅผ ๋„ฃ๊ฒŒ ๋˜๋ฉด ์ดํ›„ ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ์‹œ,
์—…๋กœ๋“œ ๋œ ๊ฐ์ฒด๋“ค์„ ์ฐพ์„ ์ˆ˜ ์—†๊ฒŒ ๋˜์–ด 404 Not Found ํ™”๋ฉด์ด ์ถœ๋ ฅ๋œ๋‹ค.

๋‹ค์‹œ ์—…๋กœ๋“œ๊ฐ€ ์ž˜ ์™„๋ฃŒ๋œ ๋ฒ„ํ‚ท์œผ๋กœ ๋Œ์•„์˜จ ํ›„, ์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” ๋ฒ„ํ‚ท์„ ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ์„ธํŒ…์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

ํ•ด๋‹น ๋ฒ„ํ‚ท์€ ํ˜„์žฌ "private" ์ƒํƒœ์ด๋‹ค. ํ•œ๊ธ€๋กœ๋Š” "๋ฒ„ํ‚ท ๋ฐ ๊ฐ์ฒด๊ฐ€ ํผ๋ธ”๋ฆญ์ด ์•„๋‹˜" ์ƒํƒœ๋กœ ๋–  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ์ƒํƒœ๋กœ๋Š” ์ •์  ์›น ํ˜ธ์ŠคํŒ…์ด ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋”๋ผ๋„, ๋ฒ„ํ‚ท์— ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— 403 Access Denied ๋ผ๋Š” ํ™”๋ฉด์ด ์ถœ๋ ฅ๋œ๋‹ค.

๋จผ์ € ํผ๋ธ”๋ฆญ ์—‘์„ธ์Šค ์ฐจ๋‹จ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๊ฒ ๋‹ค. ํผ๋ธ”๋ฆญ ์—‘์„ธ์Šค ์ฐจ๋‹จ ๋ฐ‘์˜ ํŽธ์ง‘ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค. ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•ด ์ฐจ๋‹จ์„ ํ•ด์ œํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋ฉด ํ•„๋“œ์— ํ™•์ธ์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ชจ๋‹ฌ์ฐฝ์ด ๋œฌ๋‹ค. ํ™•์ธ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ™•์ธ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

๋‹ค์‹œ ๊ถŒํ•œ ์„ค์ • ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค. ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด์„œ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ฃผ๋ฉด ์•„๊นŒ์™€ ๋‹ฌ๋ผ์ง„ ์ ์ด ๋ˆˆ์— ๋ˆ๋‹ค. ๋ฒ„ํ‚ท์˜ ํผ๋ธ”๋ฆญ ์—‘์„ธ์Šค ์ฐจ๋‹จ์ด ํ•ด์ œ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์•ก์„ธ์Šค ๋ถ€๋ถ„์—๋Š” "๊ฐ์ฒด๋ฅผ ํผ๋ธ”๋ฆญ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ" ์ด๋ผ๊ณ  ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜์–ด ์žˆ๊ณ  ๋ชจ๋“  ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ ๋ถ€๋ถ„์ด "๋น„ํ™œ์„ฑ" ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ์ด ๋˜์–ด ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ๋ฒ„ํ‚ท ์ •์ฑ…๋„ ์ˆ˜์ •ํ•œ๋‹ค. ๋ฒ„ํ‚ท ์ •์ฑ… ์˜†์— ํŽธ์ง‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค.

์ •์ฑ…์„ ์ž…๋ ฅํ•˜๋Š” ํ•„๋“œ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{์ž์‹ ์˜ s3 ๋ฒ„ํ‚ท ์ด๋ฆ„}/*"
        }
    ]
}

๊ธ€์“ด์ด๋Š” "widrns15"์˜ ๋ฒ„ํ‚ท ๋ช…์„ ์ž…๋ ฅํ–ˆ๋‹ค. ์œ„์˜ ๋ฒ„ํ‚ท ARN์„ ๋ณด๋ฉด ์ค‘๊ฐ„์˜ fe๋ถ€ํ„ฐ s3 ๋ถ€๋ถ„์ด ๋ฒ„ํ‚ท ๋ช…์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋ฉด ๋‹ค์‹œ ๊ถŒํ•œ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๋Œ์•„๊ฐ€๋ฉด ๋ฒ„ํ‚ท ์ •์ฑ… ์„น์…˜์— ๋„ฃ์–ด์ค€ ์ •์ฑ…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

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

์ ‘๊ทผํ•˜๋ฉด ์ƒˆ๋กœ์šด ์ฐฝ์ด ์—ด๋ฆฐ๋‹ค. ๋ฐฐํฌ์— ์„ฑ๊ณตํ–ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ”ฅ Review


๋กœ๊ทธ์ธ ํ™”๋ฉด์˜ ์ด๋ฆ„ ๋ถ€๋ถ„์—๋Š” ๊น€์ฝ”๋”ฉ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถ€๋ถ„์—๋Š” 1234๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธ์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ดค๋‹ค.

์ •์ƒ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์€ ๋กœ๊ทธ์ธ๊ณผ ๋กœ๊ทธ์•„์›ƒ์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ณ ,
์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด ์‘๋‹ต์„ ์ž˜ ๋ณด๋‚ด์ฃผ๊ณ  ์žˆ๋Š” ์ƒํƒœ์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.



๐Ÿ’ก Error Note.


๐Ÿ’ก ์„œ๋ฒ„๋Š” AWS EC2์—, ํด๋ผ์ด์–ธํŠธ๋Š” Vscode์—.

  • ์ดˆ๋ฐ˜์— EC2 ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ cd/client๋กœ ํด๋ผ์ด์–ธํŠธ ํด๋”๋กœ ๋“ค์–ด๊ฐ€์„œ
    nano๋กœ .env ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ํ•œ ๋ฒˆ์— ์ž‘์—…์„ ์‹œ๋„ํ–ˆ์œผ๋‚˜, ์‹คํŒจํ•ด์„œ vscode๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.
  • ์„œ๋ฒ„๋Š” ์ž‘๋™ํ•˜๋‚˜, ๋งŒ๋“  .env ํŒŒ์ผ์ด ์ธ์‹๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€๋‹ค.
profile
์•„์ด๋””์–ด๊ฐ€ ๋„˜์น˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ฟˆ๊ฟ‰๋‹ˆ๋‹ค ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€