๐Ÿ›’ AWS์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๋œ Electro ์ „์ž์ƒ๊ฑฐ๋ž˜ ์›น์‚ฌ์ดํŠธ (AWS Load Balancer ์‚ฌ์šฉ)

๋ฐœํ–‰: (2025๋…„ 12์›” 9์ผ ์˜คํ›„ 06:41 GMT+9)
6 min read
์›๋ฌธ: Dev.to

Source: Dev.to

๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ๊ฐ€์šฉ์„ฑ ์ „์ž์ƒ๊ฑฐ๋ž˜ ์›น์‚ฌ์ดํŠธ๋ฅผ AWS์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค:

  • Apache๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‘ ๊ฐœ์˜ EC2 ์ธ์Šคํ„ด์Šค
  • HTTP ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(ALB)
  • ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท๊ณผ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ํฌํ•จ๋œ ์ปค์Šคํ…€ VPC

AWS ์ธํ”„๋ผ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๋ฐฐ์šฐ๋Š” ์ดˆ๋ณด์ž์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜

  • VPC CIDR: 12.0.0.0/16
  • ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ทโ€ฏ1: 12.0.1.0/24 โ†’ EC2 ์ธ์Šคํ„ด์Šคโ€ฏ1 ํ˜ธ์ŠคํŒ…
  • ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ทโ€ฏ2: 12.0.3.0/24 โ†’ EC2 ์ธ์Šคํ„ด์Šคโ€ฏ2 ํ˜ธ์ŠคํŒ…
  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(HTTP, ํฌํŠธโ€ฏ80)
  • ํƒ€๊นƒ ๊ทธ๋ฃน: ๋‘ ์ •์ƒ์ ์ธ EC2 ์ธ์Šคํ„ด์Šค๋กœ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…
  • ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด: ํผ๋ธ”๋ฆญ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ์ œ๊ณต

์ปค์Šคํ…€ VPC ๋งŒ๋“ค๊ธฐ

  1. VPC ๋Œ€์‹œ๋ณด๋“œ โ†’ Your VPCs โ†’ Create VPC ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ์„ค์ •:
    • Name: ecommerce-vpc
    • IPv4 CIDR: 12.0.0.0/16
  3. Create ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท ๋งŒ๋“ค๊ธฐ

์„œ๋ธŒ๋„ท์ด๋ฆ„๊ฐ€์šฉ ์˜์—ญCIDR
1public-subnet-1a์˜ˆ: us-east-2a12.0.1.0/24
2public-subnet-2bus-east-2b12.0.3.0/24

๊ฐ ์„œ๋ธŒ๋„ท์„ ecommerce-vpc ์•„๋ž˜์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ ๋ฐ ์—ฐ๊ฒฐ

  1. Internet Gateways โ†’ Create ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. Name: ecommerce-igw.
  3. ์ƒ์„ฑ ํ›„ ecommerce-vpc ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ

  1. Route Tables ๋กœ ์ด๋™ํ•˜์—ฌ VPC์˜ ๊ธฐ๋ณธ ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. Edit Routes โ†’ Add :
    • Destination: 0.0.0.0/0
    • Target: ecommerce-igw
  3. ์ด ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”์„ ๋‘ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท(12.0.1.0/24 ๋ฐ 12.0.3.0/24)์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ Ubuntu EC2 ์ธ์Šคํ„ด์Šค ์‹คํ–‰

