웹서버 이중화 구성 관련 조언부탁드립니다.

I적우   
   조회 3184   추천 1    

사내에서 내부적으로 운영하는 용도로 소프트웨어는 개발이 완료되었고, 서버 구성 검토 단계 입니다.

웹인터페이스의 문서 중앙화 관리시스템이고, 동시 사용자는 200유저 정도입니다.

리눅스, 아파치, MariaDB 사용 계획입니다.


가능하면 active/active 로드발랜싱 이중화 방식이 좋을 것 같고...

DB데이터는 서버간 데이터 동기화를 할지, SAN장비를 도입할지도 고민이 되구요.


보편적으로 웹서버 이중화 구성할때 어떻게 구성하는지 선배님들 조언을 부탁드립니다~~

도입 가능한 솔루션도 언급 주시면 검토하겠습니다.

감사합니다.

짧은글 일수록 신중하게.
epowergate 2023-06
Active-Active 구성을 원하는데 SAN장비 사용은 SAN 공유솔루션이 필수도 들어가야 합니다.
이 솔루션만 대략 3000~1억쯤 할 겁니다.
예산 알려주시면 많은 분들이 도움 주실 겁니다
제온프로 2023-06
--------Vip ---------
L4-1  --------- L4-2
  ↓                      ↓
WEB1  ---------  WEB2
 ↓                      ↓
DB1  ----------- DB2
 ↓                      ↓
-----SAN Switch ----
----- DB Storage 1,2 ---
달광이 2023-06
제온프로님 처럼 구성이 대부분 맞습니다만
보통 db1,2를 san과 같은 고가로 한 볼륨을 보진 않습니다(은행권 같이 돈 많은 곳은 씁니다만)

k사 n사 쪽은 보통 db1, db2를 master, replica정도로 세팅해서 master를 통해서 write를 하고 read는 양쪽에서 읽도록 합니다. 그러다 replica쪽이 죽으면 살려서 다시 붙이는 식이고, master가 죽으면 replica를 master로 바꿔서 동작 시키고 죽었던 master를 복구한 후에 replica로 세팅해서 동작 시킵니다.

db master, replica관련은 mysql ha쪽으로 찾아보면 오픈소스나 방법들 많이 나올겁니다
에스오투 2023-06
SAN 비용이 부담되시면 달광이님 의견처럼 하시면 되고
L4 비용도 부담되신다면 nginx reverse proxy 로 밸런싱을 하는 방법도 있습니다.
AWS를 쓰신다면 ALB로 로드밸런싱을 하면 되고, EC2로 구성한 웹서버 2대에, DB는 RDS를 쓰면 기본적으로 RW-RO 각 1대로 구성된 클러스터된 Aurora DB를 구성할 수 있고, RW로 지정된 DB를 사용하다가 잘못되면 알아서 RO가 RW로 승격되서 대체되는 편리한 시스템입니다.

온프레미스로 구축한다면, 제온프로님이 언급하신 로드밸런서로 L4 장비를 활용할수 있고, 아주 BEST 한 설계로 보여주셨는데,

현실적인 운용방법중 하나로 '사내 시스템이니 고장나면 공지 띄우고 복구중입니다' 의미에서
L4 1대, 웹서버2대, DB서버 2대 (Master-Slave Replication 방식)로 구성해서 L4 1대로 웹서버 접속만 이중화하고,
각 웹서버에서는 DB서버 마스터로 접속을 해서 쓰다가 장애가 발생하면 슬레이브 데이타를 사용해 마스터를 살려서 다시 투입하고,
안되면 슬레이브를 수동으로 마스터로 집어넣는 방법으로 쉽고 저렴하게 쓸 수도 있습니다.

그리고 L4대신 소프트웨어 방식으로 HAProxy 나 Nginx reverse proxy를 사용한 Load balancing 도 가능합니다.
추가로 한가지 고려해야 되는 점은 웹서버를 이중화 하게되면, 로그인 기능이 있는 경우 세션 이슈도 있습니다. L4에서 RR이 아닌 Sticky 방식으로
세션이 계속 유지될 수 있게끔 처리하거나, 세션을 공유할 수 있는 수단(파일공유 혹은 DB사용, Redis, Memcache등)을 고려해야 됩니다.
I적우 2023-06
L4 스위치는 기존에 있어서 가용가능합니다. 웹서버와 DB서버는 나누는게 좋을가요?
DB서버를 나누면 failover 형태로 운영하되 데이터는 어떻게 동기화 하는게 안정적일가요? 업로드 파일이나 이런게 동일해야 되니... NAS로 구성하는건 어떨런지요?
     
웹서버와 DB서버는 분리하시는 게 좋습니다.
그리고 DB데이터는 각 서버에서 로컬 디스크로 소유하고 있고, M-S 복제를 통해서 각 서버가 동일한 데이터를 들고있을 거구요.
웹서버에서 업로드로 발생하는 파일은 말씀하신 NAS 등으로 마운트 되서 한곳에서 관리되면 편합니다. NAS가 없어서 서버 1번으로 2번서버가 NFS마운트해서 사용하는 경우도 있습니다. 그런데 어떤 사이트는 업로드가 발생하면 서버 양쪽으로 모두 파일을 가질 수 있게 프로그램적으로 양쪽으로 업로드 처리한 것도 봤습니다만, 좋은 구조는 아니었습니다. 이런 경우에는 특정 서버에 파일이 없어서 나왔다 안나왔다 하는 문제도 빈번하게 나와서요.
          
I적우 2023-07
답변 감사합니다.
술이 2023-06
업로드 폴더는 파일서버 역할을 하는 서버를 각각 바라보게 설정을 해야됩니다. 경험이 없으면 아마 인증문제에서 삽질 많이 할거 같긴 하네요.
IIS쪽이라면 쉽게 구성이 가능한데 리눅스 기반은 인증 패턴을 어떻게 해야할지...(웹에서 호출하는 인증이랑 OS가 붙는 인증은 다름)
MariaDB는 윈도우 라이센스 부담 없으면 윈도우 클러스터 구성하면 쉽게 구현이 가능합니다.


QnA
제목Page 309/5727
2014-05   5253689   정은준1
2015-12   1778638   백메가
2023-06   3005   김한국2
2023-06   3984   쓰레기단장
2023-06   1645   hdsniper
2023-06   1584   블루썬
2023-06   3251   정무현
2023-06   2485   서울강북미…
2023-06   3185   I적우
2023-06   5714   송지만
2023-06   2707   pumkin
2023-06   2585   겨울나무
2023-06   2125   이매망량2
2023-06   2609   달콤한잡초
2023-06   2243   김영기대전
2023-06   3018   무아
2023-06   6924   호조
2023-06   3274   별들의속삭임
2023-06   2596   죠슈아
2023-06   1911   비빔밥빔비
2023-06   1961   메탈포스
2023-06   1963   죠슈아