0C 개발일지
AWS Linux 서버에 파일 및 폴더 업로드하기 본문
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 /home → ec2-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 명령어 입력면 정상적으로 이동된 것을 확인할 수 있다.
'AWS' 카테고리의 다른 글
로드밸런싱 및 오토스케일링이란? (0) | 2024.08.02 |
---|---|
AWS Linux 서버에 MySQL 설치 및 접속하기 (1) | 2024.08.01 |
MySQL 설치 (0) | 2024.07.29 |
Linux 웹 서버 구축 (0) | 2024.07.26 |
AWS EC2 Public 서버 생성 및 PuTTY 를 통한 연결 (Linux) (2) | 2024.07.24 |