0%

rabbitmq와 mariadb 이중화 구성

개발하고 있는 서비스 운영을 위해 이중화 구성을 해본 경험을 적어본다
서비스에서는 비동기 처리를 위해 celery + rabbitmq , 영속성 처리를 위해 MariaDB를 사용하고 있다.
역할은 celery는 Task Queue, rabbitmq는 celery의 message broker로 사용한다.

Celery의 HA를 위해서는 rabbitmq를 clustering, mirroring을 설정하고
HA Proxy를 이용해서 단일 진입점 설정이 필요하다.
여기서는 rabbitmq의 설치부터 clustering+mirroring을 진행하겠다.

그리고 데이터 영속성을 위해 MariaDB를 사용하는데
설치부터 Replication을 위한 Master/Slave설정. Failover를 위한 MHA설정을 각각 진행하겠다.

진행한 단계만 명세를 하고 상세내용은 시간이 생기는 대로 작성하겠다.
기억엔 순서가 중요하니까 말이다

RabbitMQ

  1. erlang 설치
  2. rabbitmq 설치(https://www.rabbitmq.com/which-erlang.html)
  3. erlang cookie 일치
  4. node 설정
  5. clustering 구성
  6. mirroring구성

    참조

MariaDB

구성 환경 : Ubuntu 16.04 , VIP 1ea

  1. MariaDB설치
  2. MariaDB설정
  3. MariaDB Replication설정
  4. MHA Node설치
  5. MHA Master설치
  6. MHA Master에서 각서버 접근을 위해 SSH Key 발행
    6-1. MHA Master랑 DB Master가 같은 경우 자기 자신도 추가
  7. 방화벽 및 Hosts 확인
  8. MHA Master설정
  9. 기본 제공하는 Script에서 Customizing : VIP를 올리고 바인딩하는 내용 추가
    9-1. master_ip_change
    9-2. master_ip_failover
    ssh로 sudo 명령어 보낼시 파이프(|)를 통해 비번 입력을 리다이렉션 할 수 있다.(echo ‘PASSWORD’ | ssh -tt “sudo ifconfig”)
  10. MHA에서 제공하는 체크 테스트(SSH, Replication,Running)
  11. Failover 시나리오 실행으로 테스트

참조