Study/NCP

[NCP] 간편한 VIP 관리를 위한 NCP CLI 스크립트

Dream Amal 2024. 4. 19.

이번 포스트에서는 NCP CLI를 활용하여 VIP(Virtual IP)를 간편하게 관리하는 스크립트를 소개하려 합니다.

VIP를 사용하는 서버 환경에서

주석을 통해 사용자 정의 가능한 부분을 명확히 구분해두어 쉽게 적용하고 수정할 수 있습니다.

 

VIP 란?

VIP는 서버 환경에서 중요한 개념 중 하나로,

네트워크 장애 또는 서버 장애 시 트래픽을 안전하게 전달하기 위해 사용됩니다.

NCP(Naver Cloud Platform)는 이러한 VIP를 관리하기 위한 CLI(Command Line Interface)를 제공합니다.

이번 글에서는 이 CLI를 이용하여 VIP를 활성화하고 비활성화하는 스크립트를 만들어보려 합니다

VIP UP Script

이 스크립트는 VIP를 활성화합니다.

호스트 이름과 VIP 주소를 설정할 수 있으며, 네트워크 인터페이스 번호와 같은 세부 정보도 자동으로 설정됩니다.

#!/bin/bash
HOST1=p-hpkice-db1-l # instance # 1 hostname
HOST2=p-hpkice-db2-l # instance # 2 hostname

VIP_ADDR=192.168.199.100 # secondary IP
VIP_NETMASK=255.255.255.0 # secondary IP netmask
DEVNAME=eth0:1 # secondary IP interface name

case $(hostname -s) in
"${HOST1}")
# networkInterfaceNo #1
NO=123572
;;
"${HOST2}")
# networkInterfaceNo #2
NO=123573
;;
esac

/var/lib/edb/cli_linux/ncloud vserver assignSecondaryIps --regionCode KR --networkInterfaceNo ${NO} --secondaryIpList ${VIP_ADDR} --secondaryIpCount 0

if [[ ${?} -ne 0 ]]; then
echo "Ncloud cli command Error"
exit 1
fi

sudo ip addr add ${VIP_ADDR}/${VIP_NETMASK} dev ${DEVNAME} label ${DEVNAME}
if [[ ${?} -ne 0 ]]; then
echo "ip command Error"
exit 1
fi
exit 0

VIP Down Script

이 스크립트는 VIP를 비활성화합니다.

VIP UP Script와 마찬가지로 사용자 정의가 가능하며, 필요한 경우 VIP를 해제할 때 사용됩니다.

#!/bin/bash
HOST1=p-hpkice-db1-l # instance # 1 hostname
HOST2=p-hpkice-db2-l # instance # 2 hostname
VIP_ADDR=192.168.199.100 # secondary IP
VIP_NETMASK=255.255.255.0 # secondary IP netmask
DEVNAME=eth0:1 # secondary IP interface name

case $(hostname -s) in
"${HOST1}")
# networkInterfaceNo #1
NO=123572
;;
"${HOST2}")
# networkInterfaceNo #2
NO=123573
;;
esac

sudo ifdown eth0:1

/var/lib/edb/cli_linux/ncloud vserver unassignSecondaryIps --regionCode KR --networkInterfaceNo ${NO} --secondaryIpList ${VIP_ADDR}

if [[ ${?} -ne 0 ]]; then
echo "Ncloud cli command Error"
exit 1
fi

 

사용법 및 주의 사항

  • 각 스크립트를 적절한 이름으로 저장한 후 실행 권한을 부여하세요. (chmod +x script_name)
  • 호스트 이름과 VIP 주소를 해당 서버에 맞게 설정하세요.
  • 스크립트를 실행할 때마다 관련된 네트워크 및 클라우드 환경에 따라 적절한 권한이 필요할 수 있습니다.
728x90

댓글