scp(secure copy)
scp는 로컬 호스트와 원격 호스트 또는 두 개의 호스트 간에 파일을 전송하는 수단이다.
SSH(Secure Shell)을 통한 파일 전송 방식이며 별도의 FTP 클라이언트를 설치하지 않아도 파일 송수신이 가능하다.
파일 전송을 하기 위해 비슷한걸로 rsync라는 것도 있다고 한다.
여기서는 scp를 통해 로컬에서 빌드한 jar 파일을 EC2 인스턴스로 전송해보도록 한다.
1. 스프링 빌드 파일 생성
1-1. 스프링 프로젝트 경로로 이동해서 빌드 파일 생성
본인은 빌드하다가 자바 버전 문제 때문에 이런 오류를 만나서 고생했다.
사용하는 CLI에 따라 명령어가 다를테지만 윈도우/Git Bash 기준으로는 아래처럼 한다.
1-2. 빌드 된 jar 파일 확인
사용 환경에 따라 맞는 방식으로 빌드를 하고 build/libs 폴더로 가면
아래처럼 두가지의 jar 파일을 확인할 수 있다.
여기서 두 jar 파일을 간단히 설명하자면 아래와 같다.
- 위의 용량이 적은 plain이 붙은 jar 파일은 라이브러리 없이 순수한 jar 파일
- 아래의 용량이 큰 jar 파일은 라이브러리를 포함한 jar 파일
이 중 우리가 사용할건 아래의 jar 파일이다.
2. scp로 로컬 -> EC2로 파일 전송
2-1. 파일 전송 확인을 위해 EC2 접속
로컬과 EC2 두가지 상태를 동시에 비교하기 위해 CLI 창을 아래처럼 두개 이용한다.
2-2. scp를 이용해 파일 전송
scp는 ssh와 입력 파라미터가 비슷한데, 아래와 같은 양식으로 작성한다.
작성 코드 길이를 줄이기 위해 EC2 접속 방법 중 EC2 경로를 연결한 탄력적 IP 주소를 입력하는 방식을 선택했다.
scp -i {키 페어 파일 경로} {전송할 파일 경로} {전송받을 위치 경로}
전송받을 경로는 EC2에서 아래처럼 리눅스 명령어 pwd로 확인할 수 있다.
3. EC2에서 전송받은 파일 확인
로컬에서 EC2로 scp를 통해 파일을 전송하고 EC2에서 확인해보면 아래처럼 파일이 전송된걸 확인할 수 있다.
참고로 로컬 -> EC2로 파일 전송도 가능하지만, EC2 -> 로컬로도 파일 전송이 가능하다.
아래처럼 작성하면 EC2에서 로컬로 파일 전송을 할 수 있다.
'DevOps > 서비스 배포' 카테고리의 다른 글
AWS 배포 6: 보안 그룹 설정 (0) | 2024.02.29 |
---|---|
AWS 배포 5: EC2에서 Spring Boot 서버 띄우기 (0) | 2024.02.28 |
AWS 배포 3: SSH로 EC2 인스턴스 접속 (0) | 2024.02.17 |
AWS 배포 2: 탄력적 IP 설정 (0) | 2024.02.16 |
AWS 배포 1: EC2 인스턴스 생성 (0) | 2024.02.13 |