KDT/Cloud

240119 Cloud

001cloudid 2024. 1. 19. 12:40
728x90

교재 EC2 인스턴스 작성 -1

대시보드 인스턴스 - 인스턴스 시작 - EC2 인스턴스 생성

  1. 이름 : exercise-instance1
  2. AMI : Amazon Linux2 AMI(HVM) - Kernel 5.10
  3. 인스턴스 유형 : t2.micro(기본값)
  4. 키패어 : 기존 키페어 사용
  5. 네트워크 설정 : 기존 보안 그룹 선택(ssh, web)
  6. 스토리지 구성 : 8(기본값)
  7. 인스턴스 시작

MobaXterm을 이용해 원격 접속

p24 명령어

sudo yum install git -y -> EC2 서버에 git(형상관리) 설치

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.9.0 

→ ~ : 홈 디렉토리를 의미. 현재 접속자가 ec2-user이므로 /hom/ec2-user를 가리킴

→  ~/.asdf => /home/ec2-user/.asdf와 같음

→ '.'으로 시작하는 파일 또는 디렉토리는 숨김 파일과 같음

→ ls -a => 숨김 파일을 확인(파란색 폴더를 뜻함)

=========================================================================

※리다이렉션(231215 참조)

echo $HOME => $ 멤버 변수(시스템)

echo $HOSTNAME

echo $PATH

=========================================================================

echo . $HOME/.asdf/asdf.sh >> ~/.bashrc

 

=> $HOME : 시스템 환경 변수 중 하나. 접속 유저의 홈 디렉토리를 변수값으로 가지고 있음

=> 리눅스의 사용자마다 자신의 홈 디렉토리에 .bashrc라는 파일을 가지고 있음.

=> 이 파일은 사용자가 접속하게 되면 초기 설정을 해주는 역할을 함

=> '>>' : 리다이렉션 기호,

     echo 명령어는 화면에 뒤에 나올 문장을 출력해주는데 출력 방향이 모니터가 아닌 파일에 넣고자 할 때 사용

=> .sh 파일은 쉘 스크립트 파일을 의미. 특정한 명령어가 미리 설정 되어 있고 .sh 파일을 실행하면 예약된 명령어가 실행

=========================================================================

※쉘(Shell)

-명령어를 해석하는 역할

-리눅스 구조 : 사용자(응용 프로그램) - 셸(Shell) - 커널(Kernal) - 하드웨어

=========================================================================

source ~/.bashrc

=> .bashrc 파일을 수정하면 적용을 시켜야함 1) 리눅스를 재시작 2)source 명령어로 재시작을 하지 않고 적용하는 방법 사용

cat ~/.bashrc

=========================================================================

※asdf 패키지(프로그램)

-버전 관리 툴

-프로젝트 별로 사용하는 언어의 버전이 다른 경우 다양한 어너의 버전 별로 관리 가능

-언어별 버전 매니저를 사용, GO는 gvm, Node.js는 nvm, ruby는 rbenv를 사용

-다양한 버전 매니저를 하나의 도구로 사용할 수 있는 것이 'asdf'

 

asdf 특징

-asdf 명령어 하나로 여러 언어의 버전을 관리할 수 있음

-global 또는 프로젝트(local)별로 사용 언어 버전을 지정할 수 있음

-plugin 방식을 사용하여 여러 가지 프로그램 을지원

 

asdf 사용방법

1. asdf를 설치(위에서 설치함)

2. 언어별 plugin 설치

3. plugin 설치 후 원하는 버전을 설치

4. 프로젝트 별로 사용하는 버전을 지정

=========================================================================

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git => nodejs의 plugin 설치

asdf install nodejs 16.14.0 => 원하는 버전 설치

asdf global nodejs 16.14.0 => 모든 프로젝트가 nodejs를 사용 시 기본 버전 16.14.0을 사용하도록 global 설정을 함

node -e "console.log('Running Node.js' + process.version)" => Node.js 설치가 잘 되었는지 확인, process.version 항목이 global 버전으로 대체되어 출력, Running Node.jsv16.14.0

 

p.25

cd /var => /var로 이동, cd: change directory

sudo mkdir www =>www를 /var 아래에 만드는 명령어 

※절대경로 : '/'로 시작하는 경로. 절대경로를 통해 다른 위치에서도 해당 경로를 지정할 수 있음

sudo chown ec2-user www => chown : change owner 소유권을 변경. sudo mkdir www 명령어에 의해 만들어진 www 디렉토리는 root 소유자로 되어 있음. ec2-user가 사용할 수 있도록 소유권을 변경

cd /var/www => /var/www/ 디렉토리로 이동

