묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
deploy.yml작성후 원격에 push불가
강의 13:20초대 나오는데로 원격에 push를 하면 ! [remote rejected] main -> main (refusing to allow a Personal Access Token to create or update workflow .github/workflows/deploy.yml without workflow scope)이런 식으로 Push 불가 멘트가 나옵니다.토큰 발급할때 workflow 권한 잘 체크했는데 push 불가입니다. 깃 액션 보안 강화로 ssh?로 접근해야 하나요? 강의대로는 cicd 불가능한 걸까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CodeDeploy 사용시 registration 요구
CodeDeploy 를 클릭했더니, 이런 문구가 뜨네요.complete your AWS registration 눌러도 콘솔 홈으로 돌아가고,credit card information 을 눌렀더니, 결제 기본 설정 창이 뜨는데, 딱히 문제될 건 없어 보여요.다른 AWS 서비스 사용할 때는 이런 문구 안 떴는데 왜 CodeDeploy만 이럴까요? ㅠㅠ
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
스프링 종료 명령어
안녕하세요 sudo fuser -k -n tcp 8080 이 명령어로 스프링 죽이시던데 실제 실무에서도 저 명령어로 스크립트를 구성하나요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
RAM & 스왑메모리 폭증하는 문제
안녕하세요! 강의 늘 잘 듣고 있습니다! CI/CD 배포하다가 서버가 자꾸 죽어서 스왑 메모리까지 도입을 했는데도 비정상적으로 RAM과 스왑메모리가 꽉 차는 이슈가 있는데 도저히 어떻게 해결해야할 지 몰라서 이렇게 질문 남깁니다! 서버 인프라 환경 ELB - EC2(t3.small, EBS: 30GiB)EC2 내부 : Docker 기반 Spring Boot + MySQL 8.0 + Redis문제 상황 어디가 구체적으로 문제인지 몰라서 그냥 구구절절 다 설명드릴게요.처음부터 CI/CD가 안된건 아닙니다. 원래 잘 됐었는데요.인증 도메인(일반/소셜 로그인) 정상 작동하는거 확인하고 push 해서 배포완료 후 docker-compose.yml 수정해서 push 하고나니까 갑자기 CICD 할때마다 서버가 다운되는 문제를 발견했습니다. yml 파일을 바꾸게 된 경위는, 토큰 받아오는 과정에서 에러 뜨는거 보고 docker-compose.yml에 redis 관련 환경변수를 등록하는걸 깜빡했구나 싶어서 그거 추가한게 다 입니다. 이게 전혀 문제가 안될텐데 이상하게 이 시점 이후로 계속 문제가 터져서 좀 난감합니다. 애플리케이션이래봤자 아직 인증도메인 & 유저 간단한 CRUD가 전부라서 무거울게 없기 때문에 t3.small로도 충분할거라 생각했지만, 혹시나 하는 마음에 t3.medium으로 scale up을 해봤습니다.그랬더니 이번엔 RAM 4GB와 Swap Memory를 5.9GB 까지 잡아먹는 비정상적인 현상이 계속 반복되더라구요. 혹시 한꺼번에 docker build를 해서 그런가 싶어서 container 별로 나눠서 빌드시키고 각 단계마다 sleep을 줘봤는데도 결과는 똑같았습니다. 아래가 이제 t3.small (Swap 4GB 설정)이구요 이게 t3.medium (Swap 6GB)입니다. (위와 로직이 좀 달라요. 근데 이러나 저러나 결과는 똑같아서..) 배포 관련 파일대상 : deploy.yml, docker-compose.yml, Dockerfile 글자 수 제한 이슈로 노션에다가 코드 올렸습니다.https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link 질문 혹시 제 deploy.yml이나 docker-compose.yml 에 문제가 있나요? 메모리 80% 이상 차지하는게 전부 Docker 관련 프로세스여서요. Update 2: 테스트 결과에 따라 하단의 질문들이 원인이 아니라는게 검증됨아니면.. t3.small이 docker 기반 Spring Boot + MySQL + Redis를 빌드 못할 수준인가요? (아닐 것 같긴해요.) 아니면 제 인증 구현 방식에 문제가 있어서 저럴 수도 있는건가요? Redis 기반으로 Token에 블랙리스트 설정하고, 클라이언트한테 쿠키로 토큰 심어서 내보내는 방식인데, 혹시 이게 문제가 될 수도 있는건가요? 근데 로컬에서 redis 랑 스프링부트 가동하고 htop으로 메모리 변화를 봤을 땐 문제 없어보이긴 했습니다.긴 글 읽어주셔서 감사합니다. Update 1: EC2에 직접 실행해본 결과 EC2에서 docker-compose.yml을 그 안에다가 직접 만들어서 mysql, redis만 띄우고Spring Boot는 클론해서 환경변수 직접 세팅해주고 실행해봤습니다. 이는 혹시나 혹시나 애플리케이션이 너무 비정상적으로 설계되서 메모리를 많이 잡아먹진 않을까 하는 우려에 임시로 이렇게 세팅해뒀습니다.결과적으로 잘 돌아갑니다. 메모리가 1.36GB 정도 잡히긴 하지만...? 그래도 redis + mysql + spring boot 다 돌렸을 때 이정도고 Swap 메모리 있으니까 괜찮지 않을까 하는 판단 중입니다. (아니면 호되게 지적해주세요) 하단은 임시로 세팅하기 위한 docker-compose.yml 입니다.https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link한번 이것도 CI/CD로 돌려봐야겠긴 한데, 우선 문제가 됐던 deploy.yml과 docker-compose.yml에서 어떤 문제가 있었길래 저런 사태가 발생했던건지 알고싶습니다.Update 2: 우선 대안으로 SCP 활용 강의에서 초기 프로젝트에 좋다고 했던 방법대로 해결했습니다. CICD 과정에서 메모리는 900MB 미만 수준에서 안정적으로 돌았습니다. 근데 제가 원했던 설계는 Docker로 Spring Boot + MySQL + Redis 일원화였기 때문에 개발 완료되는대로 다시 찾아봐야겠습니다.https://hooby.notion.site/Server-Infra-Setup-Remodeling-2a8f6c063f3e808a8674fbc2a62cdd22?source=copy_link
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
섹션 4, 5와 6, 7은 유사한가요?
현재 스프링부트 프로젝트의 인프라와 CI/CD를 공부하고 있습니다섹션 4, 5와 6, 7이 프레임워크 (스프링부트 / Nest.js)의 차이만 있는것으로 보이는데6, 7 섹션을 우선 넘어가도 괜찮은지 궁금합니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
code deploy 배포입니다.
배포까지 잘 끝났고, s3파일 업로드로 잘됬습니다.여기도 문제없는것같고요...그런데...java구동이 안되는것 같습니다.. 이유가 뭘까요??
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
사용자 삭제가 안되는 이유
그림 보시면 사용자 삭제 버튼이 활성화 안되는 이유는 뭘까요??하위 정책도 없습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
이미지 pull중 no basic auth credentials 문제입니다.
msa 프로젝트 중 각 마이크로 서비스의 이미지를 pull 하는 곳에서 문제가 생깁니다.err: ERROR: for seat-service Head "https://139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/v2/seat-service/manifests/1.0": no basic auth credentials이렇게 에러가 나오게 되네요... IAM 사용자 생성했고 권한 정책에 AmazonEC2ContainerRegistryFullAccess를 추가해줬습니다. 또한 이 사용자를 EC2에 연결까지 했습니다. 추가적으로 helper 설정을 위해 ./docker 폴더를 만들고 config.json에 "credsStore":"ecr-login"도 추가해주어 강의랑 매우 똑같이 만들었습니다. 이 deploy.yml 은 github action 코드입니다. 7번에서 이 오류가 발생하게 됩니다.======선을 기준으로 아래는 docker-compose.yml파일입니다. 이 문제를 어떻게 해결해야할까요? 또한 각 마이크로 서비스에 연결된 데이터베이스가 모두 maraiDB라면 이걸 docker-compose.yml로 이미지화 시켜야하는것이 맞을까요?# 6. EC2로 Compose 파일 전송 - name: Copy docker-compose.yml to EC2 uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} source: "docker-compose.yml" target: "/home/ubuntu/movie-project/" strip_components: 0 overwrite: true # 7. EC2에서 Compose 실행 - name: SSH into EC2 and deploy uses: appleboy/ssh-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script: | cd /home/ubuntu/movie-project sudo docker-compose down sudo docker-compose pull sudo docker-compose up -d ================================================ movie-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/movie-service:1.0 depends_on: - redis book-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/book-service:1.0 depends_on: - kafka payment-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/payment-service:1.0 depends_on: - kafka seat-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/seat-service:1.0 depends_on: - kafka
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Docker Compose파일을 작성했을때 CI CD와의 연동
현재 강의에서는 간단한 instagram-server 프로젝트를 docker에 이미지화 시켜서 이를 ecr에 연결해 이미지를 업로드하고 ec2에서 이미지를 다운받아 실행하고 배포하는 것을 잘 이해했습니다.하지만 혹시 간단한 프로젝트가 아닌 MSA의 각 서비스들, Kafka, Redis가 모두 모인 프로젝트 일때에는 각 서비스, kafka, redis 모두 이미지로 만들어야하는 것으로 알고 있습니다. 이때 한번에 docker compose 파일을 만들면 될 것 같지만 이를 CI CD의 deploy.yml에 어떻게 연결짓는 것인지가 궁금합니다. 아니면 혹은 cmopose 파일을 github action에 직접 입력해서 수동으로 관리하는 것인가요? 불편하게 그저 각 서비스, redis, kafka를 deploy.yml에 작성해서 일일이 하면 편하긴 하겠지만 이런 경우는 보통 compose 파일을 만드는 것이 훨씬 장점이 있다고 생각합니다. 이 compose 파일을 어떻게 deploy.yml 혹은 EC2에 보내는 것인지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
보안그룹 생성 오류
강사님, 보안그룹 HTTP 추가 하면 위와 같이 경고문구가 뜨면서 인스턴스 생성이 불가합니다..! 어떻게 수정해야 할까요
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
AWS 5월에 탈퇴해서 그러는데....
안녕하세요 선생님.제가 1월부터 5월까지 Spring,Java 벡엔드 과정 교육을 온라인으로 들었습니다.그 과정에서 AWS 기초를 배우는 과정이 있었는데 5월달에 교육이 끝나면서 탈퇴를 하지 3개월 밖에 안됬는데.. 혹시 이걸 다시 가입해야 되는 걸까요?? 한달 무료 사용해버려서요..
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
배포 오류
Actions 는 다 통과하는데 저기서 배포 오류가 뜨는데 이유를 알 수 있을까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
node.js 설치시 에러
node.js 설치 명령어를 실행하면 odesource.gpg: command not foundbash: /: Is a directorydeb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro mainbash: /: Is a directoryE: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component)E: The list of sources could not be read.E: Malformed entry 1 in list file /etc/apt/sources.list.d/nodesource.list (Component)E: The list of sources could not be read. 이렇게 뜨면서 설치가 되지 않는 것 같습니다. root@ip-172-31-34-207:/home/ubuntu# node -vCommand 'node' not found, but can be installed with:apt install nodejs
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
appspec.yml, 스크립트 파일 수정요청
안녕하세요CI/CD 강의를 재미있게 수강중 입니다수강 중 수정 사항을 요청드리기 위해 여기에 남깁니다노션 : https://jscode.notion.site/CI-CD-c028a6824f824524bcb35b8c384c9771 appspec.yml 파일 작성 중 오타가 있습니다이로 인해 정상적인 배포가 되지 않습니다확인 해주시기 바랍니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
appleboy/ssh-action stop_script 대체
학습 도중 발견한 내용이 있어 공유합니다. appleboy/ssh-action 라이브러리에서 stop_script 설정에 대한 내용입니다. 결론부터 말하면, appleboy/ssh-action 최신 버전(작성일 기준 1.2.2)을 사용하는 경우 stop_script: true 대신 script 첫 줄에 set -e를 사용해야 합니다.script: | set -e cd /home/ubuntu/github-actions git pull origin main문제 상황강의를 따라하던 중, 테스트에서 RuntimeException을 던져 실패하는 부분에서 다음과 같이 빌드는 실패하는데 github actions가 성공하고 코드도 업데이트 되는 경우가 발생했습니다. deploy.yml과 github actions 결과는 다음과 같습니다.name: hello application on: push: branches: - main jobs: Deploy: runs-on: ubuntu-latest steps: - name: ssh to EC2 uses: appleboy/ssh-action@v1.2.2 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true script: | cd /home/ubuntu/github-actions git pull origin main ./gradlew clean build sudo fuser -k -n tcp 8080 || true nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & > Task :test GithubActionsApplicationTests > contextLoads() FAILED java.lang.RuntimeException at GithubActionsApplicationTests.java:11 1 test completed, 1 failed FAILURE: Build failed with an exception. > Task :test FAILED * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/***/github-actions/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 8s 8 actionable tasks: 8 executed 8080/tcp: 4782 =============================================== ✅ Successfully executed commands to all hosts. =============================================== 문제 원인이 차이점은 appleboy/ssh-action 버전을 최신 버전(1.2.2)으로 사용한 차이에서 발생한 것이었습니다. appleboy/ssh-action 링크에 가서 script_stop으로 검색해보니 다음과 같은 부분이 있습니다.1.0.3v 를 보니 해당 옵션이 있는 걸로 보아 script_stop 옵션은 제거된 것으로 보입니다. 그래서 적힌대로 set -e를 script 첫 줄에 추가했습니다.script: | set -e cd /home/ubuntu/github-actions git pull origin main이후 다시 푸시해보니 정상적으로 실패하는 것을 확인할 수 있습니다.1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/***/github-actions/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. GithubActionsApplicationTests > contextLoads() FAILED java.lang.RuntimeException at GithubActionsApplicationTests.java:11 BUILD FAILED in 8s 8 actionable tasks: 8 executed 2025/07/12 14:16:36 Process exited with status 1 Error: Process completed with exit code 1.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Vue.js 파일 배포
안녕하세요 강사님 ACM 에서 인증은 받았고 사진 1 바로아래입니다. CloudFront에 도메인 이름을 넣었습니다.(밑에 사진2) 사진 3 Route53 에 CloudFront로 배포를 했는데도 aws s3 를 통한 정적웹사이트 배포는 정말 잘 되는데 뭐가 문제인지 모르겠습니다. 이렇게 연결이 되지 않습니다. 뭐가 문제인지 잘 모르겠습니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
aws를완강하고 ci/cd로 넘어왔습니다.
스프링부트로 진행중이라서 nest.js는 아예모르는데 섹션6,7부분은 뺴고 들어도 상관업나요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
vue.js 를 cloudfront+s3+Route53를 적용하여 배포
안녕하세요 강사님의 AWS 강의도 들었습니다.만약 도메인을 적용하고 배포하는 경우 CNAME을 통한 배포방식이 맞는지블로그도 열심히 찾아보고 했는데 안되가지고 질문 드립니다. cloudfront가 기존에 pdf랑 달라서 chatgpt한테 물어보면서 배포를 해 보아도 https + domain이 동시에 적용이 되지 않아 질문 드립니다. 단순 정적 웹사이트(S3 ) 만을 이용한 것은 정말 잘 되지만 cloudfront에 htpps+ domain 을이용한 배포가 되지 않아 질문 드립니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
S3에 프로젝트 업로드하기 오류
안녕하세요 이 부분분을 듣고 코드를 깃허브에 push 했는데 이런 에러가 계속 나가지고 질문드립니다. chatgpt로 돌려서 답장 받은거는 다 해봤습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 자동화 배포 문제
강사님이 알려주신 대로 개인프로젝트 CI/CD 구축 방법-2 이거에서 하는데 자꾸 위와 같은 에러가 뜨는데 뭐가 문제인지 모르겠습니다.