저번시간에 EC2 인스턴스 생성 및 원격 접속 툴(Tera Term, 테라텀)을 이용하여 우분투에 접속해보았습니다.
저희가 생성한 EC2 인스턴스 OS의 운영체제가 우분투 이므로 (리눅스 파생) 간단한 리눅스 명령어에 대해 복습해보고
추가로 웹서버구축을 위해 아파치2를 설치해보도록 하겠습니다.
우선 테라텀으로 인스턴스의 ip로 입장합니다.
터미널창이 너무 작아서 작업하기 힘드므로 상단의 설정-> 터미널-> 터미널 크기를 적절히 조절해줍니다.
글꼴은 설정-> 글꼴에서 바꿀 수 있습니다. 저는 consolas체로 변경했습니다.
이제 잠시 우분투의 시스템 디렉토리의 구조를 알고 넘어가겠습니다.
리눅스의 파일 시스템 구조(디렉토리)는 기본적으로 아래와 같은 트리 형태로 구성되어있습니다.
최상단이 루트 디렉토리고 그 아래에 있는 디렉토리는 일반 유저가 사용할 수 있는 디렉토리입니다.
리눅스(Linux)에서 특정 명령을 실행하거나 파일에 접근하기 위해서는 루트(root) 권한이 필요한데,
일반 사용자(유저)가 root 권한을 사용하기 위해서 su, sudo 등의 명령어를 사용합니다.
일반 사용자는 루트 권한이 없으므로 특정 작업들에 대해서는 루트 권한으로의 변경이 필요합니다.
처음 우분투를 켰을 때는 일반 사용자로 되어있고 최초 root 계정을 생성하기위해 비밀번호를 설정해야하는데,
아래 명령어로 루트 계정의 비밀번호를 설정해줍니다.
sudo passwd root
(명령어 입력 후 비밀번호 설정+확인의 단계를 거칩니다.)
일반 유저에서 루트계정으로 전환하기 위해 많이 사용하는 명령어는 다음과 같습니다.
1. su -
2. su
3. su - root
3개중에 아무거나 편한 명령어를 사용하면 됩니다. 루트계정에서 일반 계정으로 다시 넘어오려면 "exit"를 입력하면 됩니다.
위 사진을 보면,일반 계정은 "사용자 이름"@ip :~$" 으로, 루트 계정은 "root@ip:~#" 형식으로 프롬프트에 뜨게됩니다.
이 때 물결 표시는 홈 디렉토리의 위치( 기본: /home/ubuntu)를 의미하고 달러($)는 일반 계정, 샵(#)은 루트 계정을 나타냅니다.
#: 루트계정, $:일반계정, ~:홈 디렉토리
홈 디렉토리는 /home/사용자명 으로 되어있고 특별이 건드린게 없다면 /home/ubuntu로 되어있습니다.
이제 간단하게 쉽고 많이 사용되는 명령어들을 배워보도록 하겠습니다.
1. cd : 디렉토리 이동
- cd ~: 홈 디렉토리로 이동
- cd: 홈 디렉토리로 이동
- cd .. : 직전 디렉토리로 이동
2. ls: 파일, 디렉토리 목록 출력
- ls -l : 파일, 디렉토리에 대한 상세 정보 출력
3. pwd: 현재 디렉토리의 절대경로 출력
4. mkdir, rmdir: 디렉토리 삭제
5. touch: 빈 파일 생성, 주로 nano 편집기 사용
6. cat: 파일 내용 출력
* cat file1 > file2: file1의 내용이 file2에 복사(덮어쓰기)됩니다.
* cat file1 >> file2: file1의 내용이 file2의 내용 뒤에 덧붙여집니다.
7. mv: 파일 이동, 파일/디렉토리 이름 변경
8. clear: 터미널 창 깨끗이 지우기
이정도만 알고 실행결과를 하나씩 적용해보았습니다. 이정도는 기본으로 사용하실줄 알아야합니다!
맨 아래 ls- l 의 결과로 "ubuntu ubuntu" 라고 나오는건 d1디렉토리를 일반사용자가 수정할 수 있음을 의미합니다. 루트 계정만 허용할 때는 root root 라고 뜨게되요.
이제 다시 본론으로 돌아와서, EC2를 이용해 웹서버를 구축하기위해 아파치2를 설치해보겠습니다.
아파치는 웹에서 정적인 컨텐츠(css,html 등)을 제공해주는 웹서버라고 생각하시면됩니다.
쉽게 생각해서 인터넷 웹서비스 사용을 위한 서버입니다. 이게 없으면 인터넷 웹서비스를 이용할 수 없죠,,
이제 아파치2를 설치해봅시다.
패키지를 설치하기 전에 항상 아래 두 명령어를 선행으로 실행하는 습관을 가집시다!!
1. apt-get update: 설치 가능한 패키지들과 버전 정보를 업데이트
2. apt-get upgrade: 설치한 패키지들을 최신 버전으로 업그레이드
나중에 골치 아픈 일이 생길 수 있어요.(패키지 버전 충돌, 버전 오류 등) 그 때 되면 패키지를 통째로 지워버리고 재설치 해야될 수도 있습니다.
이제 설치해보도록 하겠습니다. 아래 명령어를 입력해주세요.
sudo apt-get install apache2
설치가 완료되었으면 파일이 존재하는 디렉토리로 이동합니다. 기본적으로 아파치를 실행하기 위한 index파일은 /var/www/html 디렉토리에 저장됩니다!
설치파일이 아닌 index파일입니다. cd /var/www/html 로 가보면 index파일이 존재합니다.
아파치 설치 후 웹 브라우저에 본인의 퍼블릭 http프로토콜 ip를 입력하면 아래와 같은 그림이 뜨는데 아래 페이지는 index.html파일로 코딩된 페이지입니다.
* http ip: EC2 생성 때 http 프로토콜 ip를 "사용자 무관"으로 추가하셨죠?
웹 브라우저에 접속할 ip는 아래 그림 속 박스가 가리키는 ip를 입력하면됩니다.
index.html파일을 들어가보시면 html,css,js 등의 언어로 웹 페이지가 코딩되어있습니다.
그럼 이제 index.html을 다른 파일명으로 바꿔볼까요? index_org.html명으로 바꾸고 다시 브라우저를 켜보면 아래처럼 떠야합니다.
주의: 단순히 mv 명령어로 바꿔주면 실행이 안됩니다. Permission denied라고 뜨는거 보이시죠?
해당 작업이 루트계정에서만 수정이 가능하기 때문에 ls- l 명령어를 보면 아래처럼 "root root" 라고 뜨죠.
각각 유저의 이름은 "root", 속한 그룹의 이름은 "root"인데, 그룹에 대해서는 다음에 살펴보겠습니다.
권한이 root에 있으므로 루트 계정으로만 제어가 가능하기 때문에 명령어 앞에 sudo를 붙여줍니다.
이제 저희가 직접 index파일을 꾸며서 원하는 컨텐츠를 웹 브라우저에 띄워보도록 하겠습니다.
nano index.html 명령어로 이동하여 아래와 같이 코딩하고 저장합니다.
웹브라우저를 새로고침해볼까요? 아래 결과가 나와야 정상적으로 실습이 진행된 것입니다.
이로써 이번시간에 EC2 인스턴스로 웹서버 구축의 기초 실습과 기본 명령어 사용법에 대해 알아보았습니다.
'AWS' 카테고리의 다른 글
AWS 웹서버 구축을 위한 php설치 및 apache-php연동 (0) | 2021.06.01 |
---|---|
AWS EC2 사용을 위한 MySQL 설치 (0) | 2021.05.18 |
AWS EC2 사용을 위한 리눅스 기초 명령어 학습3 (0) | 2021.05.04 |
AWS EC2 사용을 위한 리눅스 기초 명령어 학습2 (0) | 2021.05.04 |
AWS educate 가입 + EC2 생성하기 (2) | 2021.04.14 |