[TIL] Day71 #AWS

Beanxxยท2022๋…„ 8์›” 6์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
71/120
post-thumbnail

2022.08.05(Fri)

[TIL] Day71
[SEB FE] Day72

โ˜‘๏ธย Amazon Web Service

๐Ÿ”ธย ๊ธฐ์กด ๋ฐฉ์‹ ํ•œ๊ณ„

  • ์ฃผ๊ธฐ์ ์ธ ์œ ์ง€ ๊ด€๋ฆฌ ํ•„์š” โ†’ ์ธ๋ ฅ / ๋น„์šฉ ํˆฌ์ž…
  • ๊ณต๊ฐ„ ํ•œ๊ณ„ โ†’ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋“ฑ์žฅ

ย โž•ย ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„  ์„œ๋ฒ„ ์ž์›๊ณผ ๊ณต๊ฐ„, ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ ์ œ๊ณต โ‡’ ์˜จํ”„๋ ˆ๋ฏธ์Šค

ย  ๐Ÿ‘‰ย ์„œ๋ฒ„ ์ž์›๊ณผ ๊ณต๊ฐ„, ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ๋นŒ๋ ค ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์‹œ์ž‘ from ๊ฐ€์ƒํ™”(Virtualization) ๊ธฐ์ˆ  ๋ฐœ์ „

ย  โœ‹ย ํ˜„๋Œ€ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์€ ๋ฌผ๋ฆฌ์ ์ธ ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹Œ, ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๋ฅผ ๋Œ€์—ฌํ•œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฆ„

๐Ÿ”ทย Cloud Computing

๐Ÿ‘ย ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์žฅ์ 

  • ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ปดํ“จํŒ… ๋Šฅ๋ ฅ ์œ ์—ฐํ•˜๊ฒŒ ์กฐ์ ˆ ๊ฐ€๋Šฅ
  • ์‚ฌ์šฉํ•œ ๋งŒํผ ์š”๊ธˆ ์ง€๋ถˆ (์˜จํ”„๋ ˆ๋ฏธ์Šค๋Š” ๊ณ ์ •์  ๋น„์šฉ ์ง€๋ถˆ)
  • ์ปดํ“จํ„ฐ ์Šค๋ƒ…์ƒท์„ ์ด์šฉํ•ด ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์ฆ‰์‹œ ์ด์ฃผ ๊ฐ€๋Šฅ

๐Ÿ‘ย ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋‹จ์ 

  • ์šด์˜ ํ™˜๊ฒฝ ์ž์ฒด๊ฐ€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž์—๊ฒŒ ์ข…์†๋จ โ†’ ์„œ๋น„์Šค ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ™˜๊ฒฝ์—๋„ ์˜ํ–ฅ ๋ฏธ์นจ

๐Ÿ”ธย ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํ˜•ํƒœ

  • SaaS(Software as a Service): ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž๊ฐ€ ๋‹น์žฅ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ SW๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ
  • PaaS(Platform as a Service): ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž๊ฐ€ DB, ๊ฐœ๋ฐœ ํ”Œ๋ž˜ํผ๊นŒ์ง€ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ
  • IaaS(Infrastructure as a Service): ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž๊ฐ€ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๊นŒ์ง€ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ - AWS

๐Ÿ”ทย Deploy

: ๊ฐœ๋ฐœํ•œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ณผ์ •

  1. Development: Local ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ณผ์ •
    • Sample Data ์ด์šฉ
    • ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์–ด๋„ ๋ฌธ์ œ โŒ
    • ๋ชจ๋“  ๊ตฌ์„ฑ์›์ด ๊ฐ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰
  2. Integration: ๊ฐ์ž์˜ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ํ•ฉ์น˜๋Š” ๊ณผ์ •
    • ์ฝ”๋“œ๊ฐ„์˜ Conflict๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธ
    • ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ์ฝ”๋“œ์— ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”์ง€ ํ™˜๊น…
  3. Staging: ์‹ค์ œ ์ถœ์‹œ ๋‹จ๊ณ„์ธ Production ๋‹จ๊ณ„์™€ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ ์ง„ํ–‰
    • ๋ณต์ œ๋œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ํ…Œ์ŠคํŠธ
    • ๋ชจ๋“  ๊ด€๊ณ„์ž๋“ค์—๊ฒŒ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„
  4. Production: ๊ฐœ๋ฐœ๋œ ์„œ๋น„์Šค๋ฅผ ์ถœ์‹œํ•˜๋Š” ๋‹จ๊ณ„
    • ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ด์šฉ
    • ์‹ค์ œ๋กœ ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋˜๋Š” ๋‹จ๊ณ„

