SharedIT | 묻고 답하기(AMP)

서버 이중화 관련 문의

안녕하세요 IT 서버 인프라쪽을 배워가면서(?) 일하는 넷알못 인데요,

고수님들의 의견을 듣고싶습니다.

Web과 DB를 같이 쓰는 서버를 이중화 하고싶다는 내용인데,

(DB는 Mysql이고 Web과 DB를 분리할수 없는 환경입니다.)

그리고 서버 구성은 A-S로 해서 한쪽이 죽으면 다른 한쪽이 가동되는 구성으로 하고싶다는건데,

저는 일단 Web과 DB가 분리되지 않으면 안될거같은데...

또 이런 경우 논리적으로 가능은 하나 리스크가 많다고 들었습니다.

Web부분은 L4를 넣어서 A-A로 만들고 DB부분은 MHA 구성으로 하면 어쨌든 논리적으로는 가능하지만 장애요인이 많아서 권장하지 않는 방법이라고 들었는데,

이 부분을 좀더 상세하게 알고싶습니다ㅠㅠ

아니면 대안이 있다면 그런 부분도 궁금하고 앞서 문의한 내용에서 어떤 부분에 문제가 생길수 있는건지 전반적으로 고수님들 설명 부탁드립니다.

Tags : 태그가 없습니다.

14개의 답변이 있습니다.

그저멍하니
  0 추천 | 2년 이상 전

분리를 할수 있습니다. 직접 컨트롤이 가능하다면

소스에서 DB 커넥션부분을 수정하셔야하는데, 

업체가 한다면 비용이 좀 많이 들수도 있습니다.


Genghis Khan
  0 추천 | 2년 이상 전

분리를 하는게 맞을듯 합니다

과거 분리를 못해 퍼포먼스 문제가 생겨

서버가 죽는게 일이였어요

DB는 mariaDB 였는데 문제시 지원할만한 업체가

없더라구요 

web은 L4구성으로 DB는 HA로 구성하는게 

최적인것 같습니다


쿨가이
  0 추천 | 2년 이상 전

구성마다 장단점이 있겠지만 원칙적인 권장은

web과 db서버는 분리가 맞구요. (보안, 장애대응등)

WEB은 동일 서버 두대이상으로 L4로 Active-Active 구성하시고

DB는 DB전용 이중화 툴이 있습니다. 이렇게 구성하시길 권장드립니다.

보안전문가
  0 추천 | 2년 이상 전 | Dotname | 05O73679113

1 웹서버-1DB 서버

2 웹서버-2DB 서버

형태로도 가능하고

1웹서버-3DB 서버

2웹서버-4DB 서버

형태로도 가능합니다.


웹서버는 dns 로드밸런신 DB 는 replication 으로 가능합니다.


닷네임코리아에서 호스팅을 신청하시면 컨설팅 자문도 제공해 드리고 있습니다!

https://www.dotname.co.kr/customer/event/2016/160526_hosting_landing_update


danis78
  0 추천 | 2년 이상 전 | 제이컴즈 | 010-2871-8756

낭만님 말씀대로 AP 와 DB 서버를 분리하고 이중화 하는 게 정석입니다. 

낭만생선
  0 추천 | 2년 이상 전

기능의 구현의 문제가 아니라..

"개인적으로는 Web/DB 분리가 안된다면 굳이 이렇게 이중화를 하는게 과연 의미가 있는지??? "라는 의문이 정답으로 생각됩니다.


이중화라는게 시스템 안정성이나 무중단을 위해서 하는건데

웹과 DB도 분리를 못하는 시스템에 억지로 서버 두대를 두고 이중화를 한다는것이 이해가 안되네요.

아마도 어플리케이션쪽에서 요구를 하는것 같은데


이런 접근은 

실제적인 효용성보다는 "이중화"라는 단어에 대한 막연한 기대감에 따른 요구이죠.


이중화라는게 장애에 안정성에 만능도 아니고 부하 분산도 생각처럼 쌈빡하게  분산이 되는게 아닙니다.

이중화 시스템 자체가  장애를 일으키는 경우도 많구요.


DB나 웹서비스를 살리기위해 이중화를 하는건데

이중화 구성 자체가 메인이 되는것은 좋은 방향이 아니죠.


