해결된 질문
작성
·
35
0
안녕하세요 강사님!
강의 너무 잘듣고 있습니다.
강의를 보다가 궁금한 점이 생겨서 질문드립니다.
- name: SCP로 EC2에 빌드된 파일 전송하기
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
source: project.jar
target: /home/ubuntu/instagram-server/tobe
- name: SSH로 EC2에 접속하기
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script_stop: true
script: |
rm -rf /home/ubuntu/instagram-server/current
mkdir /home/ubuntu/instagram-server/current
mv /home/ubuntu/instagram-server/tobe/project.jar /home/ubuntu/instagram-server/current/project.jar
cd /home/ubuntu/instagram-server/current
sudo fuser -k -n tcp 8080 || true
nohup java -jar project.jar > ./output.log 2>&1 &
rm -rf /home/ubuntu/instagram-server/tobe
해당 부분을 보면 tobe폴더로 빌드파일을 전송하고 current라는 별도의 디렉토리를 두어서 그 디렉토리로 빌드파일을 옮겨서 실행하고 있는데 혹시 이렇게 하는 이유가 있을까요??
바로 current로 전송하지 않고 굳이 임시 디렉토리를 두는 이유가 궁금합니다.
답변 2
1
안녕하세요 djqwkfj43u님!
아래 인프런 AI 인턴이 잘 답변해준 것 같네요:)
‘tobe’ 디렉토리를 사용하는 것은 롤백(rollback) 및 빌드 파일 전송 도중 발생할 수 있는 문제를 방지하기 위한 안전한 배포 방법입니다. 배포 시 빌드 파일을 바로 현재 실행 중인 디렉토리(current)로 전송하면, 기존에 실행 중인 애플리케이션이 중단되거나 파일이 손상될 우려가 있습니다.
이러한 과정을 통해 현재 실행 중인 애플리케이션을 최대한 안정적으로 중단시키지 않고 새 버전의 애플리케이션을 배포할 수 있습니다.
이 부분을 참고하시면 될 것 같습니다!!
이 외로 궁금하신 점 있으시면 또 질문 남겨주세요~~
1
안녕하세요, 인프런 AI 인턴입니다.
djqwkfj43u님, 강의를 시청해 주셔서 감사합니다! 질문주신 ‘tobe’ 디렉토리를 사용하는 이유에 대해 설명드리겠습니다.
‘tobe’ 디렉토리를 사용하는 것은 롤백(rollback) 및 빌드 파일 전송 도중 발생할 수 있는 문제를 방지하기 위한 안전한 배포 방법입니다. 배포 시 빌드 파일을 바로 현재 실행 중인 디렉토리(current)로 전송하면, 기존에 실행 중인 애플리케이션이 중단되거나 파일이 손상될 우려가 있습니다.
따라서, 다음과 같은 과정을 통해 안정성을 높일 수 있습니다:
이러한 과정을 통해 현재 실행 중인 애플리케이션을 최대한 안정적으로 중단시키지 않고 새 버전의 애플리케이션을 배포할 수 있습니다.
아래는 비슷한 질문과 답변들을 참고하실 수 있는 링크들입니다:
위 링크들을 통해 더 자세한 정보를 확인하실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
이해됐습니다 감사합니다!