์ธ์Šคํ„ด์Šค์„œ๋ธŒ๋„ทํผ๋ธ”๋ฆญ IP๋ณด์•ˆ ๊ทธ๋ฃน
1public-subnet-1a (12.0.1.0/24)์ž๋™ ํ• ๋‹น โœ…web-sg
2public-subnet-2b (12.0.3.0/24)์ž๋™ ํ• ๋‹น โœ…web-sg
  • AMI: Ubuntuโ€ฏ22.04 LTS (x86_64)
  • ์ธ์Šคํ„ด์Šค ์œ ํ˜•: t2.micro (Free Tier ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
  • ๋ณด์•ˆ ๊ทธ๋ฃน(web-sg) ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™:
    • HTTP (ํฌํŠธโ€ฏ80) โ†’ 0.0.0.0/0
    • SSH (ํฌํŠธโ€ฏ22) โ†’ ์ž์‹ ์˜ IP(๋˜๋Š” ํ…Œ์ŠคํŠธ์šฉ 0.0.0.0/0)

์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ์Šคํฌ๋ฆฝํŠธ (Apache ์„ค์น˜)

#!/bin/bash
# ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ
apt-get update -y

# Apache2 ์„ค์น˜
apt-get install -y apache2

# ๋ถ€ํŒ… ์‹œ Apache ์ž๋™ ์‹œ์ž‘
systemctl enable apache2
systemctl start apache2

# /var/www/html ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ๋ฐ ๊ถŒํ•œ ์„ค์ •
mkdir -p /var/www/html
chmod -R 755 /var/www/html

# ์„ ํƒ ์‚ฌํ•ญ: ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ํŽ˜์ด์ง€ ์ƒ์„ฑ
cat /var/www/html/index.html

# Apache2๊ฐ€ Server1์—์„œ ์‹คํ–‰ ์ค‘
# ์ธ์Šคํ„ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ Server1์— ํ”„๋กœ๋น„์ €๋‹๋ฉ๋‹ˆ๋‹ค.
EOF

(๋‘ ์ธ์Šคํ„ด์Šค ๋ชจ๋‘ ๋™์ผํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Serverโ€ฏ2์šฉ ๋ฉ”์‹œ์ง€๋Š” ์ž์œ ๋กญ๊ฒŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜์„ธ์š”.)

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ(ALB) ๋งŒ๋“ค๊ธฐ

  1. EC2 โ†’ Load Balancers โ†’ Create Load Balancer โ†’ Application Load Balancer ์„ ํƒ.
  2. ์„ค์ •:
    • Name: ecommerce-alb
    • Scheme: Internetโ€‘facing
    • IP address type: IPv4
    • Listeners: HTTP (ํฌํŠธโ€ฏ80)
    • Availability Zones: ecommerce-vpc์™€ ๋‘ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท(12.0.1.0/24, 12.0.3.0/24) ์„ ํƒ
    • Security Group: alb-sg (HTTP๋ฅผ 0.0.0.0/0์—์„œ ํ—ˆ์šฉ)

ํƒ€๊นƒ ๊ทธ๋ฃน

  • Create new: ecommerce-tg
  • Protocol: HTTP, Port: 80
  • Health check path: /
  • ๋‘ Ubuntu EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๋“ฑ๋กํ•˜๊ณ  Include as pending ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€ํ†  ํ›„ ALB๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ํ…Œ์ŠคํŠธ

  1. ALB๊ฐ€ ํ™œ์„ฑํ™”๋  ๋•Œ๊นŒ์ง€ 2โ€“5๋ถ„ ์ •๋„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  2. ์ฝ˜์†”์—์„œ DNS ์ด๋ฆ„์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ecommerce-alb-xxxxxx.us-east-2.elb.amazonaws.com).
  3. ๋ธŒ๋ผ์šฐ์ €์—์„œ http:// ๋’ค์— ๋ถ™์—ฌ์„œ ์—ฝ๋‹ˆ๋‹ค.
  4. ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ต๋Œ€๋กœ ํ‘œ์‹œ๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
    • โ€œServerโ€ฏ1 (Subnet:โ€ฏ12.0.1.0/24)โ€
    • โ€œServerโ€ฏ2 (Subnet:โ€ฏ12.0.3.0/24)โ€

