SCP를 사용하여 로컬파일을 EC2에 업로드 해보기
소개
안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 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)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !