SCP를 사용하여 로컬파일을 EC2에 업로드 해보기

2022.06.30

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 SCP를 사용하여 로컬에서 EC2에 파일을 업로드 하는 방법에 대해 알아 보겠습니다.

SCP란

Secure Copy의 약자로 ssh 원격 접속 프로토콜을 기반으로 원격지에 있는 파일과 디렉터리를 업로드 하거나 다운로드를 할때 사용하는 파일 전송 프로토콜 입니다. 네트워크 통신이 가능한 환경에서 ssh와 동일한 22번 포트와 Identity file을 사용하여 보안이 안정된 프로토콜 입니다.

Public EC2인스턴스에 파일 업로드 해보기

하나의 파일을 업로드하는 경우

코드 형식

scp [옵션] [파일명] [EC2 Host이름]@[EC2 Public ip]:[받는 위치]

scp -i test.pem test1.txt ec-user@10.0.0.0:/home/ec2-user

복수의 파일을 업로드하는 경우

코드 형식

scp [옵션] [파일명 1] [파일명 2] [EC2 Host이름]@[EC2 Public ip]:[받는 위치]

scp -i test.pem test1.txt test2.txt ec-user@10.0.0.0:/home/ec2-user

디렉토리를 업로드하는 경우

코드 형식

scp [옵션] [디렉터리 이름] [EC2 Host이름]@[EC2 Public ip]:[보낼 경로]

scp -i test.pem -r testfiles ec-user@10.0.0.0:/home/ec2-user

파일을 다운로드 하는경우 (EC2 → 로컬)

코드 형식

scp [옵션] [EC2 Host이름]@[EC2 Public ip]:[원본 위치] [받는 위치]

scp ec-user@10.0.0.0:~/home/ec2-user/ec2Test.txt /Users/Guest/desktop

SCP옵션에 대해

명령어 설명
r 디렉토리 내 모든 파일 및 디렉토리 복사 scp -r
p 원본 권한 속성 유지 복사 scp -p
P(대문자) 포트 번호 지정 복사 scp -P[포트 번호]
c 압축 복사 scp -c
v 과정 출력 복사 scp -v
a 아카이브 모드 복사 scp -a

Private EC2인스턴스에 파일 업로드 해보기

Public EC2인스턴스에 업로드 할때에는 로컬에서 바로 업로드 할 수 있지만 Private EC2인스턴스에 업로드 하기 위해서는 Bastion Host서버를 통해 업로드 해야할 필요가 있습니다.

1. Bastion Host로 접속 하기

먼저 Bastion Host로 간단하게 접속하기 위해 아래의 블로그를 참고하여 설정 해줍니다.

2. 암호 로그인으로 교체하기

키페어 파일을 Public EC2인스턴스에 업로드하는 것은 권장되지 않기 때문에 아래의 블로그를 참고하여 Private EC2인스턴스 접속 방법을 패스워드 접속 방법으로 교체 해줍니다.

3. Public EC2인스턴스에 접속을 합니다.

ssh -i test.pem ec2-user@10.0.0.0

4. Private EC2인스턴스에 파일 업로드하기

scp [파일명] [EC2 Host이름]@[EC2 Private ip]:[받는 위치]

scp test1.txt ec-user@10.0.0.0:/home/ec2-user

Windows 한경의 경우

마무리

이번 블로그에서는 로컬에서 EC2인스턴스로 파일을 업로드 하는 방법에 대해 알아보았습니다. EC2인스턴스 뿐만 아니라 아래의 참고 자료를 보시면 일반 Linux환경에 파일을 업로드 하는 방법도 적혀져 있으니 확인해 주시면 감사하겠습니다. 평소에 로컬에서 EC2인스턴스로 파일을 업로드 하고 싶으셨던 분들에게 조금이나마 도움이 되었으면 좋겠습니다.

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !