DevOps/AWS

AWS EC2 인스턴스에 파일 업로드 및 다운로드 (SCP 명령어)

Riz.Dev 2023. 3. 30. 18:45

SCP 명령어를 통한 EC2 인스턴스와 파일 교환


SCP 명령어

SCP는 Secure Copy의 약자로 SSH(Secure Shell) 프로토콜을 기반으로 파일이나 디렉토리를 전송 할 때 사용하는 파일 전송 프로토콜입니다.
네트워크 통신이 가능한 환경에서 SSH와 같은 22번 포트와 Identify File을 이용해 파일을 안전하게 전송할 수 있습니다.

 

EC2와 통신하는 예제와 함께 SCP 명령어의 구문에 대해 알아보겠습니다.

 

기본 SCP명령어의 구문은 다음과 같습니다.

scp [옵션] [송신 파일] [호스트 이름]@[호스트 ip]:[수신 경로]

로컬에서 EC2로 파일 업로드

로컬에서 EC2로 파일을 업로드 하는 구문과 예제입니다.

scp [옵션] [Identify File] [송신 파일] [EC2 호스트 이름]@[EC2 퍼블릭 ip]:[수신 경로]
scp -i ec2-key-pair.pem test.txt ec2-user@3.39.4.14:/home/ec2-user

로컬의 test.txt 파일을 EC2의 /home/ec2-user 폴더로 전송합니다.

EC2에서 ls 명령어로 확인해보면 다음과 같습니다.

[ec2-user@ip-172-31-3-45 ~]$ ls /home/ec2-user
test.txt

EC2에서 로컬로 파일 다운로드

EC2에서 로컬로 파일을 다운로드 하는 구문과 예제입니다.

scp [옵션] [Identify File] [EC2 호스트 이름]@[EC2 퍼블릭 ip]:[송신 파일] [수신 경로]
scp -i ec2-key-pair.pem ec2-user@3.39.4.14:/home/ec2-user/test.txt /home/rizdev

EC2의 /home/ec2-user/test.txt 파일을 로컬의 /home/rizdev 폴더로 전송합니다.

로컬에서 ls 명령어로 확인해보면 다음과 같습니다.

[rizdev@localhost ~]$ ls /home/rizdev
test.txt

옵션

  • -i : Identify File을 지정
  • -r : 디렉토리 및 하위 모든 파일을 복사
  • -p : 원본 권한 속성 유지 복사
  • -P : 포트 번호 지정 복사
  • -c : 압축하여 복사
  • -v : 복사 과정을 출력
  • -a : 아카이브 모드로 복사