Classic Architecture (1)

์‹ค์ œ ์˜›๋‚ ์— ์‚ฌ์šฉ๋˜์—ˆ๋˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์ž.

ํ˜„์žฌ ๋งŽ์€ ๊ธฐ์—…๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ˜„๋Œ€์  ์›น ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋กœ ๋ฐœ์ „์‹œ์ผœ๋ณด์ž.

What Is The Time ๋ผ๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด๋ณด์ž

Section Introduction

  • ์ด ์†”๋ฃจ์…˜ ์•„ํ‚คํ…์ณ๋“ค์€ ์ด AWS ๊ณต๋ถ€์ฝ”์Šค์˜ ๊ฝƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ชจ๋“  ๊ธฐ์ˆ ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ๊ฐ™์ด ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๋Š”๋‹ค.
  • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ƒ˜ํ”Œ์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ์†”๋ฃจ์…˜ ์•„ํ‚คํ…์ฒ˜๋“ค์„ ์‚ดํŽด๋ณธ๋‹ค.
    • What Is The Time.com
    • MyClothes.com
    • MyWordPress.com
    • Instantiating applications quickly (์•ฑ์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ๋™์‹œํ‚ค๋Š”๋ฒ•?)
    • Beanstalk (์—˜๋ผ์Šคํ‹ฑ ๋นˆ์Šคํ†ก)

Stateless Web App : WhatIsTheTime.com

  • WhatIsTheTime.com ์‚ฌ์ดํŠธ๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์ด ๋ช‡์‹œ ์ธ์ง€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์ž‘๊ฒŒ ์‹œ์ž‘ํ•˜๊ธธ ์›ํ•˜๊ณ  downtime์„ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค. *downtime: ์‹œ์Šคํ…œ์„ ์ด์šฉํ•  ์ˆ˜ ์—†๋Š” ์‹œ๊ฐ„
  • ๋‹ค์šดํƒ€์ž„์„ ์ œ๊ฑฐํ• ์ˆ˜๋ก, ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธด๋‹ค.

Stateless Web App : What time is it?

๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ํ•ด๋ณด์ž.

image-20220713012547447

  • User ์™€ t2.micro EC2 ๊ฐ€ ์žˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๊ฐ„์„ ๋ฌผ์–ด๋ณธ๋‹ค.
  • 17:30๋ถ„์ด๋ผ๊ณ  ๋‹ตํ•œ๋‹ค.

  • ํ•ด๋‹น EC2 ๋Š” ๊ณ ์ •IP์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. (Elastic IP Address)
    • ๋ฌด์Šจ ์ผ์ด ์ƒ๊ธฐ๋ฉด ์žฌ์‹œ์ž‘ํ•ด๋„ IP๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.
    • ํƒ„๋ ฅ์  IP์ฃผ์†Œ๋ฅผ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค.

Scaling vertically

ํ•ด๋‹น ์›น์ด ์ธ๊ธฐ๊ฐ€ ๋งŽ์•„์ ธ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋Š˜์–ด๋‚ฌ๋‹ค.

์ˆ˜์งํ™•์žฅ์„ ํ•˜๋Š” ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด๋ณด์ž.

image-20220713012941388

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์กŒ๋‹ค. (= ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€)
  • t2.micro EC2 ๋กœ๋Š” ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋ฒ„๊ฑฐ์›Œ ์„ฑ๋Šฅ์„ ์ข€ ๋” ํฐ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค.
    • ์ˆ˜์ง ํ™•์žฅ ์ด๋ผ๊ณ  ํ•œ๋‹ค.
    • CPU, Memory ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ์„ ๊ทผ๊ฑฐ๋กœ ํŒ๋‹จํ•œ๋‹ค.
  • t2.micro => m5.large ์œ ํ˜•์œผ๋กœ ๊ต์ฒด๋ฅผ ์›ํ•œ๋‹ค
  • ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ ์‹œํ‚ค๊ณ , ์œ ํ˜•์„ ๋ฐ”๊พธ๊ณ , ๊ทธ ํ›„์— ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.
    • ํƒ„๋ ฅ์ IP ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ IP๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜๊ณ , ์‚ฌ๋žŒ๋“ค์€ ์—ฌ์ „ํžˆ App์— ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.
    • m5.large ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋™์•ˆ downtime์ด ๋ฐœ์ƒ
    • ์‚ฌ์šฉ์ž๋“ค์€ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š”๋‹ค. (ํ•ด๊ฒฐ์€ ๋ฌ์œผ๋‚˜ ์ž˜๋œ ์ผ€์ด์Šค๊ฐ€ ์•„๋‹ˆ๋‹ค.)

