Skip to main content

17E. Route 53 DNS Failover ํ™œ์šฉํ•˜๊ธฐ

About 2 minAWScrashcoursepyrasisawsamazon-web-services

17E. Route 53 DNS Failover ํ™œ์šฉํ•˜๊ธฐ ๊ด€๋ จ

๋ชฉ์ฐจ

์•„๋งˆ์กด ์›น ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ 

17์žฅ - 5. Route 53 DNS Failover ํ™œ์šฉํ•˜๊ธฐ

์•„๋งˆ์กด ์›น ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ 

Route 53์˜ DNS Failover ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. DNS Failover ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด EC2 ์ธ์Šคํ„ด์Šค 2๊ฐœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. '4.3 EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๊ธฐ'๋ฅผ ์ฐธ์กฐํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ 2๊ฐœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  '6์žฅ ๊ณ ์ • IP๋ฅผ ์ œ๊ณตํ•˜๋Š” Elastic IP'๋ฅผ ์ฐธ์กฐํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— Elastic IP๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ EC2 ์ธ์Šคํ„ด์Šค(Example Server)๋ฅผ ๋งŒ๋“ค์–ด๋†“์•˜๋‹ค๋ฉด ์ถ”๊ฐ€๋กœ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  '12.3.1 EC2์™€ CloudFront ์—ฐ๋™ํ•˜๊ธฐ'๋ฅผ ์ฐธ์กฐํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค์— Node.js๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์›น ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹ค์Šต์€ EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ, ์›น ์„œ๋ฒ„ ์„ค์น˜ ๋“ฑ ์ƒ๋žต๋˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์•ž ๋ถ€๋ถ„์„ ํ•™์Šตํ•œ ๋’ค ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ Primary๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Primary)์— ์ ‘์†ํ•˜์—ฌ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ ๋’ค app.js๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

app.js
var express = require('express');
var app = express();

app.get(['/', '/index.html'], function (req, res) {
  res.send('EC2 Primary');
});

app.listen(<span class="token number">80);

ํŒŒ์ผ ์ €์žฅ์ด ๋๋‚ฌ์œผ๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo node app.js
EC2 ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์—์„œ EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
EC2 ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์—์„œ EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋Š” Failover ๊ธฐ๋Šฅ์„ ์œ„ํ•œ Secondary๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Secondary)์— ์ ‘์†ํ•˜์—ฌ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ ๋’ค app.js๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

app.js
var express = require('express');
var app = express();

app.get(['/', '/index.html'], function (req, res) {
  res.send('EC2 Secondary');
});

app.listen(<span class="token number">80);