โœ‹ย ๋ฐฐํฌ์—์„  ํ™˜๊ฒฝ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™˜๊ฒฝ ์„ค์ •์„ ์ฝ”๋“œ์™€ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”!

๐Ÿง™โ€โ™€๏ธย ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ์ •์ƒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด??

  • ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํฌํŠธ ๋ถ„๊ธฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ™˜๊ฒฝ ๋ณ€์ˆ˜(env) ์„ค์ •ํ•˜๊ธฐ
    • ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ฝ”๋“œ ๋ณ€๊ฒฝ์—†์ด ๋ฐฐํฌ ๋•Œ๋งˆ๋‹ค ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ์ ˆ๋Œ€๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ์ƒ๋Œ€๊ฒฝ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ
  • Docker์™€ ๊ฐ™์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ž์ฒด๋ฅผ ํ†ต์ผ์‹œํ‚ค๋Š” ์†”๋ฃจ์…˜ ์‚ฌ์šฉ

๐Ÿ”ทย EC2

Elastic Compute Cloud (Elastic = ํƒ„๋ ฅ(์‹ ์ถ•์„ฑ)์žˆ๋Š”, ์œ ์—ฐํ•œ)

: AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค
๐Ÿ‘‰ย AWS์—์„œ ์›๊ฒฉ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ 1๋Œ€ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ
๐Ÿ‘‰ย AWS์—์„œ ๋น„์šฉ, ์„ฑ๋Šฅ, ์šฉ๋Ÿ‰ ๋ฉด์—์„œ ํƒ„๋ ฅ์ ์ธ ํด๋ผ์šฐ๋“œ ์ปดํ“จํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค

โœ‹ย Instance =ย AWS์—์„œ ๋นŒ๋ฆฌ๋Š” ์ปดํ“จํ„ฐ

๐Ÿ‘ย EC2 ์‚ฌ์šฉ ์žฅ์ 

  • ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„ ์งง์Œ
  • AMI๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์„ ํƒ ๊ฐ€๋Šฅ

๐Ÿ™Œย Amazon EC2์„ ํ†ตํ•ด ์›น์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์š”์ฒญํ•˜๋Š” ์„œ๋น„์Šค ์ œ๊ณต ๊ฐ€๋Šฅ

๐Ÿ”ธย AMI
: Amazon Machine Image. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์ด ํฌํ•จ๋œ ํ…œํ”Œ๋ฆฟ

๐Ÿ™Œย AWS EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค = AMI ํ† ๋Œ€๋กœ OS, CPU, RAM, ๋Ÿฐํƒ€์ž„ ๋“ฑ์ด ๊ตฌ์„ฑ๋œ ์ปดํ“จํ„ฐ๋ฅผ ๋นŒ๋ฆฌ๋Š” ๊ฒƒ

๐Ÿ”ทย RDS

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

๐Ÿ‘ย RDS ์‚ฌ์šฉ ์žฅ์ 

  • DB ์œ ์ง€ ๋ณด์ˆ˜ ๊ด€๋ จ ์ผ๋“ค์„ RDS์—์„œ ์ „์ ์œผ๋กœ ์ž๋™ ๊ด€๋ฆฌ โ†’ ์‚ฌ์šฉ์ž๋Š” ํŽธ๋ฆฌ
  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„ ์„ ํƒ์ง€ ์ œ๊ณต (Oracle, MySQL, MariaDB โ€ฆ)

๐Ÿ”ทย S3

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

๐Ÿ”ธย Cloude Storage
: ์ธํ„ฐ๋„ท ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ (์›น ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ์ €์žฅ๋œ ํŒŒ์ผ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ)

