AWS 서비스 개요 및 리눅스 명령어를 알아보자.
아마존에서 제공하는 클라우드 플랫폼이며, 사용한 만큼 비용을 지불한다. 비슷한 서비스로는 Azure, GCP, Ncloud 등이 있다.
리전(Region)
: 독립된 데이터 센터 그룹으로 구성된다.가용 영역(Availability Zone)
: 가상 컴퓨팅 환경(서버)을 의미하며, EC2(Amazon Elastic Compute Cloud)를 통해 제공한다. S3(Simple Storage Service)
: 객체 저장소 서비스로, 파일이나 데이터를 안전하게 저장하고 검색할 수 있다. 변하지 않는 자료 등을 저장하는 데 사용된다.RDS(Relational Database Service)
: 관계형 데이터베이스 서비스로, 다양한 SQL 엔진을 제공한다. Lambda
: 서버리스 컴퓨팅 서비스로, 코드를 실행할 수 있는 컴퓨팅 리소스를 제공한다. 사용자는 코드를 업로드하고 이벤트에 대한 응답으로 실행될 수 있도록 구성할 수 있다.VPC(Virtual Private Cloud)
: 가상 사설 네트워크로, 사용자의 AWS 리소스를 구성하고 격리된 네트워크 환경을 생성할 수 있다.Amazon EC2
AWS Lambda
S3
Amazon RDS
Amazon DynamoDB
VPC
등등 다양한 서비스들이 많이 있다.
처음 회원가입을 하면 프리티어라고 정해진 기간동안 무료이니 사용해보면 좋을 것 같다.
Lightsail을 사용하면서 인스턴스 생성 시 IP가 필요한데 이때 사용하는 것이 공인 IP이다.
공인 IP는 웹 서버나 이메일 서버 같은 인터넷에 직접 연결되어야 하는 서버, 원격에서 접근이 필요한 기기등에 쓰인다.
대부분의 가정이나 기업에서는 ISP로부터 공인 IP 주소를 할당받아 사용하며, 내부적으로는 사설 IP로 여러 기기를 연결한다.
SSH(Secure Shell)로 서버에 접속하기 위해 Tabby라는 프로그램을 설치한다.
설치후 실행하면 위와 같은 설정 화면을 볼 수 있다.
프로필 및 연결 > 새프로필을 누르고 다음과 같이 설정한다.
비밀 키는 Lightsail 인스턴스 페이지에서 확인할 수 있다.
호스트에는 아까 말했던 공인 IP주소가 들어간다.
실행시키면 정상적으로 쉘이 나옴을 확인할 수 있다.
다양한 운영체제 중에 하나로, 유닉스 시스템을 기반으로 한 오픈 소스 소프트웨어이다. 사용 목적에 따라 다양한 배포판을 사용한다. (Ubuntu, Fedora, Debian, CentOS 등)
리눅스의 디렉토리 구조는 트리구조로 되어 있으며, 이를 파일시스템 트리라고도 부른다.
/
: 루트 디렉토리이다.bin
: 기본적인 실행 가능 프로그램(binary)들이 저장된 디렉토리etc
: 시스템 설정 파일 디렉토리home
: 각 사용자의 홈 디렉토리를 포함. 사용자의 이름이 p라면 /home/p
가 해당 사용자의 홈 디렉토리이다.var
: 시스템 운영 중에 생성되는 가변 데이터 디렉토리usr
: 사용자 관련 앱 및 파일 저장 디렉토리lib
: 시스템 라이브러리 파일 저장 디렉토리dev
: 디바이스 파일 디렉토리. 리눅스에서는 하드웨어를 파일로 간주하여 모든 하드웨어 장치 파일이 포함된다.tmp
: 일시적인 파일 저장 디렉토리.txt
등. 리눅스에서는 파일의 유형을 결정하는 데 메타데이터와 magic numbers
를 더 많이 사용한다. 따라서 선택사항이며, 생략되기도 한다.cd : change directory
의 약자로, 디렉토리(폴더)를 이동할 때 사용한다.
~
는 사용자의 홈 디렉토리를 의미한다.cd ..
pwd : print working directory
의 약자로, 현재 작업 중인 디렉토리의 절대 경로를 출력해준다.
ls : list
의 약자로, 디렉토리의 내용물을 나열한다.
-l
옵션으로 세부적인 정보를 같이 확인 가능-a
: .
으로 시작하는 숨김 파일을 포함해서 보여줌ls -al
mv : move
의 약자로 파일이나 디렉토리를 이동하거나 이름을 변경하는 데 사용한다.
# 윈도우의 잘라내기 후 붙여넣기와 같음
# 파일 이동하기
mv file.txt (이동할 경로)
# 파일 이름 변경
mv file.txt (변경할 이름)
이러한 mv
명령어는 대상 파일을 덮어쓸 수 있으므로 주의가 필요하다.
-i
옵션 : 덮어쓰기 전에 확인 요청을 보냄 ```shell
mv -i file1.txt file2.txt
```
cp : 파일(디렉토리)을 복사하는 데 사용
cp myfile.txt myfile_copy.txt
mv
와 똑같이 -i
옵션이 존재한다.mkdir : make directory
의 약자로, 새로운 디렉토리를 생성한다.
# dir이라는 디렉토리 생성
mkdir dir1
# 부모 디렉토리/자식디렉토리 구조의 디렉토리를 생성하며
# 부모 디렉토리가 존재하지 않으면 먼저 생성함
mkdir -p parentdir/childdir
rmdir : remove directory
의 약자로, 빈 디렉토리를 삭제하는 명령어이다. 보통 이것 대신 rm에 옵션을 주어 사용한다고 한다.
```shell
rmdir testDir
```
rm : remove
의 약자로 파일이나 디렉토리를 삭제하는 명령어
rm [옵션] [파일 또는 디렉터리]
-i
: 삭제하기 전에 확인 요청-f
: 강제로 삭제-r
: 디렉토리와 그 내부의 모든 파일과 서브 디렉토리를 재귀적으로 삭제-v
: 삭제된 파일 정보 출력# 일반적인 파일 삭제
rm test.txt
# 특히 주의 필요
# 현재 폴더의 모든 내용을 삭제하는 명령어
# 복구가 어려우니 조심해야 한다.
# 특정 파일이나 디렉토리를 지정하는 것을 권장한다.
rm -rf ./*
touch : 파일을 생성하거나 타임스탬프를 변경하는 데 사용
# example이라는 이름의 텍스트 파일 생성
touch example.txt
# 특정 시간으로 파일 타임스탬프 변경
touch -t 202306231200 example.txt
이러한 작업 중 권한 오류가 생긴다면 sudo
수식어를 붙임으로서 대부분 해결이 가능하다.
보통 현재 유저의 디렉토리가 아닌 home
디렉토리 혹은 그 이상의 디렉토리에서 작업할 때 발생하는 오류이다.
이는 다른 유저의 파일이나 폴더를 마음대로 다루지 않게끔 하기 위함이다.