SlideShare a Scribd company logo
무정지 웹서비스 구성

https://blog.zeroidle.com
무정지 웹서비스 구성
1

서비스 개요 및 하드웨어 선정
1.1

4

1.2
2

서비스 개요
하드웨어 선정

6

네트워크 인터페이스 이중화
2.1

3

CARP설정

8

웹서비스 설치 및 테스트
3.1

NginX 설치

10
서비스 개요 및 하드웨어 선정

무정지 웹서비스 구성 - 3
서비스 개요
서비스 구성
두 대의 서버를 이용하여 Active/Standby 무정지 웹서비스를 구성하도록 합니다.

구성

L2스위치 하단에 두 대의 서버가 물리적으로 연결되어 있으며 각각 IP가 할당되어 있습니다.
또한 각 서버에는 125.141.148.230(이하 VIP)가 공통적으로 셋팅되어 있는데,
평소에는 Oper-KR-LB-1(이하 LB-1)이 VIP를 가지고 있다가
장애가 나게되면 Oper-KR-LB-2(이하 LB-2)가 VIP를 가져오게 됩니다.
즉, 두 서버 모두 살아 있을 경우 LB-1이 Active상태이며 LB-2는 Standby상태라 지칭합니다.
만약 LB-1이 장애가 나게되면 LB-2가 VIP를 가지게 되며 이러한 전환과정을 Fail-over라 합니다.
이후 LB-1이 정상화되면 VIP를 다시 가져오는데 이 과정을 Fail-back이라 합니다.

무정지 웹서비스 구성 - 4
LB-1, LB-2의 장애와 상관없이
두 서버중 한대만 살아있더라도 VIP로 접속이 가능하므로
이러한 구성을 HA(High Availability)라 부릅니다.