๐Ÿ‘ย S3 ์‚ฌ์šฉ ์žฅ์ 

  • ๋†’์€ ํ™•์žฅ์„ฑ โ†’ ๋ฐ์ดํ„ฐ ๋ฌดํ•œํžˆ ์ €์žฅ ๊ฐ€๋Šฅ (์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ๋ฌดํ•œ ํ™•์žฅ ๊ฐ€๋Šฅ)
  • ๊ฐ•๋ ฅํ•œ ๋‚ด๊ตฌ์„ฑ โ†’ ์ €์žฅ๋œ ํŒŒ์ผ ์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ โฌ‡๏ธ
  • ๋†’์€ ๊ฐ€์šฉ์„ฑ ๋ณด์žฅ โ†’ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ํŒŒ์ผ๋“ค์„ ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง
  • ๋‹ค์–‘ํ•œ ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค ์ œ๊ณต
    • Standard ํด๋ž˜์Šค: ๋ฐ์ดํ„ฐ์— ๋น ๋ฅธ ์†๋„๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋น ๋ฆ„ โ‡’ ๋ฐ์ดํ„ฐ์— ์ž์ฃผ ์•ก์„ธ์Šคํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๋‚˜ ๋ฒ”์šฉ์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์Œ
    • Glacier ํด๋ž˜์Šค: ๋ฐ์ดํ„ฐ์˜ ์žฅ๊ธฐ์ ์ธ ๋ณด๊ด€ ๋ชฉ์ ์œผ๋กœ, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋Š” ์†๋„๋Š” ๋Š๋ฆฌ์ง€๋งŒ, ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ๋น„์šฉ ์ €๋ ด
  • ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅ (S3์—์„  ๋ฒ„ํ‚ท์ด ์‚ฌ์šฉ์ž๋“ค์ด ์ •์  ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„ ์ œ๊ณต)
    • ์ •์  ํŒŒ์ผ: ์„œ๋ฒ„ ๊ฐœ์ž… ์—†์ด ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ
    • Web Hosting: ์„œ๋ฒ„ ํ•œ ๊ณต๊ฐ„์„ ์ž„๋Œ€ํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค๋กœ, ์›น ์‚ฌ์ดํŠธ ๋ฐฐํฌ, ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์„œ๋น„์Šค

๐Ÿ”ธย ๋ฒ„ํ‚ท(Bucket)
: S3์— ์ €์žฅ๋˜๋Š” ํŒŒ์ผ๋“ค์ด ๋‹ด๊ธฐ๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋กœ, ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ

  • ๋ฌดํ•œํžˆ ๋งŽ์€ ํŒŒ์ผ๋“ค ์ €์žฅ ๊ฐ€๋Šฅ
  • ๋ฒ„ํ‚ท ์ด๋ฆ„์€ ๊ฐ ๋ฆฌ์ „์—์„œ ๊ณ ์œ ํ•ด์•ผ ํ•จ
  • ๋ฒ„์ปท ์ •์ฑ… ์ƒ์„ฑ โ†’ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ ๊ฐ€๋Šฅ

๐Ÿ”ธย ๊ฐ์ฒด
: S3์—์„œ ๋ฒ„ํ‚ท์— ๋‹ด๊ธฐ๋Š” ํŒŒ์ผ (key-value ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ ํ•˜๋ฏ€๋กœ said ๊ฐ์ฒด!)

  • ํŒŒ์ผ & ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ
  • ๋ชจ๋“  ๊ฐ์ฒด๋Š” ๊ณ ์œ ํ•œ ํ‚ค๋ฅผ ๊ฐ€์ง (ํ‚ค๋Š” ์‹๋ณ„์ž ์—ญํ• )
  • URL ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ์ ‘๊ทผ ๊ฐ€๋Šฅ (All ๊ฐ์ฒด have ๊ณ ์œ  URL ์ฃผ์†Œ)
    • URL ์ฃผ์†Œ ํ˜•์‹: http://[๋ฒ„ํ‚ท ์ด๋ฆ„].S3.amazonaws.com/[๊ฐ์ฒด ํ‚ค]

โœ‹ย Region(๋ฆฌ์ „): AWS์—์„œ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์šด์˜ํ•˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„ ์œ„์น˜
โœ‹ย ๊ฐ€์šฉ ์˜์—ญ(Availability Zone): ๊ฐ ๋ฆฌ์ „ ์•ˆ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(IDC)

๐Ÿ”ทย Deploy Strategy(๋ฐฐํฌ ์ „๋žต)

๐Ÿ”ธย Client ๋ฐฐํฌ

  • S3๋ฅผ ์ด์šฉํ•ด ์ •์ ํŒŒ์ผ๋กœ ๋นŒ๋“œํ•˜์—ฌ ๋ฐฐํฌ
  • AWS์˜ CDN ์„œ๋น„์Šค์ธ CloudFront๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ˜ํ…์ธ ๋ฅผ ๋” ๋นจ๋ฆฌ ๋ฐฐํฌ ๊ฐ€๋Šฅ
    • ๊ฐ์ž์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ ์ €์žฅ โ†’ ๊ฐ€๊นŒ์šด ์ง€์—ญ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹

