24.08.18 01:22 작성
·
57
0
현재 appspec.yml을 보면 S3에 저장한 모든 파일을 destination에 저장하도록 되어있습니다.
files:
# S3에 저장한 파일들 중 destination(AWS EC2)으로 이동시킬 대상을 지정한다.
# / 이라고 지정하면 S3에 저장한 전체 파일을 뜻한다.
- source: /
# EC2의 어떤 경로에 저장할 지 지정한다.
destination: /home/ubuntu/spring-gift-point
그런데 push를 여러개 진행하면 tar.gz파일도 여러개 생기게되는데 이러면 S3의 있는 모든 tar.gz파일을 가져오게되는건가요?
deploy.yml에서 파일 압축을 할 때 yml 파일과 scripts폴더를 같이 압축하는 이유가 궁금합니다. 두 파일 모두 project.jar 파일에 들어있기 때문에 project.jar파일만 압축해도 상관없지않나요?
- name: 압축하기
run: tar -czvf $GITHUB_SHA.tar.gz project.jar appspec.yml scripts
codedeploy를 활용한 무중단 배포나 로드 밸런싱 강의를 할 수 있다고 하셨는데 따로 강의를 내실 예정이 있으신지 궁금합니다!
답변 1
0
2024. 08. 18. 09:58
안녕하세요 yso829612님!
질문주신 내용에 대해 하나씩 답변 드려볼게요:)
주석을 오해할 수 있게끔 제가 작성했었네요...!! 실제로는 S3에서 배포하고자 하는 tar.gz 파일만 가져오게 됩니다! 이 때, CodeDeploy가 어떻게 배포하고자 하는 tar.gz를 식별하냐면 아래 설정을 통해 식별하게 됩니다.
따라서 S3에 여러개의 tar.gz파일이 존재하더라도 모든 tar.gz 파일을 가져오지 않고 특정 tar.gz만 가져오게 됩니다!
yml 파일과 scripts 파일을 같이 압축한 이유는 이 파일들은 Spring Boot 내에서 사용하는 파일이 아닌 CodeDeploy가 사용하는 파일입니다. 따라서 jar로 같이 압축해버릴 경우 appspec.yml, scripts의 파일을 CodeDeploy가 찾지 못해서 에러가 발생합니다. 이러한 이유에서 jar로 압축하는 것과 별도로 추가로 파일을 전송하고 있습니다^^
네! 말씀해주신 내용에 대해 강의를 만들 예정입니다! 다만, 해당 주제의 강의를 언제 만들어야 할 지 정하진 못했습니다ㅠㅠ! 빠른 시일내에 제작할 수 있도록 노력해보겠습니다:D
이 외로 궁금하신 점 있으시면 편하게 질문 또 남겨주세요~~