온프레미스와 클라우드 데이터 동기화 - rsync 동기화

Se0ng_1l·2024년 5월 17일
0

목적 :

온프레미스 서버의 데이터를 클라우드에 동기화하여 온프레미스 서버가 Down 되더라도 똑같은 환경에서 작업할 수 있는 연속성을 제공할 수 있어야 한다.

목표 :

  • rSync와 Crontab을 사용해 온프레미스의 데이터를 클라우드에 정기적으로 백업
  • 백업할 디렉토리는 다음과 같다.
    • /home2

🤔Why rsync?

💡 rsync는 원격서버 데이터 동기화를 위해 만들어진 유틸리티로 소유권, 그룹권한, 심볼릭 링크, 타임스탬프 등 공유로 여러 서버에 동기화할 수 있습니다. 이미 동기화된 데이터는 제외하고 동기화하여 네트워크 트래픽을 최소화할 수 있으며, ssh 프로토콜을 이용해 통신하여 데이터를 암호화해 보안을 확보할 수 있습니다.

과정 :

  1. 두 서버 통신간의 로그인이 필요하므로 [온프레미스][클라우드] 모두 키를 생성한다.
    ```bash
    mkdir ~/.ssh && cd ~/.ssh
    ssh-keygen -t rsa -b 2048 -f [사용하고 싶은 키 이름]
    ```
  1. 각 서버 클라이언트간의 키로 접속할 수 있도록 *.pub의 내용을 authorized_keys에 추가한다.

    ```bash
    # *.pub 파일 내용 확인 명령어
    
    cat ~/.ssh/[키 이름].pub
    ```

  2. [두 서버 모두]root에 키 복사하기

    sudo cp -r ~/.ssh /root

  1. 접속 테스트

    ssh [계정]@[도메인 및 IP주소] -p [ssh 포트번호] -i [2번에서 생성한 private키 위치]

  1. [두 서버 모두]에 rsync 설치

    sudo apt install rsync
  2. [두 서버 모두]에 /home2 디렉토리 생성

    sudo mkdir /home2
  3. [두 서버 모두] 임의의 계정 생성

    sudo useradd -m -d /home2/kim -s /bin/bash -c "테스트" kim
    
    sudo passwd kim
    
    su kim
    
    cd
    
    pwd

  1. [온프레미스]에서 kim으로 계정 전환한 뒤 임의의 작업파일 생성하기

    vi hello.cpp
    
    # 아래 내용 작성
    
    #include <iostream>
    using namespace std;
    
    int main(){
            cout << "Hello, World" << endl;
            return 0;
    }
    
    # 컴파일 및 실행파일 만들기
    g++ hello.cpp -o hello
    
    # 실행
    ./hello

9. 테스트해보기

9-1. [두 서버 모두]에서 /etc/ssh/sshd_config 수정

    ```bash
    sudo vi /etc/ssh/sshd_config
    
    '''
    # 수정
    PermitRootLogin prohibit-password
    '''
    
    sudo systemctl restart sshd
    ```

9-2. [온프레미스]에서 [클라우드]로 데이터 동기화시킨 후 확인

    ```bash
    sudo rsync -avruz --delete --stats -e \
    "ssh -p 1004 -i /home/assistant/.ssh/cloud_rsa" \
    /home2 root@XXX.XXX.XXX.XXX:/
    
    # -a : 파일의 수정일자 소유자정보를 그대로 전송하는 옵션
    # -v : 전송과정을 출력하는 옵
    # -r : 하위 디렉토리까지 전송하는 옵션
    # -u : 대상에 있는 파일보다 원본 파일이 더 최신이거나 크기가 더 큰 경우에만 복사
    # -z : 전송시 압축해서 전송하는 옵션
    ```

9-3. [클라우드]에서 [온프레미스]로 데이터 동기화시킨 후 확인

profile
치타가 되고 싶은 취준생

0개의 댓글