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

각 도구의 특성과 사용 환경을 고려하여 적절한 방식을 선택하는 것이 중요합니다.