Scaling horizontally (1)

ํ•ด๋‹น ์›น์ด ์ธ๊ธฐ๊ฐ€ ๋”์šฑ ๋งŽ์•„์ ธ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€ํญ ์ฆ๊ฐ€ํ–ˆ๋‹ค.

์ด์ œ๋Š” ์ˆ˜ํ‰ ํ™•์žฅ์„ ํ•ด์•ผ ํ•  ๋•Œ์ด๋‹ค.

image-20220713013544176

  • ์ด m5.large EC2 ๋Š” ํ•˜๋‚˜์˜ public IP๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , Elastic IP๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
  • ๋งŽ์€ User ๊ฐ€ ์œ ์ž…๋˜์–ด, ๋ชจ๋‘๋“ค ํ˜„์žฌ ์‹œ๊ฐ„์„ ์š”์ฒญํ•œ๋‹ค.
  • ์ˆ˜ํ‰ ํ™•์žฅ์„ ์ง„ํ–‰ํ•œ๋‹ค.
    • ๋ชจ๋‘ m5.large EC2
    • ์ด๊ฒƒ๋“ค ๋ชจ๋‘ ํƒ„๋ ฅ์ IP๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.
  • ์ฆ‰, 3๊ฐœ์˜ EC2, 3๊ฐœ์˜ ElasticIP ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.
  • User๋“ค์ด EC2 ๋“ค๊ณผ ํ†ต์‹ ํ•˜๋ ค๋ฉด, ์ด 3๊ฐœ์˜ ElasticIP์˜ ์ •ํ™•ํ•œ ๊ฐ’์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.
    • ํ•œ๊ณ„๊ฐ€ ์ƒ๊ธด๋‹ค.
    • User๋“ค์€ ์ ์  ๋” ๋งŽ์€ IP๋ฅผ ์•Œ์•„์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค.
    • ์šฐ๋ฆฌ๋Š” ๋” ๋งŽ์€ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค.

Scaling horizontally (2) - Route53

์ˆ˜ํ‰ํ™•์žฅ์„ ๊ทธ๋Œ€๋กœ ํ•˜๋˜, ElasticIP ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

๋งŽ์•„์งˆ์ˆ˜๋ก ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Elastic IP๋Š” ํ•œ ๊ณ„์ •์—์„œ Region ๋งˆ๋‹ค 5๊ฐœ๊นŒ์ง€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

Route53 ์„ ์ด์šฉํ•˜์ž!

image-20220713014223009

  • Elastic IP ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , Route53 ์„ ํ™œ์šฉํ•œ๋‹ค.
  • Route53์„ ์ด์šฉํ•ด api.whatisthetime.com ์˜ URL ์„ ์„ค์ •ํ–ˆ๋‹ค.
  • TTL ์€ 1์‹œ๊ฐ„์œผ๋กœ ์„ค์ •ํ•˜๊ณ , A record ๋กœ ์„ค์ •
  • A record ๋กœ ์„ค์ •ํ–ˆ๋‹ค๋Š”๊ฑด, DNS ๋กœ๋ถ€ํ„ฐ IP๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›๋Š”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
    • Route53 ์˜ A record ๋Š” IP ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค
  • User ๋“ค์ด Route53 ์—๊ฒŒ Query ํ•œ๋‹ค.
  • User ๋“ค์€ IP ์ฃผ์†Œ๋“ค์„ ์–ป๊ฒŒ ๋œ๋‹ค.
  • ์ด๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•˜๊ณ , Route53 ์ด ์—…๋ฐ์ดํŠธ๋  ๊ฒƒ์ด๋‹ˆ, ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • User ๋“ค์€ EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ๊ด€๋ฆฌํ•  Elastic IP ๋„ ๋”์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, Route53 ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ๋‹นํ•œ ๊ฐœ์„ ์„ ์ด๋ฃจ์—ˆ๋‹ค.

