SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
무정지 웹서비스 구성

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

Contenu connexe

Tendances

Redis Overview
Redis OverviewRedis Overview
Redis Overviewkalzas
 
Virtual Edition
Virtual EditionVirtual Edition
Virtual Editionitian-f5
 
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Kyunghun Jeon
 
톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동톰캣 #08-웹서버 연동
톰캣 #08-웹서버 연동GyuSeok Lee
 
Mysql replication
Mysql replicationMysql replication
Mysql replicationThreeSnakes
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?Opennaru, inc.
 
초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초초보자를 위한 네트워크/VLAN 기초
초보자를 위한 네트워크/VLAN 기초Open Source Consulting
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 
Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)Tomcat 마이그레이션 도전하기 (Jins Choi)
Tomcat 마이그레이션 도전하기 (Jins Choi)삵 (sarc.io)
 
톰캣 #03-설치
톰캣 #03-설치톰캣 #03-설치
톰캣 #03-설치GyuSeok Lee
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm엑셈
 
500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting Essential500.JBoss Troubleshooting Essential
500.JBoss Troubleshooting EssentialOpennaru, inc.
 
02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 Ansible02.실전! 시스템 관리자를 위한 Ansible
02.실전! 시스템 관리자를 위한 AnsibleOpennaru, inc.
 
톰캣 운영 노하우
톰캣 운영 노하우톰캣 운영 노하우
톰캣 운영 노하우jieunsys
 
04.웹시스템 이해 하기
04.웹시스템 이해 하기04.웹시스템 이해 하기
04.웹시스템 이해 하기Opennaru, inc.
 
톰캣 #01-소개
톰캣 #01-소개톰캣 #01-소개
톰캣 #01-소개GyuSeok Lee
 
Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교Rb vs wp 로드타임 성능비교
Rb vs wp 로드타임 성능비교Gitaek kwon
 
15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?
15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?
15.PaaS 환경에서 애플리케이션 모니터링이 다른점과 꼭 필요한 점은?Opennaru, inc.
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 

Tendances (20)

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

Similaire à 무정지 웹서비스

Freebsd HA with CARP
Freebsd HA with CARPFreebsd HA with CARP
Freebsd HA with CARPGenie Chae
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0Ji-Woong Choi
 
서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infraHwanseok Park
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router 준기 홍
 
Haeinsa deview _최종
Haeinsa deview _최종Haeinsa deview _최종
Haeinsa deview _최종NAVER D2
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유Kyoungchan Lee
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
DNS Express
DNS ExpressDNS Express
DNS Expressitian-f5
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestI Goo Lee
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shootingDaeMyung Kang
 
Pgday bdr gt1000
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000정대 천
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대PgDay.Seoul
 

Similaire à 무정지 웹서비스 (13)

Freebsd HA with CARP
Freebsd HA with CARPFreebsd HA with CARP
Freebsd HA with CARP
 
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
[오픈소스컨설팅]RHEL7/CentOS7 Pacemaker기반-HA시스템구성-v1.0
 
서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router
 
Haeinsa deview _최종
Haeinsa deview _최종Haeinsa deview _최종
Haeinsa deview _최종
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
DNS Express
DNS ExpressDNS Express
DNS Express
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
 
Lena Application Server
Lena  Application ServerLena  Application Server
Lena Application Server
 
Pgday bdr gt1000
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대
 

무정지 웹서비스

  • 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