-v: verbosity를 높이는 방법으로, 과정을 더 상세히 출력 -z: compress를 주는 옵션으로, 파일을 압축해서 복사. 용량이 큰 파일에 대해 사용 -h: 인간이 읽을 수 있는 형태로 복사 결과 출력 -a: Archive 모드로, symlink, 권한등의 속성을 그대로 복사. 항상 넣어 주는게 좋음 -l: symlink 형태로 복사 -p: 파일과 디렉토리들의 권한을 유지 -g: 그룹 속성을 유지 -o: 소유자 속성을 유지 -r: 디렉토리를 복사할 때 사용하는 옵션. -a 옵션을 사용할 경우 -a 안에 포함되어 있으므로 사용하지 않아도 됨
로컬에서 로컬로 파일 복사하기
모든 속성 유지, 전송 과정 로그 상세화, 복사 결과 출력
파일 용량이 적은 파일일 경우 -z 옵션 생략
rsync -avh <file_path> <target_path>
특정 파일 제외
rsync -avh --exclude <제외할_파일_path> <file_path> <target_path>
# txt 확장자 파일만 제외할 때
rsync -avh --exclude '*.txt' <file_path> <target_path>
# 복수개의 확장자에 대해 제외할 때
rsync -avh --exclude={'*.txt', '*.iso'} <file_path> <target_path>
무중단 배포란 서비스의 중단 없이 새로운 버전을 배포하는 것을 의미한다. 이용자의 서비스 이용에 지장을 주지 않는 것과 동시에 새로운 버전을 배포하는 것이 핵심인 것이다.
이를 위해선 로드 밸런서와 두 대 이상의 서버가 필요하다.
Blue/Green 배포 - 단순 배포 전략?
이전 버전 서버와 새로운 버전 서버를 두고, 공통 로드 밸런서를 통해 새로운 버전을 배포하는 전략이다.
Blue 서버: 이전 환경 서버
Green 서버: 새로운 배포 환경
Blue/Green 전략
장점
트래픽을 새로운 버전쪽으로 옮기기 때문에 호환성 문제가 발생하지 않는다.
단점
실제 운영에 필요한 리소스보다 2배의 리소스를 확보해야 한다.(서버가 두 대이고, 일질적인 트래픽이 통하는 서버는 이전 환경이기 때문)
Rolling 전략 - 순차 배포 전략?
운영중인 복수개의 인스턴스들을 하나씩 돌아가며(Rolling) 로드 밸런서로부터 트래픽을 끊고 새로운 버전 배포를 하는 전략이다. 즉, 새로운 버전 배포가 완료가 되면 다시 로드 밸런서에 연결을 하고, 그 다음 인스턴스를 로드 밸런서로부터 끊고 새로운 버전을 배포하는 것을 반복하는 것이다.
장점
많은 서버 자원을 배포하지 않아도 무중단 배포 가능
인스턴스마다 차례로 돌아가며 배포를 진행하므로, 배포로 인한 위험이 줄어든다.
단점
새 버전을 배포할 때마다 서비스 중인 인스턴스의 개수가 줄어, 서버 부담이 증가한다.
배포가 진행되는 동안 새로운 버전과 이전 버전의 호환성 문제가 발생할 수 있다.
Canary 배포 - 위험 감지 전략?
Canary 전략
이전 버전과 새로운 버전이 동시에 가동되는 방식으로, 새 버전 인스턴스는 일부 사용자에게만 서비스 하는 방식이다. 새 버전이 정상적으로 작동함을 확인하면, 전체 트래픽을 새 버전으로 전환한다. 오류가 발생한다면, 일부 사용자에게만 발생하므로 오류 방지에 효과적이다.
참고 (개인적 의견)
Canary 전략이라는 이름이 붙은 이유는 탄광에서 위험 감지용으로 데려가던 것에서 유래한 것 같다.
장점
사용자 테스트와 무중단 배포가 동시에 가능함
새로운 버전으로 인한 위험을 감소시킬 수 있다.
단점
Rolling 전략과 마찬가지로 이전과 새로운 버전이 동시에 존재하므로 호환성 문제가 발생 가능하다.