18B. EC2 ์ธ์คํด์ค์ ์น ์๋ฒ ์คํํ๊ธฐ
18B. EC2 ์ธ์คํด์ค์ ์น ์๋ฒ ์คํํ๊ธฐ ๊ด๋ จ
'12.3.1 EC2์ CloudFront ์ฐ๋ํ๊ธฐ'๋ฅผ ์ฐธ์กฐํ์ฌ ELB ๋ก๋ ๋ฐธ๋ฐ์์ ์ฐ๊ฒฐํ EC2 ์ธ์คํด์ค 2๊ฐ์ Node.js์ express ๋ชจ๋์ ์ค์นํฉ๋๋ค. EC2 ์ธ์คํด์ค 2๊ฐ ๋ชจ๋ ExampleServer ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ์ด ๋๋ ํฐ๋ฆฌ ์์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ๋ค app.js๋ก ์ ์ฅํฉ๋๋ค.
app.js
var express = require('express');
var app = express();
app.get(['/', '/index.html'], function (req, res) {
res.send('Hello ELB 1'); // ๋ ๋ฒ์งธ EC2 ์ธ์คํด์ค์์๋ Hello ELB 2
});
app.listen(80);
๋ EC2 ์ธ์คํด์ค์์ ๋ค์ ๋ช ๋ น์ ์ ๋ ฅํ์ฌ ๊ฐ๊ฐ Node.js ์๋ฒ๋ฅผ ์คํํฉ๋๋ค.
sudo node app.js
ELB ๋ก๋ ๋ฐธ๋ฐ์ ๋ชฉ๋ก([NETWORK & SECURITY]
โ [Load Balancers]
)์์ ELB ๋ก๋ ๋ฐธ๋ฐ์(exampleelb
)๋ฅผ ์ ํํ๊ณ , ์๋ [Instances]
ํญ์ ํด๋ฆญํฉ๋๋ค.
ELB ๋ก๋ ๋ฐธ๋ฐ์์ ์ฐ๊ฒฐ๋ EC2 ์ธ์คํด์ค ๋ชฉ๋ก์ด ๋์ค๋๋ฐ Status๋ฅผ ๋ณด๋ฉด OutOfServices๋ผ๊ณ ํ์๋์ด ์์ต๋๋ค.
5๋ถ ์ ๋ ๊ธฐ๋ค๋ฆฌ๋ฉด Status๊ฐ InService๋ก ๋ฐ๋๋๋ค. ์ด์ ํธ๋ํฝ์ ๋ฐ์ ์ ์๋ ์ํ๊ฐ ๋์์ต๋๋ค. ์์์ ํฌ์ค ์ฒดํฌ ์ค์ ์ ํ ๋ Health Check Interval์ด 30์ด, Healthy Threshold๊ฐ 10๋ฒ์ผ๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ ์ ๋๋ค.
์ด์ [Description]
ํญ์ ํด๋ฆญํฉ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ๊ณ ELB ๋ก๋ ๋ฐธ๋ฐ์์ URL์ ์ ์ํฉ๋๋ค. Hello ELB 1 ๋๋ Hello ELB 2๊ฐ ํ์๋ ๊ฒ์ ๋๋ค. ์ด URL์ ๊ณ์ ์๋ก๊ณ ์นจํด๋ณด๋ฉด Hello ELB 1๊ณผ Hello ELB 2๋ก ๊ณ์ ๋ฐ๋๋๋ค. ELB ๋ก๋ ๋ฐธ๋ฐ์๊ฐ ๋ผ์ด๋ ๋ก๋น ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋งค๋ฒ ๋ค๋ฅธ EC2 ์ธ์คํด์ค์ ์ฐ๊ฒฐํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.