Scaling horizontally (3) - adding and removing EC2 Instance

์ด๋ฒˆ์—๋Š”, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ฆ‰์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅํ•˜๊ณ  ์‹ถ์–ด์กŒ๋‹ค.

image-20220713020603229

  • ๊ฐ€์žฅ ์œ„์ชฝ EC2 ์ œ๊ฑฐํ•˜๊ฒŒ๋˜๋ฉด, ์œ„์ชฝ ์‚ฌ์šฉ์ž๋“ค์ด ์ด m5.large EC2 ์™€ ํ†ต์‹ ์ค‘์ด์—ˆ๋Š”๋ฐ ์‚ฌ๋ผ์กŒ๋‹ค.
  • TTL์ด 1์‹œ๊ฐ„์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— Route53 ์— Queryํ•˜๋ฉด ๋™์ผํ•œ ์‘๋‹ต์„ 1์‹œ๊ฐ„๋™์•ˆ ๋ฐ›๊ฒŒ ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ์‚ฌ์šฉ์ž๋“ค์ด 1์‹œ๊ฐ„๋™์•ˆ ๊ทธ ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๋ ค ํ•˜์ง€๋งŒ, ์ธ์Šคํ„ด์Šค๊ฐ€ ์‚ฌ๋ผ์ ธ์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ์ด๋‹ค.
  • User๋“ค์ด 1์‹œ๊ฐ„๋™์•ˆ ์ธ์Šคํ„ด์Šค์— ์ ‘์†์„ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.
    • 1์‹œ๊ฐ„ ์ดํ›„์—๋Š”, ๋‹ค์‹œ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€๋งŒ, ์ด๋Š” ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•
    • ์šฐ๋ฆฌ์˜ App์ด ๋‹ค์šด๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Scaling horizontally (4) - with a load balancer

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์œ„์˜ ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•ด๋ณด์ž.

image-20220713021114384

  • Public EC2 ๋Š” ์ด์ œ ๋”์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Private EC2 ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ด๋“ค์„ ๊ฐ™์€ ๊ฐ€์šฉ์˜์—ญ(AZ) ์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค.
  • 3๊ฐœ์˜ m5.large EC2 ๊ฐ€ ์žˆ๋‹ค.
  • ์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋ฉด, ELB ๋Š” ๊ณต๊ฐœ๋˜๊ฒ ์ง€๋งŒ private EC2 ๋Š” ๋’ค์— ์ˆจ์–ด์žˆ๊ฒŒ ๋œ๋‹ค.
  • ELB ์—๋Š” Health Check ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค.
    • ํ•œ EC2 ๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น EC2 ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „์†กํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • SG (Security Group) ์„ ํ™œ์šฉํ•˜์—ฌ, ์ด ๋‘˜ ์‚ฌ์ด์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ œํ•œํ•˜๊ฒŒ ๋œ๋‹ค.

  • Alias Record (๋ณ„์นญ ๋ ˆ์ฝ”๋“œ) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ELB ์™€ ์—ฐ๊ฒฐํ•œ๋‹ค.
    • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ IP์ฃผ์†Œ๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ ๋•Œ๋ฌธ์— A record ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
    • alias record ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด route53 ์œผ๋กœ๋ถ€ํ„ฐ ELB๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.
  • ์‚ฌ์šฉ์ž๋“ค์€ ์ด์ œ Route53์— DNS Query๋ฅผ ํ•˜์—ฌ ELB ์˜ ์ฃผ์†Œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
  • User๋“ค์€ ELB์— ์ ‘์†ํ•˜๊ณ , ELB๋Š” EC2 ์ธ์Šคํ„ด์Šค๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œํ‚จ๋‹ค.
    • ํŠธ๋ž˜ํ”ฝ์˜ ๊ท ํ˜•์„ ์žก๊ฒŒ ๋œ๋‹ค.
    • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ ์ด ์ธ์Šคํ„ด์Šค๋“ค์„ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐํ•˜๊ณ  ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์–ด์ง„๋‹ค.
    • Health Check ๊ธฐ๋Šฅ ๋•๋ถ„์— ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ downtime ๋„ ์—†์–ด์ง„๋‹ค.
  • ๋‹จ์ 
    • ์ˆ˜๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š”๊ฒƒ์€ ์–ด๋ ต๋‹ค.
    • ํ•ด๋‹น AZ์— ์ง€์ง„์ด ๋ฐœ์ƒํ•˜์—ฌ ๋‹ค์šด๋˜๋ฉด ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ๋œ๋‹ค. (๋‹จ์ผ AZ ์‚ฌ์šฉ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ)
  • ํ•ด๊ฒฐ
    • ASG (Auto Scaling Group) ์„ ํ™œ์šฉํ•œ๋‹ค.

