18B. EC2 인스턴스에 웹 서버 실행하기
18B. EC2 인스턴스에 웹 서버 실행하기 관련
![](https://pyrasis.com/assets/images/pyrasis.png)
'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라고 표시되어 있습니다.
![OurOfService는 EC2 인스턴스(웹 서버)가 중단되어 트래픽을 받을 수 없는 상태입니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter18/14_.png)
5분 정도 기다리면 Status가 InService로 바뀝니다. 이제 트래픽을 받을 수 있는 상태가 되었습니다. 앞에서 헬스 체크 설정을 할 때 Health Check Interval이 30초, Healthy Threshold가 10번으로 설정했기 때문에 입니다.
![ELB 로드 밸런서에 연결된 EC2 인스턴스 목록](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter18/15_.png)
이제 [Description]
탭을 클릭합니다.
![DNS Name 부분에 ELB 로드 밸런서의 URL이 표시됩니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter18/16_.png)
웹 브라우저를 실행하고 ELB 로드 밸런서의 URL에 접속합니다. Hello ELB 1 또는 Hello ELB 2가 표시될 것입니다. 이 URL을 계속 새로고침해보면 Hello ELB 1과 Hello ELB 2로 계속 바뀝니다. ELB 로드 밸런서가 라운드 로빈 알고리즘으로 매번 다른 EC2 인스턴스에 연결해주기 때문입니다.
![웹 브라우저에서 ELB 로드 밸런서의 URL에 접속](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter18/17_.png)