Inflearn brand logo image

인프런 커뮤니티 질문&답변

냠냠님의 프로필 이미지
냠냠

작성한 질문수

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 개인 프로젝트에서 많이 쓰는 CI/CD 구축 방법 - 2

깃액션은 성공하지만 계속 서버가 Killed 됩니다.

작성

·

57

0

스크린샷 2025-06-11 오전 7.26.42.png스크린샷 2025-06-11 오전 7.26.55.png
name: Deploy TO EC2

on:
  push:
    branches:
      - main

jobs:
  Deploy:
    runs-on: ubuntu-latest
    # SSH로 접속하는 명령어를 쳐주자.
    # 일일이 다 쳐도 되지만 불편하기때문에 github actions의 라이브러리를 사용하면 편하다
    # uses는 내가 어떤 라이브러리를 쓸 건지 기재하는 곳이다.
    steps:
      # SSH는 다른 원격 컴퓨터로 접속하는 프로토콜이다.
      # Github Actions도 하나의 컴퓨터고, EC2도 하나의 컴퓨터이므로 SSH를 통해서 원격 접속을 진행해주자.
      - name: SSH(원격 접속)로 EC2에 접속하기
        uses: appleboy/ssh-action@v1.0.3
        with:
          host: ${{ secrets.HOST }} # IP 주소를 말함
          username: ${{ secrets.EC2_USERNAME }} # EC2를 연결할 때 사용자 이름
          key: ${{ secrets.EC2_PRIVATE_KEY }} # EC2에 접근할 때 사용하는 키 페어
          script_stop: true
          # run이 아닌 script로 실행하는 라이브러리도 있으니 예제파일을 참고하자
          # EC2에 접속해서 실행한 명령어들을 차례대로 작성해주자
          # 1. 프로젝트의 해당 경로로 이동
          # 2. github에서 프로젝트 pull
          # 3. gradlew 재 빌드
          # 4. 포트번호 8080서버를 끄거나 서버가 이미 꺼져있어도 true
          # 5. SNAPSHOT.jar로 끝나는 파일을 실행. 로그는 output이라는 파일에 남김
          script: |
            cd /home/ubuntu/personal-cicd-server
            git pull origin main
            ./gradlew clean build
            sudo fuser -k -n tcp 8080 || true
            sudo java -jar /personal-cicd-server/build/libs/*SNAPSHOT.jar > ./output.log 2>&1 &

메모리 부족 문젠가 싶어서

https://velog.io/@kwontae1313/AWS-EC2-%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%9A%A9%EB%9F%89-%EC%A6%9D%EC%84%A4

위 링크를 보며 메모리 용량 증설도 해주었으나, 이후에도 안되어서 t3.small로 인스턴스 유형을 변경하였습니다.

근데 계속 Killed이 뜨네요..ㅠㅠ 다시 서버를 실행시키면 코드가 변경은 되어있구요..

 

왜 계속 프로세스가 죽는걸까요..??

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 냠냠님~ 질문 잘 해주셨습니다!

말씀해 주신 내용들을 보니 메모리 증설과 t3.small을 사용하시는데도,

실행 도중 Killed 메시지가 뜨면서 서버가 강제 종료되는 문제가 발생하셨네요 !

Killed가 발생하는 대표적인 이유는 메모리 부족(Out of Memory, OOM) 상황이에요 ~

로그상에서는 딱히 명확한 에러 메시지는 없고, 실행 도중 EC2에서 프로세스가 죽는 것 같네요 !

조금 더 많은 로그와 메시지들을 확인해봐야 정확히 어떤 원인인지 파악할수 있을 것 같아요 !

아래 명령어들을 사용해 보시며 더 자세하게 디버깅 해보시는걸 추천드려요 !

sudo dmesg
tail /var/log/syslog
sudo journalctl -xe
free -h
htop

로그와 에러 메시지를 확인하신 뒤에도 어떤 게 문제이신지 모르겠다면

댓글로 에러 메시지도 같이 공유해주세요 !

리눅스 환경에서 에러 디버깅하는 데 도움되실 것 같아 아래 링크도 같이 남겨둘게요!

추가로 궁금한 점 있으시면 편하게 알려주세요 😊

https://it-ability.tistory.com/137

https://j2doll.tistory.com/1171

냠냠님의 프로필 이미지
냠냠

작성한 질문수

질문하기