0C 개발일지

AWS Linux 서버에 파일 및 폴더 업로드하기 본문

AWS

AWS Linux 서버에 파일 및 폴더 업로드하기

0C 2024. 7. 31. 17:37

 AWS Linux 서버에 파일 및 폴더 업로드하는 법을 배웠다. 

 

 


 

AWS Linux 서버에 파일 업로드하기

 

  • 지난 시간 중지 시켰던 리눅스 서버를 재시작하고,  퍼블릭 IPv4 주소를 복사한다. 

 

 

  • PuTTY를 통해 리눅스 서버에 접속한다.
    • PuTTY와 명령프롬프트 창을 동시에 띄워놓고 명령어를 작성할 것이므로 명령프롬프트 창의 설명은 파란색으로 표기하겠다. 

 

 

  • 퍼블릭 IPv4 주소를 인터넷 주소창에 입력하여 확인한다.

  • 윈도우(로컬)에서 명령 프롬프트를 관리자 권한으로 실행한다.
  • Linux 서버에 업로드할 파일이 있는 폴더까지 이동한다. 
    • SSH 키를 사용하여 로그인 하므로 해당 폴더 안에는 업로드 할 파일 외에 키 파일이 반드시 있어야 한다. 

 

scp -i 키파일 파일명 사용자명@public ip(서버주소) : 서버 경로 지정
예) scp -i mypark-keypair.pem index.html ec2-user@0.00.000.000:~
  • 참고로 서버 연결 시엔 pem 파일이 필요하므로 기존의 ppk 파일을 PuTTYgen 프로그램을 통해 ppk → pem으로 변환해야 함

  • ppk    pem 변환 방법
    • Load → 해당 ppk 업로드 → Conversions → Export OpenSSH key → .pem 으로 저장

  • ls 명령어 입력 (ec2-user 사용자일 경우)하여  업로드된 index.html 파일 확인한다. 

 

홈 말고 루트 폴더에 파일 업로드하기

 

 

Home(~) 말고 루트(/) 폴더에 있는 폴더에 파일을 업로드 시도 해보고자 한다.

하지만 Permission denied  라고 뜨는데, 이유는 보안 때문이다.

 

서버 접속 시, 보안상의 이유로 바로 루트로 접근되지 않고 사용자(EC2-USER)를 거쳐서 접근하게 되므로,

루트 폴더에 바로 파일 업로드를 할 수 없는 것이다. 

 

그럼 어떻게 하느냐? 루트 계정에서 ec2-user 사용자가 해당 폴더에 접근할 수 있도록 변경해주어야 한다.

  • 일단, 사용자 계정에서 sudo -i 명령어를 입력하여 root 계정으로 변환하고, 루트 폴더로 이동한다.

  • ls -l 명령어 입력하여 현재 디렉토리의 파일 및 디렉토리의 상세 정보를 확인할 수 있는데, 폴더의 소유자, 소유그룹이 모두 ROOT로 되어 있는 것을 확인 할 수 있다.
  • 일단, mkdir 폴더명 를 입력하여 폴더를 만들겠다.

 

사용자가 해당 폴더에 접속할 수 있도록 소유자를 ec2-user로 변경한다. 

sudo chown(change owner) -R(하위 폴더까지 포함) 사용자명 폴더명/

sudo chown -R ec2-user test10/

소유그룹도 변경하고 싶다면 아래의 명령어를 작성하면 된다. 

sudo chgrp(change group) 사용자명 폴더명/
sudo chgrp ec2-user test10/

만약 파일 권한 (읽기, 쓰기, 실행(rwx))을 모두 가능하게 변경하고 싶으면 아래의 명령어를 작성하면 된다. 

chmod(change mod) 777 폴더명
chmod 777 test10

변경 완료 했다면 명령 프롬프트 창에서 scp -i mypark-keypair.pem index.html ec2-user@0.00.000.000:/test10 명령어 입력하여 해당 폴더로 파일 이동한다. 

PuTTY에서 확인한다. 

 

기존 파일을 다른 폴더에 있는 파일로 교체하기

  • 저번 시간에 생성 했던 html 폴더 안에 있는 index.html 파일을 test 폴더의 index.html 파일로 교체해 보자.

  • test10 폴더 위치에서 mv index.html /var/www/html 명령어 입력하고, mv: overwrite '/var/www/html/index.html'? 질문에 yes 라고 입력한다. 
  • html 폴더로 가서 ls -l 명령어 입력해보면 교체된 것을 확인할 수 있다. 

 

변경전
변경 후

인터넷 주소창에 퍼블릭 IPv4 주소 입력해서 변경된 내용 확인할 수 있다.

 

  • rmdir 폴더 경로 명령어 입력 하여 빈 test10 폴더 삭제한다.
  • rmdir 명령어는 폴더가 비어 있을 때만 삭제할 수 있다. 폴더에 파일이나 다른 폴더가 있으면 삭제되지 않으므로, 만약 비어 있지 않은 폴더를 삭제하고 싶으면 rm -r 폴더 경로 명령어 를 사용하면 된다.

AWS Linux 서버에 폴더 업로드하기

scp -i 키파일 -r 폴더경로 사용자명@public ip(서버주소) : 서버 경로 지정

예) scp -i mypark-keypair.pem -r C:\Users\Miyoung\Desktop\test ec2-user@0.00.000.000:~

Home 화면에 업로드 하였으므로 cd /homeec2-user 폴더로 이동하면 업로드 한 test 폴더를 확인할 수 있다.

 

폴더 생성하여 이미지 파일 업로드 하기(복습)

  • /var 에 test 폴더 생성하여 이곳에다가 이미지 파일을 업로드할 예정이다. 
  • var 폴더로 이동하여 mkdir 파일명 명령어 입력하여 test 폴더 생성한다.

해당 폴더 소유자, 소유그룹 ec2-user로 변경한다. 

 

해당 폴더 읽기 쓰기 실행 권한 모두 가능하도록 수정한다.

 

이미지 파일을 키파일이 있는 폴더로 복사한 다음에 명령프롬프트창에서 scp -i mypark-keypari.pem test.jpg ec2-user@0.00.000.000:/var/test 입력한다. (해당 폴더 위치에서 명령어 입력해야 함)

 

서버에서 ls -l 명령어 입력면 정상적으로 이동된 것을 확인할 수 있다.