저도 개발 업체에서 레퍼런스라고 이중화 구성 가지고 들어오는것중 90%이상은 싱글로 구성합니다.

시스템 사이즈도 100가지고 오면 10부터 시작하구요.

차바라기
  0 추천 | 2년 이상 전

웹하고 DB는 분리가 좋은데~한서버에 장애가 나면 문제 이거니와~로드밸런싱 또는 클러스터를 적용할때도

영향을 주는 경우가 많아서 분리해서 이중화를 구축하는게 좋습니다.

deerokgo
  0 추천 | 2년 이상 전

가능은 하겠지만,

Web과 DB를 분리하는 것이 최선인거 같습니다.

분리가 어렵다면 A-A 방식으로 하시는게 좋겠고요.

Web과 DB 분리가 어렵다면 앞에 L4 두시고, A-A로 해보세요

빨간신발
  0 추천 | 2년 이상 전

가능하죠.. 

s1 - Web1, DB1

s2 - Web2, DB2

L4

저렇게 하면 보안을 떠나서 Web에 부하가 걸리면 DB까지 영향을 받을 수 있습니다.

Web과 DB의 리소스 분배가 제대로 안되면

Web1, Web2는 정상인데 DB1에 부하가 걸리고

DB1의 부하로 인해 과도한 리소스를 점유하여 Web1까지 부하가 걸리고 죽고

Web1의 장애로 L4에서는 Web2만 정상으로 판단하여 모든 요청을 Web2로 보내고

Web2도 많은 요청을 받을 수 없어 죽음

이런 최악의 연쇄 반응도 예상할 수 있습니다.

환경 개선이 안되면 주어진 환경에서 최선책을 찾아야죠... 

topkslee
  0 추천 | 2년 이상 전

현재 : 서버1-[WEB-DB]

변경 : 서버1-[WEB(A)-DB(A)]  /  서버2-[WEB(A)-DB(S)]

변경(안)으로 하시려고 하는데 문제가 없는지에 대해 가이드 요청하신 내용으로 이해했습니다.

제가 바로 이해했는지 모르겠지만, 요청하신대로 구성도 많이 합니다.

Best는 DB까지 서버1-[WEB(A)-DB(A)]  /  서버2-[WEB(A)-DB(A)]가 되면 좋지만

질문하신분과 같이 분리가 불가하다든지 아니면 DB 이중화 구성시 비용문제 등으로 변경(안)과 같이 구성하기도 합니다.

구성 또한 크게 어렵지 않게 구성가능합니다.

다만, 어떤 이유인지는 모르겠지만 WEB/DB가 분리되지 않는다고하셨는데요.

DB가 Standby로 넘어가면 분리가 되는 것과 같을텐데요. 이때 운영이 가능한지는 체크해보셔야겠네요.

청축키보드
  0 추천 | 2년 이상 전

논란이 있어서 말씀드립니다.

요구사항이 Web/DB 분리가 어려운 환경에서 Web은 부하분산하고 DB는 A-S구성을 해달라는 거였습니다...

그래서 이게 문제의 소지가 있을거 같아서 조언을 구하는 내용입니다.

개인적으로는 Web/DB 분리가 안된다면 굳이 이렇게 이중화를 하는게 과연 의미가 있는지??? 생각이 들어서 여쭙습니다ㅠㅠㅠ

관리적으로나 장애적으로나 문제가 있어보여서요..

wansoo | 2년 이상 전

DB는 HA 솔루션을 사용해서 A-S로 이중화를 구성하면 될 거같고요.

웹을 부하 분산한다는 건...

DB 2중화를 구성하는 2대 서버를 통해서 부하 분산한다는 개념이 되나요?

1번 서버에 DB + Web, 2번 서버에도 DB+Web인데...

DB는 1번 서버가 Active로 구동하고 2번 서버는 DB서버가 서비스를 하지 않고 Standby로 대기 하는 상태이고...

웹은 1번 서버와 2번 서버가 부하 분산 용도로 동시에 구동되고... 하는 개념으로 보여지는데요.

HA 솔루션에 웹 서비스는 등록시키지 않고 DB만 등록해서 2중화하면 될 것 같고요.