Scaling horizontally (5) - with an Auto Scaling Group

ASG ์˜คํ† ์Šค์ผ€์ผ๋ง ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜์ž.

image-20220713021926100

  • ์ด๋ฒˆ์—๋Š” ASG ์ด private EC2 ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•œ๋‹ค.
  • ์ฆ‰, ๊ธฐ๋ณธ์ ์œผ๋กœ ASG์ด ์š”์ฒญ์— ๋”ฐ๋ผ ํ™•์žฅํ•˜๋„๋ก ํ•œ๋‹ค. (ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์ง€๋ฉด ํ™•์žฅ, ์ ์–ด์ง€๋ฉด ์ถ•์†Œ)
  • App์ด downtime ์ด ์‚ฌ๋ผ์ง€๊ณ , ASG ๊ณผ ELB ๋กœ ์ธํ•ด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ƒ๋‹นํžˆ ์•ˆ์ •์ ์ด ๋˜์—ˆ๋‹ค.

  • ์ง€์ง„์ด ๋ฐœ์ƒํ•˜์—ฌ, ๊ฐ€์šฉ์˜์—ญ(AZ) 1๋ฒˆ์ด ๋‹ค์šด๋˜์—ˆ๋‹ค.
    • ์šฐ๋ฆฌ์˜ App๋„ ์™„์ „ํžˆ ๋‹ค์šด๋œ๋‹ค.
    • ์‚ฌ์šฉ์ž๋“ค์ด ๋ถˆ๋งŒ์„ ๊ฒช๋Š”๋‹ค.
  • ๊ฐ€์šฉ์„ฑ์„ ๋†’์ด๋ ค๋ฉด ๋‹ค์ค‘AZ ์‚ฌ์šฉ์„ ์ถ”์ฒœํ•œ๋‹ค.

Making our App multi-AZ

๋‹ค์ค‘AZ ์„ ํ™œ์šฉํ•˜์—ฌ ์žฌ๋‚œ์— ๋Œ€๋น„ํ•˜์ž.

image-20220713022606883

  • AZ1, AZ2, AZ3 ์— ๊ฐ๊ฐ 2๊ฐœ, 2๊ฐœ, 1๊ฐœ์˜ EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋‹ค.
  • AZ1 ๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„, AZ2 AZ3 ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ์•ฑ์„ Multi AZ ๋กœ ๋งŒ๋“ค์—ˆ๊ณ , ๋†’์€ ๊ฐ€์šฉ์„ฑ์„ ํ™•๋ณดํ–ˆ๋‹ค.
  • ์žฅ์•  ๋ฐœ์ƒ์—๋„ ๋Œ€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค.

๋” ๊ฐœ์„ ํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณด์ž

image-20220713023015725

  • 2๊ฐœ ์˜ AZ๊ฐ€ ์žˆ๋‹ค.
  • ๊ฐ๊ฐ์˜ AZ ์—๋Š” ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ EC2 ๊ฐ€ ์‹คํ–‰์ค‘
  • ์šฉ๋Ÿ‰์„ ์˜ˆ์•ฝํ•˜๋ฉด ์–ด๋–จ๊นŒ?
  • App์˜ ๋น„์šฉ์„ ์ค„์ด๋Š”๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
  • 1๋…„ ๋‚ด๋‚ด 2๊ฐœ์˜ EC2 ๊ฐ€ ํ•ญ์ƒ ์‹คํ–‰๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ASG ์˜ ์šฉ๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ˆ์•ฝํ•จ์œผ๋กœ์จ ๋ฏธ๋ž˜์— ์ƒ๋‹นํ•œ ๋น„์šฉ์ ˆ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒˆ๋กœ์šด EC2๊ฐ€ ์‹คํ–‰๋˜๋”๋ผ๋„, ์ผ์‹œ์ ์ด๋ฉฐ, ํŠธ๋ž˜ํ”ฝ์— ๋”ฐ๋ฅธ๊ฒƒ์€ ๊ดœ์ฐฎ๋‹ค.
  • ๊ทน๋‹จ์ ์œผ๋กœ ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๊ธฐ ์œ„ํ•ด ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Summary