무정지 웹서비스 구성 - 5
하드웨어 선정
(주)윈퍼스트(http://winfirst.co.kr/)에서 판매하는 Intel WR1302 서버 2대로 구성하였으며
상세 스펙은 아래와 같습니다.
Intel Server Board S1200BTL
Intel Processor E3-1230v2 (8M Cache, 3.3Ghz, Max Turbo Freq. 3.6Ghz)
DDR 3 Unbuffered ECC 4GB * 2EA
SSD 120GB * 1EA
SATA 2TB * 2EA
350W Single PSU

하드웨어 스펙

* 구매비용을 줄이기 위해 고가의 레이드컨트롤러를 구매하지 않고 Software RAID기능을 사용하도록 합니다.

무정지 웹서비스 구성 - 6
네트워크 인터페이스 이중화

무정지 웹서비스 구성 - 7
CARP설정
서비스구성에서 보았던 VIP를 셋팅해보도록 하겠습니다.

CARP 설정

LB-1에 접속하여 /etc/rc.conf 파일을 에디터로 열어서 아래 내용을 추가해 줍니다.
cloned_interfaces="carp0"
ifconfig_carp0="vhid 230 advskew 50 pass P@ssw0rd 125.141.148.230/27"

LB-2에도 동일하게 셋팅해줍니다.
cloned_interfaces="carp0"
ifconfig_carp0="vhid 230 advskew 100 pass P@ssw0rd 125.141.148.230/27"

설정내용중 vhid(Virtual Host IDentification) 값과 P@ssw0rd로 셋팅된 pass값은 두 서버가 동일해야 하며,
이렇게 이중화된 여러개의 Pool이 있을 경우 vhid는 충돌나지 않게 정해아합니다.
저는 임의로 VIP 끝자리인 230으로 정했습니다.
그리고 advskew가 의미하는 것은 해당 서버들이 살아있을 때 작은 값으로 셋팅된 서버가 MASTER상태에 대한
우선순위를 갖는다는 뜻입니다.
즉, 두 서버 모두 정상상태 일경우 50으로 셋팅된 LB-1이 MASTER역할을 하게됩니다.
셋팅이 완료됐으면 저장후 리부팅을 하거나 네트웍인터페이스를 재시작해주세요

CARP 동작확인

CARP가 잘 동작중인지 ifconfig carp0 명령으로 확인해봅시다.
LB-2의 advskew값이 100으로, LB-1의 50보다 숫자가 크므로 우선순위가 낮겠죠?
그러므로 carp상태가 BACKUP으로 나오는게 정상입니다.
만약 LB-1이 죽어있다면 LB-2의 carp상태가 자동으로 MASTER로 바뀌고
125.141.148.230 VIP또한 LB-2가 사용하게 됩니다.

무정지 웹서비스 구성 - 8
웹서비스 설치 및 테스트

무정지 웹서비스 구성 - 9
NginX 설치
portsnap fetch extract
portsnap fetch update
위 명령을 통해 FreeBSD의 ports를 최신으로 업그레이드 합니다.

NginX 설치

cd /usr/ports/www/nginx 로 디렉토리를 옮겨,
make config install clean 으로 설치합니다.
무정지 웹서비스 구성 - 10
NginX 시작

/usr/local/etc/rc.d/nginx start 명령으로 NginX를 시작합니다.
이런... 시작할 수 없다고 나오네요
/etc/rc.conf에 nginx_enable="YES" 행을 추가한 후 시작합니다.

Index 페이지 만들기

LB-1에서
mkdir -p /usr/local/www/nginx
echo "LB-1" > /usr/local/www/nginx/index.html
위 명령으로 인덱스 페이지를 만듭니다.
LB-2 서버에서는
echo "LB-2" > /usr/local/www/nginx/index.html
위 명령처럼 인덱스 페이지를 다르게 만들어준다면 Fail-over가 잘 되는지 쉽게 확인할 수 있겠죠?

웹페이지 접속확인

LB-1이라고 적혀나오는걸보니 LB-1이 MASTER상태이군요
그럼 Fail-over가 잘 되는지 확인해봅시다.
LB-1을 리부팅합니다.

Fail-over 확인

LB-1이 리부팅되었으므로 LB-2가 MASTER상태가 되었음을 확인할 수 있습니다.
ifconfig carp0 명령으로 확인 할 수 있습니다.
무정지 웹서비스 구성 - 11
웹페이지 접속확인

LB-2가 MASTER가 되었으므로 페이지 또한 LB-2로 바뀌었네요
어렵지 않죠?
저렴한 비용으로 웹서버를 이중화해보았습니다.
감사합니다.

무정지 웹서비스 구성 - 12

More Related Content

PDF
서버 인프라를지탱하는기술(1.3,1.4)
PPTX
Aws sophos ha-failover-예제
PPT
L4교육자료
PDF
Redis edu 4
PPTX
Before OTD EDU Assignments
PPTX
Apache tomcat 로드밸런싱 김태호-20140808
PDF
[오픈소스컨설팅]Tomcat6&7 How To
PPTX
03.Ansible 소개
서버 인프라를지탱하는기술(1.3,1.4)
Aws sophos ha-failover-예제
L4교육자료
Redis edu 4
Before OTD EDU Assignments
Apache tomcat 로드밸런싱 김태호-20140808
[오픈소스컨설팅]Tomcat6&7 How To
03.Ansible 소개

What's hot (20)

PPT
Redis Overview
PPTX
Virtual Edition
PPTX
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
PDF
톰캣 #08-웹서버 연동
PPTX
Mysql replication
PDF
Advanced webpack
PPTX
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
PDF
초보자를 위한 네트워크/VLAN 기초
PDF
JVM과 톰캣 튜닝
PDF
Tomcat 마이그레이션 도전하기 (Jins Choi)
PDF
톰캣 #03-설치
PDF
All about JDBC Performance Tuning_Wh apm
PPTX
500.JBoss Troubleshooting Essential
PPTX
02.실전! 시스템 관리자를 위한 Ansible
PDF
톰캣 운영 노하우
PPTX
04.웹시스템 이해 하기
PDF
톰캣 #01-소개
PPTX
Rb vs wp 로드타임 성능비교
PPTX
15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?
PDF
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Redis Overview
Virtual Edition
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
톰캣 #08-웹서버 연동
Mysql replication
Advanced webpack
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
초보자를 위한 네트워크/VLAN 기초
JVM과 톰캣 튜닝
Tomcat 마이그레이션 도전하기 (Jins Choi)
톰캣 #03-설치
All about JDBC Performance Tuning_Wh apm
500.JBoss Troubleshooting Essential
02.실전! 시스템 관리자를 위한 Ansible
톰캣 운영 노하우
04.웹시스템 이해 하기
톰캣 #01-소개
Rb vs wp 로드타임 성능비교
15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ad

Similar to 무정지 웹서비스 (20)

PDF
Freebsd HA with CARP
PDF
build a linux webhosting server
PPSX
무정지&무점검 서버 개발과 운영 사례
PDF
맛만 보자 Undertow
PDF
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
PPTX
20170609 tech day_4th-nginx(lb)-이재훈
PDF
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
PDF
서버인프라 구축 입문 basis of composing server and infra
PDF
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
PDF
안정적인 서비스 운영 2013.08
PPT
서버/인프라를 지탱하는 기술
PDF
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
PDF
(OCI 탐험일지) nginx 설치(오라클 리눅스 7)
PDF
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
PDF
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
PDF
Elastic webservice
PDF
Massive service basic
PDF
Nginx basic configurations
PDF
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
PDF
다중성 확보, 시스템 안정화
Freebsd HA with CARP
build a linux webhosting server
무정지&무점검 서버 개발과 운영 사례
맛만 보자 Undertow
[2010 네이트 앱스토어 개발자 세미나] 앱스 제작 사례 (2) 소셜게임 서버 구성 전략
20170609 tech day_4th-nginx(lb)-이재훈
[제14회 JCO 컨퍼런스] 개발자를 위한 서버이중화 by JAVACAFE
서버인프라 구축 입문 basis of composing server and infra
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
안정적인 서비스 운영 2013.08
서버/인프라를 지탱하는 기술
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
(OCI 탐험일지) nginx 설치(오라클 리눅스 7)
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Elastic webservice
Massive service basic
Nginx basic configurations
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
다중성 확보, 시스템 안정화
Ad

무정지 웹서비스

  • 2. 무정지 웹서비스 구성 1 서비스 개요 및 하드웨어 선정 1.1 4 1.2 2 서비스 개요 하드웨어 선정 6 네트워크 인터페이스 이중화 2.1 3 CARP설정 8 웹서비스 설치 및 테스트 3.1 NginX 설치 10
  • 3. 서비스 개요 및 하드웨어 선정 무정지 웹서비스 구성 - 3
  • 4. 서비스 개요 서비스 구성 두 대의 서버를 이용하여 Active/Standby 무정지 웹서비스를 구성하도록 합니다. 구성 L2스위치 하단에 두 대의 서버가 물리적으로 연결되어 있으며 각각 IP가 할당되어 있습니다. 또한 각 서버에는 125.141.148.230(이하 VIP)가 공통적으로 셋팅되어 있는데, 평소에는 Oper-KR-LB-1(이하 LB-1)이 VIP를 가지고 있다가 장애가 나게되면 Oper-KR-LB-2(이하 LB-2)가 VIP를 가져오게 됩니다. 즉, 두 서버 모두 살아 있을 경우 LB-1이 Active상태이며 LB-2는 Standby상태라 지칭합니다. 만약 LB-1이 장애가 나게되면 LB-2가 VIP를 가지게 되며 이러한 전환과정을 Fail-over라 합니다. 이후 LB-1이 정상화되면 VIP를 다시 가져오는데 이 과정을 Fail-back이라 합니다. 무정지 웹서비스 구성 - 4
  • 5. LB-1, LB-2의 장애와 상관없이 두 서버중 한대만 살아있더라도 VIP로 접속이 가능하므로 이러한 구성을 HA(High Availability)라 부릅니다. 무정지 웹서비스 구성 - 5
  • 6. 하드웨어 선정 (주)윈퍼스트(http://winfirst.co.kr/)에서 판매하는 Intel WR1302 서버 2대로 구성하였으며 상세 스펙은 아래와 같습니다. Intel Server Board S1200BTL Intel Processor E3-1230v2 (8M Cache, 3.3Ghz, Max Turbo Freq. 3.6Ghz) DDR 3 Unbuffered ECC 4GB * 2EA SSD 120GB * 1EA SATA 2TB * 2EA 350W Single PSU 하드웨어 스펙 * 구매비용을 줄이기 위해 고가의 레이드컨트롤러를 구매하지 않고 Software RAID기능을 사용하도록 합니다. 무정지 웹서비스 구성 - 6
  • 8. CARP설정 서비스구성에서 보았던 VIP를 셋팅해보도록 하겠습니다. CARP 설정 LB-1에 접속하여 /etc/rc.conf 파일을 에디터로 열어서 아래 내용을 추가해 줍니다. cloned_interfaces="carp0" ifconfig_carp0="vhid 230 advskew 50 pass P@ssw0rd 125.141.148.230/27" LB-2에도 동일하게 셋팅해줍니다. cloned_interfaces="carp0" ifconfig_carp0="vhid 230 advskew 100 pass P@ssw0rd 125.141.148.230/27" 설정내용중 vhid(Virtual Host IDentification) 값과 P@ssw0rd로 셋팅된 pass값은 두 서버가 동일해야 하며, 이렇게 이중화된 여러개의 Pool이 있을 경우 vhid는 충돌나지 않게 정해아합니다. 저는 임의로 VIP 끝자리인 230으로 정했습니다. 그리고 advskew가 의미하는 것은 해당 서버들이 살아있을 때 작은 값으로 셋팅된 서버가 MASTER상태에 대한 우선순위를 갖는다는 뜻입니다. 즉, 두 서버 모두 정상상태 일경우 50으로 셋팅된 LB-1이 MASTER역할을 하게됩니다. 셋팅이 완료됐으면 저장후 리부팅을 하거나 네트웍인터페이스를 재시작해주세요 CARP 동작확인 CARP가 잘 동작중인지 ifconfig carp0 명령으로 확인해봅시다. LB-2의 advskew값이 100으로, LB-1의 50보다 숫자가 크므로 우선순위가 낮겠죠? 그러므로 carp상태가 BACKUP으로 나오는게 정상입니다. 만약 LB-1이 죽어있다면 LB-2의 carp상태가 자동으로 MASTER로 바뀌고 125.141.148.230 VIP또한 LB-2가 사용하게 됩니다. 무정지 웹서비스 구성 - 8
  • 9. 웹서비스 설치 및 테스트 무정지 웹서비스 구성 - 9
  • 10. NginX 설치 portsnap fetch extract portsnap fetch update 위 명령을 통해 FreeBSD의 ports를 최신으로 업그레이드 합니다. NginX 설치 cd /usr/ports/www/nginx 로 디렉토리를 옮겨, make config install clean 으로 설치합니다. 무정지 웹서비스 구성 - 10
  • 11. NginX 시작 /usr/local/etc/rc.d/nginx start 명령으로 NginX를 시작합니다. 이런... 시작할 수 없다고 나오네요 /etc/rc.conf에 nginx_enable="YES" 행을 추가한 후 시작합니다. Index 페이지 만들기 LB-1에서 mkdir -p /usr/local/www/nginx echo "LB-1" > /usr/local/www/nginx/index.html 위 명령으로 인덱스 페이지를 만듭니다. LB-2 서버에서는 echo "LB-2" > /usr/local/www/nginx/index.html 위 명령처럼 인덱스 페이지를 다르게 만들어준다면 Fail-over가 잘 되는지 쉽게 확인할 수 있겠죠? 웹페이지 접속확인 LB-1이라고 적혀나오는걸보니 LB-1이 MASTER상태이군요 그럼 Fail-over가 잘 되는지 확인해봅시다. LB-1을 리부팅합니다. Fail-over 확인 LB-1이 리부팅되었으므로 LB-2가 MASTER상태가 되었음을 확인할 수 있습니다. ifconfig carp0 명령으로 확인 할 수 있습니다. 무정지 웹서비스 구성 - 11
  • 12. 웹페이지 접속확인 LB-2가 MASTER가 되었으므로 페이지 또한 LB-2로 바뀌었네요 어렵지 않죠? 저렴한 비용으로 웹서버를 이중화해보았습니다. 감사합니다. 무정지 웹서비스 구성 - 12