ํŒŒ์ผ ์ €์žฅ์ด ๋๋‚ฌ์œผ๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo node app.js
EC2 ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์—์„œ EC2 ์ธ์Šคํ„ด์Šค(Secondary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
EC2 ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์—์„œ EC2 ์ธ์Šคํ„ด์Šค(Secondary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
Route 53 ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ์™ผ์ชฝ <FontIcon icon="iconfont icon-select"/>๋ฅผ ํด๋ฆญํ•˜๊ณ , <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
Route 53 ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ์™ผ์ชฝ [Health Checks]๋ฅผ ํด๋ฆญํ•˜๊ณ , [Create Health Check] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค(Primary)์— ๋Œ€ํ•œ Health Check๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Name: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ ์ฒดํฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ๋น„์›Œ๋‘ก๋‹ˆ๋‹ค.
  • Protocol: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ํ”„๋กœํ† ์ฝœ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. HTTP, HTTPS, TCP๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Specify Endpoint By: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ๋•Œ IP ์ฃผ์†Œ๋กœ ํ• ์ง€, ๋„๋ฉ”์ธ์œผ๋กœ ํ• ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • IP Address: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ๋•Œ ์ ‘๊ทผํ•  IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Host Name: ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๋Š” ์„œ๋ฒ„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.
  • Port: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ๋•Œ ์ ‘๊ทผํ•  ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Path: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ๋•Œ ์ ‘๊ทผํ•  ํŒŒ์ผ์˜ URL์ž…๋‹ˆ๋‹ค. /index.html, /hello/healthckeck.html๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ๋น„์›Œ๋‘ก๋‹ˆ๋‹ค.
  • Request Interval: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ ์ฒดํฌ ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 30์ดˆ์™€ 10์ดˆ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 10์ดˆ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Failure Threshold: ์„œ๋ฒ„ ์ ‘๊ทผ์— ์‹คํŒจํ–ˆ์„ ๋•Œ ์žฌ์‹œ๋„ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Enable String Match: ์„œ๋ฒ„์—์„œ ์ถœ๋ ฅํ•˜๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ(body)์—์„œ ํŠน์ • ๋ฌธ์ž์—ด๋กœ ์ƒํƒœ๋ฅผ ํŒ๋‹จํ• ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Search String: ํŒŒ์ผ ๋‚ด์šฉ์—์„œ ๊ฒ€์ƒ‰ํ•  ๋ฌธ์ž์—ด์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • URL: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•  ๋•Œ ์ ‘๊ทผํ•  URL ์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค์ •ํ•œ ๋‚ด์šฉ๋Œ€๋กœ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • Health Check Type: ์„œ๋ฒ„ ๋™์ž‘ ์ƒํƒœ ์ฒดํฌ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค์ •ํ•œ ๋‚ด์šฉ๋Œ€๋กœ ์ž๋™ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์š”๊ธˆ์— ๊ด€ํ•ด์„œ๋Š” View Pricing ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์‹ญ์‹œ์˜ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด [Create] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
Route 53 Health Check ๋ชฉ๋ก์— Health Check๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Route 53 Health Check ๋ชฉ๋ก์— Health Check๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ Hosted Zones๋ฅผ ํด๋ฆญํ•˜์—ฌ Hosted Zone ๋ชฉ๋ก์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„๋ฉ”์ธ์„ ์„ ํƒํ•˜๊ณ  ์œ„์ชฝ <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ Hosted Zones๋ฅผ ํด๋ฆญํ•˜์—ฌ Hosted Zone ๋ชฉ๋ก์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„๋ฉ”์ธ์„ ์„ ํƒํ•˜๊ณ  ์œ„์ชฝ [Go to Record Sets] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
๋„๋ฉ”์ธ์˜ ๋ ˆ์ฝ”๋“œ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์œ„์ชฝ <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
๋„๋ฉ”์ธ์˜ ๋ ˆ์ฝ”๋“œ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์œ„์ชฝ [Create Record Set] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค(Primary)์— ๋Œ€ํ•œ A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Name: ์ƒ์„ฑํ•  ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. examplefailover๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Type: ๋ ˆ์ฝ”๋“œ ์ข…๋ฅ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ A - IPv4 address๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Alias: IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • TTL: Time To Live์˜ ์•ฝ์ž์ด๋ฉฐ A ๋ ˆ์ฝ”๋“œ๊ฐ€ ๊ฐฑ์‹ ๋˜๋Š” ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. DNS Failover ๊ธฐ๋Šฅ์€ 60์ดˆ๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ 60์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Value: ๋„๋ฉ”์ธ ๋„ค์ž„์„ ์ฟผ๋ฆฌํ–ˆ์„ ๋•Œ ์•Œ๋ ค์ค„ IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Routing Policy: ๋ผ์šฐํŒ… ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Failover๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Failover Record Type: ํ˜„์žฌ ๋ ˆ์ฝ”๋“œ๊ฐ€ Primary์ธ์ง€, Secondary์ธ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Primary์ด๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Set ID: Failover ๋ ˆ์ฝ”๋“œ๋ผ๋ฆฌ ์„œ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ID์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Associate with Health Check: Health Check ์„ค์ •๊ณผ ์—ฐ๋™ํ• ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Yes๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Health Check to Associate: ํ˜„์žฌ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  Health Check ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐฉ๊ธˆ ์ƒ์„ฑํ•œ EC2 ์ธ์Šคํ„ด์Šค(Primary) Health Check๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด [Create] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ์˜ Primary A ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ„์ชฝ <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Secondary A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์œ„์ชฝ [Create Record Set] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Secondary A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค(Secondary) ๋Œ€ํ•œ A ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Name: ์ƒ์„ฑํ•  ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. examplefailover๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Type: ๋ ˆ์ฝ”๋“œ ์ข…๋ฅ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ A - IPv4 address๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Alias: IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • TTL: Time To Live์˜ ์•ฝ์ž์ด๋ฉฐ A ๋ ˆ์ฝ”๋“œ๊ฐ€ ๊ฐฑ์‹ ๋˜๋Š” ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. DNS Failover ๊ธฐ๋Šฅ์€ 60์ดˆ๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ 60์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Value: ๋„๋ฉ”์ธ ๋„ค์ž„์„ ์ฟผ๋ฆฌํ–ˆ์„ ๋•Œ ์•Œ๋ ค์ค„ IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Secondary)์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • Routing Policy: ๋ผ์šฐํŒ… ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Failover๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Failover Record Type: ํ˜„์žฌ ๋ ˆ์ฝ”๋“œ๊ฐ€ Primary์ธ์ง€, Secondary์ธ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Secondary์ด๋ฏ€๋กœ Secondary๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • Set ID: Failover ๋ ˆ์ฝ”๋“œ๋ผ๋ฆฌ ์„œ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ID์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Associate with Health Check: Health Check ์„ค์ •๊ณผ ์—ฐ๋™ํ• ์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Secondary๋Š” Health Check๊ฐ€ ํ•„์š” ์—†์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’ ๊ทธ๋Œ€๋กœ No๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด <FontIcon icon="iconfont icon-select"/> ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด [Create] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
๋„๋ฉ”์ธ์˜ Secondary A ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋„๋ฉ”์ธ์˜ Secondary A ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ Failover ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•œ ๋„๋ฉ”์ธ์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด์ œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ Failover ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•œ ๋„๋ฉ”์ธ์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ EC2 ์ธ์Šคํ„ด์Šค(Primary)์˜ ์›น ์„œ๋ฒ„(Node.js)๋ฅผ ์ข…๋ฃŒํ•˜๊ณ , ์•ฝ 1๋ถ„ ์ •๋„ ํ›„์— ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด๋ด…๋‹ˆ๋‹ค. Failover ๊ธฐ๋Šฅ์ด ์ž˜ ๋™์ž‘ํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค(Secondary)์˜ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Failover ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค(Secondary)์— ์ ‘์†
Failover ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์—ฌ EC2 ์ธ์Šคํ„ด์Šค(Secondary)์— ์ ‘์†

์ ‘์†์ด ์•ˆ ๋  ๋•Œ๋Š” EC2 ์ธ์Šคํ„ด์Šค์˜ Security Group์— 80๋ฒˆ ํฌํŠธ๊ฐ€ ์—ด๋ ค์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐ๊ฐ์˜ IP ์ฃผ์†Œ๋กœ ์ ‘์†ํ•ด์„œ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

DNS Failover์™€ ELB

ELB๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” A ๋ ˆ์ฝ”๋“œ์˜ Alias๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ELB ์ ‘์† ์ฃผ์†Œ๋Š” IP ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ๋„๋ฉ”์ธ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. A ๋ ˆ์ฝ”๋“œ Alias๋Š” IP ์ฃผ์†Œ ๋Œ€์‹  ๋„๋ฉ”์ธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.


์ด์ฐฌํฌ (MarkiiimarK)
Never Stop Learning.