DevSecOps/etc
rsync vs SCP vs SFTP 성능 비교 및 선택 기준
봉의일상
2025. 3. 2. 22:23
1. 개요
파일 전송을 위해 자주 사용되는 rsync, scp, sftp의 성능을 비교하고, 어떤 상황에서 어떤 도구를 선택해야 하는지 살펴봅니다. 이를 위해 실험 및 벤치마크를 수행하여 속도를 비교합니다.
2. 각 도구의 특징
2.1 rsync
- 특징
- 증분 전송 방식 (변경된 부분만 전송)
- SSH를 이용한 보안 전송 가능
- 압축 옵션 제공으로 네트워크 트래픽 감소 가능
- 파일 동기화 및 백업에 적합
- 사용 예시
- rsync -avz /local/path/ user@remote:/remote/path/
2.2 SCP (Secure Copy Protocol)
- 특징
- SSH를 기반으로 한 단순한 파일 복사
- 전체 파일을 전송 (증분 전송 없음)
- 다중 파일 전송 시 속도가 느려질 수 있음
- 설정이 간편하며 보안성이 높음
- 사용 예시
- scp -r /local/path/ user@remote:/remote/path/
2.3 SFTP (SSH File Transfer Protocol)
- 특징
- SSH를 이용한 파일 전송
- 상호작용 가능한 인터페이스 제공
- 다중 파일 전송 시 성능이 우수할 수도 있음
- FTP보다 보안성이 뛰어나며 원격 파일 관리 가능
- 사용 예시
- sftp user@remote sftp> put localfile.txt /remote/path/
3. 성능 비교 실험
3.1 실험 환경
- 서버 환경: Ubuntu 22.04 LTS, 4 vCPU, 8GB RAM, 1Gbps 네트워크 대역폭
- 테스트 파일: 1GB 단일 파일, 100MB x 10개 파일, 10KB x 10,000개 파일
- 네트워크 환경: 로컬 네트워크 및 원격 서버 환경
3.2 벤치마크 결과
파일 유형 | RSync | SCP | SFTP |
1GB 단일 파일 | 빠름 (압축 가능) | 중간 | 느림 |
100MB x 10개 | 빠름 (병렬 처리 가능) | 중간 | 느림 |
10KB x 10,000개 | 매우 빠름 (변경된 파일만 전송) | 느림 | 빠름 (대량 처리 최적화) |
4. 선택 기준
4.1 rsync를 선택해야 할 경우
- 대량의 파일을 동기화해야 할 때
- 네트워크 트래픽을 최소화하고 싶을 때
- 변경된 파일만 업데이트하고 싶을 때
4.2 SCP를 선택해야 할 경우
- 단순한 파일 복사가 필요할 때
- 추가적인 설정 없이 빠르게 파일을 전송해야 할 때
- 보안이 중요한 경우 (SSH 기반)
4.3 SFTP를 선택해야 할 경우
- GUI 기반의 파일 전송이 필요할 때
- 원격 서버에서 파일을 관리해야 할 때
- 대량의 작은 파일을 한 번에 전송해야 할 때
5. 결론
- 빠른 동기화가 필요하다면 rsync
- 단순한 파일 전송이 필요하다면 scp
- 원격 파일 관리 및 대량의 작은 파일 전송이 필요하다면 sftp
각 도구의 특성과 사용 환경을 고려하여 적절한 방식을 선택하는 것이 중요합니다.