inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

110

냠냠

작성한 질문수 13

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이 뜨네요..ㅠㅠ 다시 서버를 실행시키면 코드가 변경은 되어있구요..

 

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

aws docker ci/cd github-actions aws-code-deploy infrastructure aws-ec2

답변 1

0

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

무중단 배포

0

53

2

workflows/deploy.yml 궁금증

0

49

2

.git-credentials 파일이 없이 배포가 성공한 이유가 궁금

0

54

1

(해결 - 정보공유) /home/runner/work/_temp/6be6e~0.sh: line 1: ./gradlew: Permission denied 오류

1

61

2

(확인 완료) git config --global creadential.helper store 후에도 비밀번호 물어보는 현상

1

68

2

질문_ 강의 순서 및 그외

0

67

2

섹션 4 - Docker + 백엔드(Spring Boot)

0

61

2

deploy.yml작성후 원격에 push불가

0

60

2

CodeDeploy 사용시 registration 요구

0

101

3

스프링 종료 명령어

0

67

2

RAM & 스왑메모리 폭증하는 문제

0

100

2

섹션 4, 5와 6, 7은 유사한가요?

0

65

1

code deploy 배포입니다.

0

97

3

사용자 삭제가 안되는 이유

0

83

2

이미지 pull중 no basic auth credentials 문제입니다.

0

112

2

Docker Compose파일을 작성했을때 CI CD와의 연동

0

94

2

보안그룹 생성 오류

0

82

3

AWS 5월에 탈퇴해서 그러는데....

0

80

1

배포 오류

0

78

2

node.js 설치시 에러

0

146

2

appspec.yml, 스크립트 파일 수정요청

0

81

2

appleboy/ssh-action stop_script 대체

1

178

2

Vue.js 파일 배포

0

59

2

aws를완강하고 ci/cd로 넘어왔습니다.

0

82

1