HA 솔루션에 의해 웹서버에서 DB 서버 접속은 가상 IP로 접속하기 때문에 1번 서버에서 DB가 구동되건, 2번 서버에서 DB가 구동되건... 웹서버에서 DB 서버 접속하는 IP는 HA 서비스 대표 IP로 접속되기 때문에 동일하게 Active로 구동중인 DB 서버에 접속하게 되겠고요.

이중화에 참여하는 서버가 Standby 상태라도 서버 전원이 꺼져 있는 상태가 아니라 서버가 정상적으로 구동되고 있는 상태에서 서비스만 하지 않는 상태이기 때문에 웹 서버를 올려서 웹서비스를 하는데 문제는 없을거 같고...

웹서버는 양쪽 서버에 모두 동시 구동시키면서 부하 분산되게 하고, DB 서비스는 HA 솔루션을 이용해서 한쪽에서만 구동시키면서 A-S 방식으로 2중화시키면 될걸로 보이네요.

웹서버와 DB 서버가 동일 하드웨어에서 구동되는지, 분리되어 구동되는지가 이중화 구현의 걸림돌이 되지는 않을거라 보여지는데요.

Simon.Park
  0 추천 | 2년 이상 전

글에서 언급하신 대로 Web 과 DB는 보통 분리해서 사용 하시는게 맞습니다.

하지만 현재 상황에서 분리를 하기 어렵고,

그 가운데에서 이중화를 하시고자 한다면 말씀하신대로

A-S 방식으로 구성을 하시면 될 듯 하네요.

이중화 구성을 하시는데 있어서 공유 스토리지 (SAN)은 필요 하구요,

보통 이중화 할때 DB는 SAN 방식으로 공유하고,

Web은 NAS 로 구현을 많이 합니다. 

일반적으로 많이 하는 구성이기에 크게 어렵지는 않을 듯 하네요.

wansoo
  0 추천 | 2년 이상 전

서버 2중화하는데...

웹과 DB를 분리하면 2중화할 수 있고, 분리하지 못하면 2중화 하지 못한다는게...??

이유를 알기 어렵네요.

더구나 Active-Standby로 구성하는데...

스탠바이 서버는 액티브 서버가 정상적으로 작동하고 있는지 체크를 하고 있다가 액티브 서버가 정상적으로 작동하지 못한다는 판단이 내려지면 액티브 서버에다 서비스를 중지할것을 요청하고, 자신이 서비스를 올려서 액티브로 작동하면 되는 방식이 A-S 방식이되겠는데요.

액티브 서버에서 DB와 웹 서비스 모두 구동하고 있다가 장애 발생시 웹서비스와 DB 서비스를 내려서 서비스를 중지하면 될 것이고, 스탠바이 서버에서는 DB와 웹서비스를 올려서 서비스를 하면 되겠고요.

단지, DB가 저장되어 데이터 공유가 관건일거 같은데...

많이 사용하는 방식이 공유 스토리지에 데이터를 저장해 두고서 액티브 서버가 중지하면서 공유 스토리지 연결을 끊어 버리고, 스탠바이 서버가 액티브로 전환할때 공유 스토리지를 마운트 시킨 후에 DB 및 웹 서비스를 올리는 형태로 구동되면 되겠고...

공유 스토리지를 사용하지 않는 형태로 할 경우에는 저장 장치를 동기화 시켜서 복제하는 방식으로 구동하면 되는데, 저장 장치 동기화 방식은 동기화를 위한 부하가 많이 걸리게 되기 때문에 시스템 성능에 영향을 많이 주게 되기 때문에 부하가 많이 발생하는 시스템에서는 하지 않는게 좋을 것 같고...


빨간신발
  0 추천 | 2년 이상 전

Web과 DB는 분리하시게 보안상 좋아요. 엄밀하게는 네트워크 분리하는게 맞습니다.

Web은 2중화하시고 L4로 로드벨런싱하시면 되고

DB는 mysql(mairadb)이면 galera cluster로 2중화 가능합니다.

A-S 구성은 아니고 A-A 구성입니다.

MaxScale까지 구축하시면 자동으로 로드벨런싱 및 failover되는 A-A 환경 구축이 가능합니다.

galera cluster, maxscale은 무료입니다.