AWS DevOps 강의 3,4장 정리

minyeob·2023년 4월 15일
0

aws

목록 보기
16/18

1. AWS DevOps

Cron 으로 프로젝트 재시작

서버가 죽었을때 자동으로 재시작 하는 cron 만들기

  • 그 전에 if문 조건 옵션에 대해 한번 보고 가보자

  1. spring-restart.sh 파일 생성

  • -z 조건은 프로세스가 종료됐을때이다.
  • if 대괄호[] 앞뒤로 한칸씩 띄워줘야 한다!
  1. deploy.sh 작성

deploy.sh 파일을 실행하면 spring-restart.sh 가 crontab 에 등록된다.


재배포 프로세스 이해

  1. 기존 서버를 중지 시켜야 함

  2. aws-v1 폴더를 통째로 삭제

    • rm -r aws-v1(스크립트로 작성되면 물어보는 부분 때문에 스크립트가 작동을 안함)
    • rm -rf aws-v1
  3. git clone 다운

  4. gradlew 실행 권한 주기

    • cd /home/ubuntu/aws-v1
    • chmod u+x gradlew
  5. 빌드하기

    • ./gradlew build
  6. jar를 실행

    • cd /home/ubuntu/aws-v1/build/libs
    • nohup java -jar /home/ubuntu/aws-v1/build/libs/v1-0.0.1-SNAPSHOP.jar 1>log.out 2>err.out &
  7. cron 으로 자동 재시작

    • deploy.sh
      • echo "crontab 등록 -spring restart..."
      • crontab -l > crontab_new
      • echo "* * * * * /home/ubuntu/cron-restart/spring-restart.sh" 1>>crontab_new
      • crontab crontab_new
      • rm crontab_new

많은 절차를 전체 적인 재배포 스크립트를 작성해서 하게 되면 매우 편할것이다!.


4장 정리

배포 v2 소개


EC2서버 생성 및 고정 IP 설정

v1과 똑같이 인스턴스 생성

DHCP(유동ip) 할당 → 남는 IP를 부여해준다, 다른 IP를 변경 부여 해준다

유동 ip로는 서버 운영 불가능!

따라서 고정 IP가 필요하다 → 비용이 비싸다


환경변수와 bashrc

환경변수 만들기

  • export(터미널 껐다 키면 reset)

  • bashrc 사용
    • vi ./.bashrc (재부팅 되고 나서 적용됨)
      • export LOVE=”i love you”
    • source ./bashrc (바로 적용시킬수 있음)

환경변수를 특정파일에만 적용

환경변수 적용 범위

  • .bashrc 어디에서나 사용 가능
  • 터미널에서 만들고(export) source 적용 -터미널이 꺼지기 직전까지 사용 가능
  • 쉘 스크립트(파일)로 변수를 만들고 다른 파일에서 실행하기 위해서는
    • ./bashrc 로 등록되어 있던지(광역적으로 설정 되기 때문에 별로임)
    • source로 터미널에서 적용이 되어 있던지(터미널이 꺼지면 못씀ㅜ)
    • deploy.sh 파일이 실행되는 동안에만 변수를 사용할 수 있으면 된다.
      • 파일에 source라는 코드를 작성해 주면 된다.(이게 good!)
  1. var.sh 파일에 본인이 적용하고 싶은 환경변수 넣어놓기
  1. deploy.sh 작성

재배포를 고려하여 cron 종료

cron : 서버가 종료시에 자동으로 재시작 해줌

재배포

  1. 프로젝트 종료
  2. GitHub 다운
  3. jar(빌드)
  4. 실행

근데 만약 재배포 도중에 cron 이 작동하게 되면 꼬이게 된다

따라서! 재배포 시에는 기존 cron을 잠깐 종료시켜줘야 한다

  • deploy.sh 파일

오늘의 한마디

남들에게 알려줄 수 있을정도의 aws 잘알이 되어보자.
profile
백엔드 개발자를 꿈꾸며 공부한 내용을 기록하고 있습니다.

0개의 댓글