์ด๋ฒˆ ํฌ์ŠคํŒ…์˜ ํ•ต์‹ฌ ์ •๋ฆฌ

๊ทนํžˆ ์ž‘์€ ์•„ํ‚คํ…์ฒ˜๋ถ€ํ„ฐ ๋‹ค์ค‘AZ ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ๊นŒ์ง€ ์ง„ํ–‰๋œ ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
์ด ๊ฒƒ์ด ๋ฐ๋ธŒ์˜ต์Šค ๊ฐœ๋ฐœ์ž, ์†”๋ฃจ์…˜ ์•„ํ‚คํ…ํŠธ๋กœ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋‚˜์•„๊ฐ€์•ผ ํ•  ๋ฐฉํ–ฅ์ด๋‹ค.

์š”๊ตฌ์‚ฌํ•ญ์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ณ , ์ด ์š”๊ตฌ์‚ฌํ•ญ์— ์–ด๋–ป๊ฒŒ ๋Œ€์‘ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„์•ผํ•œ๋‹ค.

  • ์ •๋ฆฌ
    • EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ public IP์™€ private IP๋ฅผ ๊ฐ–๋Š” ๋ชฉ์ 
    • Elastic IP vs Route53 vs ELB ์˜ ์‚ฌ์šฉํ• ๋•Œ ์žฅ/๋‹จ์  ๋ฐ ์ฐจ์ด
    • Route53 TTL, A record, Alias record ์ฐจ์ด ๋ฐ ๋ณ„์นญ๋ ˆ์ฝ”๋“œ์™€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์‚ฌ์šฉ
    • EC2 ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ๊ณผ ASG ์ด ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ ์ฐจ์ด
    • ์žฌ๋‚œ์—์„œ ์‚ด์•„๋‚จ๊ธฐ ์œ„ํ•œ ๋‹ค์ค‘AZ ์„ค์ •
    • ELB Health Check๋ฅผ ํ†ตํ•ด ์ฃฝ์€์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ ์•ˆ๊ฐ€๊ฒŒ ๋ง‰๋Š” ์„ค์ •
    • EC2 ๊ฐ€ ELB ๋กœ๋ถ€ํ„ฐ์˜ ํŠธ๋ž˜ํ”ฝ๋งŒ ๋ฐ›๋„๋ก ๋ณด์•ˆ ๊ทธ๋ฃน ๊ทœ์น™์„ ์„ค์ •
    • ๋น„์šฉ์ ˆ๊ฐ์„ ์œ„ํ•œ ์šฉ๋Ÿ‰ ์˜ˆ์•ฝ (ํ•ญ์ƒ 2๋Œ€์˜ EC2 ์‹คํ–‰ ์‹œ, ์˜ˆ์•ฝํ•˜๋ฉด ๋น„์šฉ ์ ˆ๊ฐ ๊ฐ€๋Šฅ)
  • AWS ์—์„œ์˜ ์ข‹์€ ์•„ํ‚คํ…์ฒ˜
    • ๋น„์šฉ
      • ์ˆ˜์งํ™•์žฅ, ์ˆ˜ํ‰ํ™•์žฅ, ASG, ์ธ์Šคํ„ด์Šค ์˜ˆ์•ฝ
    • ์„ฑ๋Šฅ
      • ์ˆ˜์ง ํ™•์žฅ, ELB, ASG
    • ์‹ ๋ขฐ์„ฑ
      • ํŠธ๋ž˜ํ”ฝ ์•ˆ์ •์  ์ „๋‹ฌ, Route53, ELB, ASG, Multi AZ
    • ๋ณด์•ˆ
      • SG
    • ์šด์˜
      • ์ˆ˜๋™ํ”„๋กœ์„ธ์Šค => ASG ์™„์ „ ์ž๋™ํ™”

ํƒœ๊ทธ: ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