4주차 - AWS RDS, EC2, Nginx를 이용한 서버 배포

Chaeyoung Moon·2024년 9월 16일
0

SOPT

목록 보기
5/6
post-thumbnail

SOPT 34기 SERVER 3주차 🔑keyword🔑 과제

1️⃣ 터미널 명령어 정리

📌 어떤 명령어들을 사용했을까?

sudo apt update
sudo apt install openjdk-17-jdk
  • apt(Advanced Package Tool)
    • Debian 계열의 리눅스 배포판에서 소프트웨어 패키지를 관리하기 위한 도구
    • 시스템에 설치된 패키지를 업데이트 하거나 새 소프트웨어를 설치하는 데 사용됨
cd
mkdir
vim
ls
  • cd(change directory)
    • 사용자가 현재 작업중인 디렉토리를 변경할 때 사용하는 명령어
  • mkdir(make directory)
    • 새로운 디렉토리를 생성할 때 사용하는 명령어
  • vim
    • Linux 환경에서 텍스트 에디터를 제공
    • 텍스트 에디터 중 하나로, 사용자가 텍스트 파일을 보거나 수정할 때 사용
    • 다양한 프로그램이 언어를 지원하며, 효율적인 텍스트 편집 기능을 제공함
  • ls
    • 현재 폴더 아래에 있는 구성요소(파일, 폴더)를 표시
java -jar spring-0.0.1-SNAPSHOT.jar

nohup java -jar spring-0.0.1-SNAPSHOT.jar &
nohup
&
cat nohup.out
  • jar
    • Java Archive 파일로 패키징 된 application을 실행시킨다. .jar 확장자를 가지며, 여러 클래스 파일과 관련 리소스를 하나의 파일로 묶어 관리할 수 있다.
    • 위의 명령어 에서는 -jar 명령어를 통해 SpringBoot를 배포한다.
  • nohup(no hang up)
    • 세션이 종료되어도 프로그램을 종료시키지 않고 계속 실행시키는 명령어
  • &
    • 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어
  • cat
    • 파일의 내용을 화면에 출력하는 명령어
ps -ef | grep java
grep
kill -9 <process ID>
  • ps(process state)
    • 현재 실행중인 프로세스와 상태를 출력하는 명령어
  • grep
    • 출력물 중 특정 내용만 보이게 하는 명령어
  • kill -9
    • kill : 서버 배포를 중지하는 명령어
    • 9-kill : 프로세스를 종료할 때 사용
    • 옵션 9-SIGKILL는 프로세스를 강제종료할 때 사용. 프로세스가 이 신호를 받으면 정리 작업 없이 즉시 종료
    • 15-SIGTERM : 프로세스를 정상적으로 종료할 때 사용하며, 종료 전 필요한 정리 작업을 수행한 후 종료
sudo service nginx start
sudo systemctl restart nginx
sudo mv seminar /var/www
  • service
    • 시스템의 서비스를 시작, 중지, 재시작 하는 등의 관리를 담당
  • systemctl
    • 시스템의 서비스와 데몬을 관리하는 도구
    • 서비스의 시작, 중지, 재시작 및 상태 확인 등을 수행
  • mv(move)
    • 파일이나 디렉토리를 이동시킬 때 사용하는 명령어
// Swap 관련 명령어
sudo dd if=dev/sero of=/swapfile bs=64M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi/etc/fstab
  • dd(data duplicator)
    • 파일을 변환하거나 복사할 때 사용하는 명령어
    • 입력 파일(if)에서 출력 파일(of)로 데이터를 복사
  • chmod(change mode)
    • 디렉토리의 접근 권한 변경
    • 사용자, 그룹, 다른 사용자들에 대한 파일의 읽기(read), 쓰기(write), 실행(execute) 권한을 설정하거나 변경 가

📌 vi 명령어 정리

  • linux와 unix에서 사용하는 vi 편집기는 명령모드, 입력모드, 마지막 행 모드 총 3가지 모드로 구성된다. → 흔히 사람들이 말하는 vi 명령어는 이 세 가지 모드를 자유자재로 왔다갔다 하면서 코드나 글을 작성하는 것
  • 명령모드(command mode)
    • 처음 vi 명령어로 vi를 시작하게 되면 들어가게 되는 게 명령 모드이다.
    • 방향키를 이용하여 커서를 이동할 수 있다.
    • ddyy로 한 줄 삭제 및 한 줄 붙여넣기 또는 x 명령어로 글자 하나를 삭제할 수 있다.
  • 입력모드(insert mode)
    • 명령모드에서 ia 명령어를 통해 입력모드로 넘어갈 수 있다.
      • i 명령은 커서가 현재 위치한 부분에서부터, a 명령은 커서가 위치한 바로 다음 부분부터
    • 입력 모드로 가게 되면, 자유롭게 코드나 글을 작성하면 된다.
    • 명령모드로 다시 돌아오려면 ESC를 누르면 된다.
  • 마지막 행 모드(Last line mode)
    • 명령모드에서 : (콜론)을 입력하면 화면 맨 밑단에 :_____ 하며 입력을 할 수 있는 공간이 나온다.
    • 여기에서 현재까지 내가 작성한 이 내용을 저장하고 vi를 종료(wq)할지, 그냥 종료(q, q!)할지 등을 입력할 수 있다.

2️⃣ 카나리(Canary) 배포 방식

📌 배포 방식의 비교

롤링(Rolling)

블루 그린(Blue Green)

카나리(Canary)

📌 어원을 통한 이해

Canary

  • 카나리아 라는 새 이름에서 유래하였다.
    • 카나리아는 유독가스에 민감한 동물로, 석탄 광산에서 유독가스 누출의 위험을 알리는 용도로 사용되었다고 한다. 즉, 미리 위험을 감지하기 위해 사용되었다.
  • 어원에서 유추할 수 있듯이, 카나리 배포는 위험을 빠르게 감지할 수 있는 배포 전략이다.
    • 지정한 서버 또는 특정한 유저에게만 배포한 후, 정상적으로 작동한다고 하면 전체 배포를 진행한다.
    • 서버 트래픽의 일부를 신 버전으로 분산하여 오류 여부를 확인할 수 있다.
    • 카나리 배포방식에서는 A/B 테스트가 가능하고, 성능 모니터링에 유용하다.
    • 트래픽을 분산시킬 때는 라우팅을 랜덤하게 할 수 있다.

🔗 참고 자료 - keyword 별

1️⃣  터미널 명령어 정리

🔗 #1-1 vi 명령어 정리

2️⃣  카나리 배포 방식

🔗 #2-1 카나리 배포 방식

0개의 댓글