Skip to main content

18B. EC2 인스턴스에 웹 서버 실행하기

Less than 1 minuteAWScrashcoursepyrasisawsamazon-web-services

18B. EC2 인스턴스에 웹 서버 실행하기 관련

목차

아마존 웹 서비스를 다루는 기술

18장 - 2. 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라고 표시되어 있습니다.

OurOfService는 EC2 인스턴스(웹 서버)가 중단되어 트래픽을 받을 수 없는 상태입니다.
OurOfService는 EC2 인스턴스(웹 서버)가 중단되어 트래픽을 받을 수 없는 상태입니다.

5분 정도 기다리면 Status가 InService로 바뀝니다. 이제 트래픽을 받을 수 있는 상태가 되었습니다. 앞에서 헬스 체크 설정을 할 때 Health Check Interval이 30초, Healthy Threshold가 10번으로 설정했기 때문에 30×10=300=530\text{초}\times{10\text{번}}=300\text{초}=5\text{분} 입니다.

ELB 로드 밸런서에 연결된 EC2 인스턴스 목록
ELB 로드 밸런서에 연결된 EC2 인스턴스 목록

이제 [Description] 탭을 클릭합니다.

DNS Name 부분에 ELB 로드 밸런서의 URL이 표시됩니다.
DNS Name 부분에 ELB 로드 밸런서의 URL이 표시됩니다.

웹 브라우저를 실행하고 ELB 로드 밸런서의 URL에 접속합니다. Hello ELB 1 또는 Hello ELB 2가 표시될 것입니다. 이 URL을 계속 새로고침해보면 Hello ELB 1과 Hello ELB 2로 계속 바뀝니다. ELB 로드 밸런서가 라운드 로빈 알고리즘으로 매번 다른 EC2 인스턴스에 연결해주기 때문입니다.

웹 브라우저에서 ELB 로드 밸런서의 URL에 접속
웹 브라우저에서 ELB 로드 밸런서의 URL에 접속

이찬희 (MarkiiimarK)
Never Stop Learning.