โž•ย Build

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

๐Ÿ”ธย Server ๋ฐฐํฌ

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

๐Ÿ”ธย Database ๋ฐฐํฌ

  • RDS๋ฅผ ํ†ตํ•ด EC2๋กœ ๋ฐฐํฌ๋œ Server Application ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐํฌ ๊ฐ€๋Šฅ

๐Ÿ”ธย DNS

  • ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์„œ๋น„์Šค์— ์ ‘์†ํ•˜๋ ค๋ฉด, Route53 ์„œ๋น„์Šค ์ด์šฉ


โ˜‘๏ธย Back-end ๋ฐฐํฌ ์‹ค์Šต

  • AWS ์ ‘์† ํ›„, EC2์˜ ์ธ์Šคํ„ด์Šค ์—ฐ๊ฒฐ (Sesiion Manager๋กœ ์—ฐ๊ฒฐ) โ†’ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰
    ```bash
    # ํ„ฐ๋ฏธ๋„์„ bash๋กœ ๋ณ€๊ฒฝ
    $ bash
    
    # ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
    $ cd ~
    
    # ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธ
    $ sudo apt update
    
    # nvm ์„ค์น˜
    $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    $ source ~/.nvm/nvm.sh
    
    # nvm ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ๋ฒ„์ „ ํ™•์ธํ•ด๋ณด๊ธฐ
    $ nvm โ€”version
    
    # node.js ์„ค์น˜
    $ nvm install node
    
    # npm ์„ค์น˜
    $ sudo apt install npm
    
    # git clone
    $ git clone [git repository url]
    $ cd [repository name]/server
    
    $ npm i
    $ sudo npm start
    
    # EC2 ์ธ์Šคํ„ด์Šค์˜ ํผ๋ธ”๋ฆญ IPv4 DNS ์ฃผ์†Œ๋กœ ์ ‘์† ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ
    # (HTTPS๊ฐ€ ์•„๋‹Œ HTTP๋กœ ์ ‘์†ํ•˜๊ธฐ)
    # http://ec2-00-00-0000.ap-northeast-2.compute.amazonaws.com/
    
    # ์ด๋ฏธ ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„ ํฌํŠธ๋ผ๋Š” ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ๊ฐ•์ œ๋กœ ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„ ํฌํŠธ ์ฃฝ์ด๊ธฐ
    $ sudo lsof -i:80
    $ sudo kill -9 [PID]
    ```

โœ…ย ๋ณด์•ˆ๊ทธ๋ฃน(Security Group), PM2 ์ถ”ํ›„ ์ถ”๊ฐ€ ํ•™์Šตํ•ด๋ณด๊ธฐ

๐Ÿ”ทย ๋ณด์•ˆ๊ทธ๋ฃน(Security Group)

๐Ÿ”ทย PM2(Process Manage)

: ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ๋งค๋‹ˆ์ €

$ npm install pm2 -g
$ pm2 start app.js (error)
$ pm2 log

# ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์œ„ํ•œ authbind ํŒจํ‚ค์ง€ ์ถ”๊ฐ€ ์„ค์น˜
$ sudo apt-get update
$ sudo apt-get install authbind
$ sudo touch /etc/authbind/byport/80
$ sudo chown ubuntu /etc/authbind/byport/80
$ sudo chmod 755 /etc/authbind/byport/80
$ authbind --deep pm2 update

โ˜‘๏ธย Front-end ๋ฐฐํฌ ์‹ค์Šต

  1. S3 ์ ‘์† โ†’ ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ

  2. ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ์ ํŠธ์˜ client ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ .env ํŒŒ์ผ์— ๋‚˜์˜ ์„œ๋ฒ„ ์ฃผ์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

    REACT_APP_API_URL = http://ec2-00-00-0000.ap-northeast-2.compute.amazonaws.com/
    $ npm install
     $ npm run build
  3. ์ƒ์„ฑ๋œ build ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ์„ S3์˜ ๋‚ด ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋„ฃ๊ณ  ์—…๋กœ๋“œํ•˜๊ธฐ

  4. index.html์˜ ๊ฐ์ฒด URL์ฃผ์†Œ ์ค‘ HTTPSโ†’HTTP ๋ณ€๊ฒฝ ํ›„ ์ ‘์†ํ•ด๋ณด๊ธฐ

profile
FE developer

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