๋‘ ์ธ์Šคํ„ด์Šค ๋ชจ๋‘ ํƒ€๊นƒ ๊ทธ๋ฃน์—์„œ Healthy ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์›น์‚ฌ์ดํŠธ ํŒŒ์ผ ๋ฐฐํฌ

  1. ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ ํด๋”(์˜ˆ: Electro)๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

  2. SSH ํ‚ค ๊ถŒํ•œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค:

    chmod 400 test-ALB-demo.pem
  3. Serverโ€ฏ1์— ํŒŒ์ผ ๋ณต์‚ฌ (ํผ๋ธ”๋ฆญ IP๋Š” ์ธ์Šคํ„ด์Šค IP๋กœ ๊ต์ฒด):

    scp -i test-ALB-demo.pem -r Electro/* ubuntu@3.139.70.220:/tmp/
  4. Serverโ€ฏ1์—์„œ Apache ์›น ํด๋”๋กœ ์ด๋™:

    ssh -i test-ALB-demo.pem ubuntu@3.139.70.220
    sudo rm -rf /var/www/html/*
    sudo mv /tmp/* /var/www/html/
    exit
  5. Serverโ€ฏ2์—๋„ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰ (IP๋ฅผ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค IP๋กœ ๊ต์ฒด):

    scp -i test-ALB-demo.pem -r Electro/* ubuntu@18.217.149.70:/tmp/
    ssh -i test-ALB-demo.pem ubuntu@18.217.149.70
    sudo rm -rf /var/www/html/*
    sudo mv /tmp/* /var/www/html/
    exit

๊ฒ€์ฆ

  • ์ง์ ‘ ์ ‘๊ทผ:

    • http://3.139.70.220 โ†’ ์›น์‚ฌ์ดํŠธ ํ™•์ธ
    • http://18.217.149.70 โ†’ ๋™์ผํ•œ ์›น์‚ฌ์ดํŠธ ํ™•์ธ
  • ALB๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ: ALB DNS ์ด๋ฆ„์„ ์—ด๊ณ  ์ƒˆ๋กœ ๊ณ ์นจํ•˜๋ฉด ๋‘ ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜์—์„œ ์‚ฌ์ดํŠธ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌ (์„ ํƒ ์‚ฌํ•ญ)

์ž‘์—…์ด ๋๋‚ฌ๋‹ค๋ฉด EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ , ALB, ํƒ€๊นƒ ๊ทธ๋ฃน, ๋ณด์•ˆ ๊ทธ๋ฃน, ์„œ๋ธŒ๋„ท ๋ฐ VPC๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์ง€์†์ ์ธ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๊ฐ€ ์‹ฑ๊ฐ€ํฌ๋ฅด์—์„œ๋Š” ๋А๋ฆฌ๊ณ  ์œ ๋Ÿฝ์—์„œ๋Š” ์™„๋ฒฝํ–ˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š”.

๋ฌธ์ œ: ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ œ๋Œ€๋กœ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ API๋Š” Cloudflare ๋’ค์— ์œ„์น˜ํ•˜๊ณ  ์—ฃ์ง€ ์บ์‹ฑ์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๋Œ€์‹œ๋ณด๋“œ์—์„œ๋Š” p95 ์‘๋‹ต ์‹œ๊ฐ„์ด 100 ms ๋ฏธ๋งŒ์ž„์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. Af...

๋‚˜๋Š” Game Boy๋ฅผ ChatGPT ์•ˆ์— ๋„ฃ์—ˆ๋‹ค (ChatGPT Apps)

์†Œ๊ฐœ: ChatGPT ์•ฑ์€ ์•„์ง BETA ๋‹จ๊ณ„์ด์ง€๋งŒ, ์–ด์ œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ์•ฑ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ œ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Game Boy ์•ˆ์— ๋งž์ถ”์–ด ๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

spaceorbust โ€“ GitHub ์ปค๋ฐ‹์œผ๋กœ ์šฐ์ฃผ ๋ฌธ๋ช…์„ ์›€์ง์ด๋Š” ํ„ฐ๋ฏธ๋„ RPG

๊ฐœ์š”: ์‹ค์ œ GitHub ํ™œ๋™์ด ์ธ๋ฅ˜์˜ ์šฐ์ฃผ ์ง„์ถœ์„ ์ด‰์ง„ํ•˜๋Š” ํ„ฐ๋ฏธ๋„ RPG. - ์ปค๋ฐ‹์€ ์—๋„ˆ์ง€๋กœ ๋ณ€ํ™˜๋œ๋‹ค - ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์žฌ๋ฃŒ๊ฐ€ ๋œ๋‹ค - ์ด์Šˆโ€ฆ