이전에 소개한 글에서는 리눅스 환경에서 MariaDB를 활용한 복제 이중화와 MaxScale을 이용한 로드밸런싱 설정에 대해 알아보았습니다. 데이터의 안정성과 가용성을 높이기 위해 MariaDB의 복제 이중화를 구성하고, 서비스의 안정성을 제공하기 위해 MaxScale로 로드밸런싱을 구성하는 내용에 대해 상세히 설명하였습니다. 자세한 내용은 이전 포스트에서 확인하실 수 있습니다.
2024.02.27 - [DB] - [Linux/DB] 리눅스 MariaDB MaxScale 이중화 설정 예제 - 6(DB 복제 및 maxscale 로드밸런싱 테스트 시험)
또한, 이전에 작성한 글에서는 리눅스 환경에서 Apache2를 이용한 웹 서버의 이중화 구성에 대해 알아보았습니다. 서비스의 중단 없는 운영을 위해 Keepalived를 사용하여 Active 서버와 StandBy 서버를 구성하는 방법에 대해 상세히 설명하였습니다. MariaDB 이중화를 위해 VirtManager를 활용하여 가상의 웹 서버 2개를 생성하였던 것처럼 웹 서버도 2개를 설치해야합니다. 자세한 내용은 이전 포스트에서 확인하실 수 있습니다.
이전에 작성한 글에서는 리눅스 환경에서 톰캣을 사용하여 HTTPS를 적용하고, keytool을 활용하여 키스토어를 생성하는 방법에 대해 알아보았습니다. 웹 서버의 보안을 강화하기 위해 HTTPS를 적용하고, 리눅스에서 제공하는 기본 도구인 keytool을 사용하여 키스토어(JKS)를 생성하는 방법에 대해 상세히 설명하였습니다. 만약 웹 서버를 구성하려하는데 HTTPS를 사용하셔야한다면 자세한 내용은 이전 포스트에서 확인하실 수 있습니다.
2021.12.03 - [Linux/Tomcat] - Linux 톰캣 HTTPS 적용 - 키스토어 생성하기(keytool jks)
먼저 리눅스 환경에서 Active 웹 서버를 구성하는 방법에 대해 알아보겠습니다. 아래는 서비스의 가용성을 높이기 위해 Keepalived를 활용하여 Active 웹 서버를 설정하고, 이중화 환경을 구축을 위한 환경설정 예제입니다. Real IP는 Active, StandBy 서버가 각각 다른 아이피를 가지고 있지만, 장애 대응을 위한 가상아이피(VIP)는 서로 같은 아이피를 부여합니다. priority와 state를 MASTER로 설정함으로써 VIP 점유 우선권을 높여줍니다. 이렇게 설정한 후 keepalived 서비스를 재실행합니다.
- Active 서버에 접속하여 아래 명령어 실행
- enp1s0 항목은 [본인 PC의 네트워크 인터페이스명] 를 입력
- 172.16.3.34/16 항목은 설정할 가상 아이피(VIP) 설정, 이후 Active, StandBy 서버간 우선권을 주고 받는다.
$ sudo vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
interface enp1s0
state MASTER
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass test1234
}
virtual_ipaddress {
172.16.3.34/16
}
}
$ sudo service keepalived restart
$ sudo service keepalived status
$ ip addr
마지막으로, 리눅스 StandBy 웹 서버에도 keepalived 환경설정을 수정합니다. Active 서버보다 priority를 낮춥니다. 그리고 state에 BACKUP을 설정함으로써 StandBy 서버가 됩니다. 만약 Active 서버(Master)가 icmp가 실패하거나 서버가 장애가 발생했다고 판단하면 VIP 우선권을 BACKUP 서버가 가져갑니다.
$ sudo vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
interface enp1s0
state BACKUP
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass test1234
}
virtual_ipaddress {
172.16.3.34/16
}
}
$ sudo service keepalived restart
$ sudo service keepalived status
$ ip addr
이후 같은 로컬 망에 있는 다른 호스트 PC에서 가상아이피(VIP)로 핑을 보내고 arp 테이블을 확인해보면 Active 서버의 MAC 주소가 등록되어있는 것을 확인할 수 있습니다.
$ ping 172.16.3.34
$ arp -a