git clone https://github.com/deopard/aws-exercise-a.git => 샘플 프로젝트 aws-exercise-a를 /var/www 아래로 다운로드

cd aws-exercise-a => aws-exercise-a 디렉토리로 이동

npm install => npm : node package manager, Node.js에서 사용하는 의존성 패키지를 쉽게 관리할 수 있게 도와주는 프로그램

 

=========================================================================

웹 서버(nginx)와 웹 에플리케이션 서버(phusion passenger) 설치 p30

 

cd /var/www => /var/www 디렉토리로 이동

wget http://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.12.tar.gz => 현재 위치한 /var/www 디렉토리에 압축 파일인 passenger-6.0.12.tar.gz을 다운로드 => EC2 서버를 웹 애플리케이션 서버(WAS)로 동작 시키기 위해 phusion-passenger를 설치, Tomcat과 같은 역할을 함. phusion-passenger는 Node.js, Python, Ruby, Meteor 언어를 지원

ls => passenger-6.0.12.tar.gz 확인 가능

sudo mkdir /var/passenger => /var/passenger 디렉토리를 생성

sudo chown ec2-user /var/passenger => sudo 명령어를 통해 root 소유자로 지정되어 있는 /var/passenger 디렉토리를 소유자를 ec2-user로 변경

tar xvfz passenger-6.0.12.tar.gz => 현재 위치한 디렉토리 아래에 압축해제 됨, 압축형태가 .gz이므로 z 옵션을 사용하여 압축해제, 만약, .xz라면 J, .bz2라면 j를 옵션을 사용. 압축해제 시 현재 위치한 디렉토리가 아닌 다른 디렉토리에 해제하고자 할 때 '-C 파일위치'를 사용

tar xvfz passenger-6.0.12.tar.gz -C /var/passenger => 압축해제와 묶음파일 풀기를 동시에 진행하여(xvfz) -C 옵션 뒤에 설정한 경로(/var/passenger)에 파일들을 위치시키는 명령어

ls /var => passenger 디렉터리 확인

 

※리눅스 파일 압축 및 해제

윈도우에서의 파일 압축과 리눅스에서의 파일 압축은 동작이 다름

윈도우의 경우 파일을 묶고 용량을 낮추는 과정이 한 번에 이루어짐

리눅스의 경우 파일을 묶고(tar) 용량을 낮추는 과정(xz, bz, gz 등)이 따로 이루어짐

 

1. 파일 묶기

-tar 명령어 사용

-파일 용량이 줄어드는 것은 아님.

 

touch test.txt text2.txt => touch : 비어있는 파일(빈 파일)을 만듦

ls

tar cf t.tar test.txt test2.txt

※tar 명령어의 옵션은 -를 생략해도 됨. c: 새로운 묶음 파일을 만듦. f(필수) : 묶음 파일의 이름을 지정. v(선택) : visual의 의미로 파일이 묶이거나 풀리는 과정을 화면에 보여줌. x : 묶음을 풀 때 사용

 

rm *.txt

※rm : remove 파일을 삭제할 때 사용, *: 하나일수도 있고 여러 개 일수도 있음. *.txt : 확장자가 txt로 끝나는 모든 파일

리눅스에서는 물어보지 않음. 삭제를 하면 바로 삭제됨. 리눅스에서는 반드시 수정, 삭제

 

tar xvf t.tar => t.tar 묶음을 

 

ls => test.txt, test2.txt가 화면에 보임

 

2. 파일 압축

압축 방식 : xz, bzip2, bunzip2, gzip, gunzip, zip 등

xz

압축 : xz 파일이름 => 파일이름.xz 생성, 압축해제 : xz -d 파일이름.xz

bzip2

압축 : bizip2 파일이름 => 파일이름.bz2 생성, 압축 해제 bzip2 -d 파일이름.bz2

gzip

압축 : gzip 파일이름 -> 파일이름.gz 생성, 압축해제 : gzip -d 파일이름.gz

 

gzip t.tar => t.tar.gz 파일이 생성

 

정리 tar는 파일들을 묶는 기능을 하는 것이고, 용량을 줄이기 위해서는 압축 과정이 필요

 

예) apache-tomcat-9.0.83.tar.gz을 해제하려면 1) 압축해제, 2) 묶음 해제

=> tar 명령어에 xvfz 'z'옵션을 쓰면 .gz 파일의 압축 해제를 동시에 진행할 수 있음

728x90

'KDT > Cloud' 카테고리의 다른 글

240202 Cloud  (0) 2024.02.02
240124 Cloud  (0) 2024.01.24
240112 Cloud  (0) 2024.01.12
240105 Cloud  (0) 2024.01.05
231229 Cloud  (0) 2023.12.29