묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
깃허브 캐싱
.gitignore에 추가된 application.yml을 CI/CD로 관리하기 강의에서 1:40초 부분에서 git add . / git status한 다음에 application.yml이 수정이 되고 있다. 캐싱떄문이라고 하셨는데 . application.properties를 yml로 바꾸고aws: access-key: ABCDEFG secret-key : HOIJOIASDJO 이 값들을 입력했는데 git status에 어느부분이 문제인건가요? yml파일도 modified?라는 상태가 안떠서 문제인건지 정확히 이해를 못해서 질문 남깁니다. 혹시 .gitignore에 넣었으니깐 새로운 파일을 추가하던 수정을 하던 git status에 안떠야 정상인건가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
깃허브 시크릿
- name: application.yml 만들기 run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml 강의에서 이런식으로 시크릿 변수에 yml을 미리 넣었는데 만약에 yml안에서도 시크릿 변수를 사용하면 제대로 동작을 하나요?? ex)kakaopay: secretKey: ${KAKAOPAY_KEY} 이런식으로 yml에 있다고 할 때
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Node로 CI/CD 제작 중 안되는 이유
강사님 안녕하세요. nest를 완강하고 개인적으로 Node로 만들어보고 있습니다. 근데 Github Actions 까지 무사히 잘 완료가 되었는데요.배포가 제대로 되어있는지 확인하려고 하니까 안되고 있습니다.이렇게 서버가 살아있고 저는 3000번 포트를 사용해서 https://43.202.202.143:3000/ 이라고 작성했는데 접속이 안되더라고요. 제가 Gpt랑 나름 찾아봐서 작성해본 코드는 아래와 같습니다. =============================name: Deploy To EC2 on: push: branches: - dev jobs: deploy: runs-on: ubuntu-latest steps: - name: Github Repository 파일 불러오기 uses: actions/checkout@v4 - name: Node 설치 uses: actions/setup-node@v4 with: node-version: "20" - name: 의존성(라이브러리) 설치 run: yarn install --frozen-lockfile - name: .env 파일 만들기 run: | echo '${{secrets.ENV}}' > .env # - name: 테스트 코드 실행 # run: npm run test # - name: 빌드 # run: npm run build - name: 압축하기 run: tar -czvf project.tar.gz .env package.json yarn.lock src - 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.tar.gz target: /home/ubuntu/Solo-Resume-Project/tobe - name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} # EC2의 퍼블릭 IPv4 주소 = 고정 주소를 말함. 연결 된 상태의 43.202.xxx.xxx <- 이런거 username: ${{ secrets.EC2_USERNAME }} # EC2 접속 username = 대부분 우분투 key: ${{ secrets.EC2_PRIVATE_KEY }} # EC2의 key-pair 파일의 내부 텍스트 script_stop: true script: | rm -rf /home/ubuntu/Solo-Resume-Project/current mkdir /home/ubuntu/Solo-Resume-Project/current mv /home/ubuntu/Solo-Resume-Project/tobe/project.tar.gz /home/ubuntu/Solo-Resume-Project/current/project.tar.gz cd /home/ubuntu/Solo-Resume-Project/current tar -xvf project.tar.gz yarn install pm2 kill pm2 start src/app.js --name "backend-server" =============================세팅도 전부 다했고요.근데 pm2 logs를 작성하면 아래와 같이 나옵니다.제가 env에 서버포트 번호를 넣어놓고 상수값을로 지정한 후에 따로 빼서 사용하는데 그것 때문인가요?기존의 vs 코드에서는 잘 작동이 됩니다.처음 혼자서 node로 작성하는거다보니 너무 질문이 많아서 죄송한데 답을 알려주시옵소서!!!
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
테스트 코드 고의 실패 시 강사님 화면과 똑같이 안나옵니다.
무슨 말인고 하니 똑같이 고의로 테스트를 실패하게 만들었는데 강사님 화면은 어디에서 테스트가 실패했는지 CI/CD 화면에서 보여주는데 제 화면은 스샷과 같이 안나옵니다. 강사님 화면에서는 github actions에서 아래의 화면처럼 테스트 실패 이유가 뜨는데 저는 안 떠요! ===================================위의 사진은 저의 실제 코드 사진입니다. 제가 어디 잘못한게 있나요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
작동이 안되는데 제대로 된게 맞나요?
강사님과 같이 만들었습니다. 다만 제가 deploy.yml을 depoly.yml로 잘못 작성한거 빼고는 강사님과 같은데 설명에 .yml 앞의 이름은 상관 없다고 하셔서 큰 문제는 되지 않을거라고 생각합니다. 다만 사진과 같이 간단한 CI/CD 코드인데 2분이 넘도록 체크 표시가 안뜨는 문제가 있습니다. 제가 어떤 것을 잘못했을까요? 코드는 이렇게 작성했습니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
Node.js에서도 쓸 수있나요?
안녕하세요. 강사님! 현재 AWS 강의를 잘 듣고 있는 학생입니다. 제가 Node.js / Nest.js를 주로 사용하고 있는데 강의 목록에 Nest에서 적용 할 수 있게 목록에 있더군요! 근데 Node에 대해서는 언급이 없는 것 같아서 Node에서도 적용 할 수 있게 해주는 내용이 강의에 있나요? 있다면 혹시 어느 목차에 있나요? 그리고 여러가지 언어에서 적용 할 수 있게끔 목록을 잘 나눠주셨더라고요! 혹시 필요한 부분만 듣고 나머지(ex_ 프론트 / 스프링 / etc..)들은 따로 안 들어도 제가 해당하는 부분만 들어도 적용과 이해에 무리가 없을까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
환경 변수 vs gitignore
중요한 값을 레포지토리에 노출시키고 싶지 않을 때 yml 파일을 gitignore에 포함시키는 방법을 쓰거나 환경 변수를 사용하여 노출을 막는 방법이 있는 것 같은데 둘 중에 아무거나 써도 상관없는건가요, 아니면 때에 따라 다른 방식을 써야하는건가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
jar파일 질문
로컬에서는 springboot서버가 잘 작동되고 github actions에서도 빌드가 잘 되는 것을 확인하였습니다. 근데 ec2 서버에만 올라가면 데이터소스 관련 문제가 발생하고 java -jar 명령어에 데이터관련 인자를 넣어서 실행시키면 그때는 디비관련 오류는 없어지고 다른 문제가 있어서 jar파일을 열어서 안에 파일들을 확인해볼려고 명령어를 작성해보았는데 아무 반응이 없어서 jar파일에 문제가 생겨서 실행이 안되는건지가 궁금합니다!!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
ec2에 mysql 관련 문제
안녕하세요! 어제 질문남겼던 학생입니다! ec2에 mysql을 설치후다음과 같이 연결을 하였습니다. 이후로 log파일을 열어보았는데 이와 같은 에러가 발생해서 검색을 해보니 initialization 관련 설정 오류라 해서 아래와 같이 추가해줬는데이후로 github actions secret도 바꾸고 ec2로 jar 파일이 올바르게 간것도 확인됬는데 계속 같은 문제가 발생하네요ㅜㅠ 이유가 뭔지 궁금합니다!!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
안녕하세요! 질문있습니다
ec2에 mysql을 깔고 root계정에 비밀번호를 걸고 아래 명령어로 비밀번호를 입력하려고 하는데 아예 콘솔창에 아무 글자도 안쳐집니다ㅜㅠㅠ 왜그런걸까요??!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
yml 자동완성?
안녕하세요~! 다름이 아니라 강사님 처럼 yml 자동완성 ? 하고 기능 사용하고 싶은데, 어떻게 설정하면 되지 알 수 있을까요? 플로그인 Spring Ass ... 찾아봤는데 없더라고요. 그래서 어떻게 하면 되지 여쭤봅니다. 학생계정이라 유료버전 사용 중 입니다.항상 좋은 강의 감사합니다.좋은 하루되세요 ~ 감사합니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
비용
강의를 나눠서 듣는 중인데요. 안 들을 때는 비용 나가지 않게 aws EC2 종료를 매번 해야하나요? 탄력적 IP 를 오래 사용 과금이 있을 수 있다고 하는데, 걱정되어 질문 드립니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Permission denied
ubuntu@ip-172-31-47-72:~$ cd git-actions-study/ubuntu@ip-172-31-47-72:~/git-actions-study$ lsREADME.md build.gradle gradle gradlew gradlew.bat settings.gradle srcubuntu@ip-172-31-47-72:~/git-actions-study$ ./gradlew clean build-bash: ./gradlew: Permission denied실습 개인 프로젝트에서 많이 쓰는 CI/CD 구축방법에서 빌드과정중 권한이없다고 하는 것 같은데, 혹시 이 상황에서 어떻게 하면 되지 여쭤봐도 괜찮을까요...?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
s3와 ecr에 쌓이는 데이터에 대해서
s3에 압축된 실행파일 업로드ecr에 빌드된 이미지 업로드빌드할때마다 이 두과정을 거쳐서 각각 S3와 ECR에 파일과 이미지가 쌓여서, 만약 배포를 10번 하면 10개의 실행파일과 이미지가 불필요하게 저장됩니다.혹시 $GITHUB_SHA 같은 생성되는 변수를 사용하지 않고고정된 이름을 사용해서 덮어 씌워서 사용해도 문제는 없나요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
branch 분기
지금은 branch 분기 하지 않고 main 브런치 하나만 하지만dev cicdprod cicd 돌리게 될때 분기처리는 어떻게 하시나요 ?간단히하면 그냥 github actions 파일을 두개 만들면 될것같은데강사님은 어떻게하시나요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
배포 실패 디버깅 질문
안녕하세요 깃허브액션작업은 성공했고, codedeploy에서 ec2에 배포하는 과정에서 에러가났습니다에러미시지: The deployment failed because a specified file already exists at this location: /home/ubuntu/github-actions-practice/package.json 2024-12-14T02:35:19 INFO [codedeploy-agent(3496)]: [Aws::CodeDeployCommand::Client 200 0.023341 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"The deployment failed because a specified file already exists at this location: /home/ubuntu/github-actions-practice/package.json\",\"log\":\"\"}"} 그런데 EC2의 프로젝트 디렉토리에는 기존 플젝코드가 있는게 당연한 것 아닌가요?? 그럼 appspec.yml에 기존 코드를 삭제하고 새로운 코드를 덮어쓰는 옵션같은 것을 추가해야하는 걸까요?이 에러가 왜 발생한것인지어떻게 해결해야하는지 몰라서 질문드립니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
테스트 코드 빌드오류
안녕하세요 강의 설명이 너무 좋아 잘 따라가고있습니다ㅎㅎ저는 Docker + Spring Boot로 배포 자동화 시키는게 목표입니다! 문제는 기존에 로컬 DB 연결로 테스트 코드를 작성했었는데요!(개인 프젝)이 때문에 빌드가 안되다보니 따라가는데 조금 어려움이 있었습니다..! EC2안에 도커로 DB 띄워서 해결해야만 할 것 같은데 이렇게 해도Docker+Spring Boot 목차를 따라가는데 문제 없을까요? 테스트 파일을 삭제하고 싶진 않아서요!!다른 좋은 방법이 있으시다면 알려주시면 감사하겠습니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
codedeploy 배포 실패 에러 로그 질문
안녕하세요. 깃헙 액션 작업은 통과하였는데, codedeploy는 배포에 실패했습니다. codedeploy 로그파일을 찾아보았는데 제가 추측하는 에러 부분은 아래 부분일 것 같은데, 혹시 어느 부분이 잘못 되었을까요? ..2024-12-07T16:12:48 WARN [codedeploy-agent(7606)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Calling PutHostCommandComplete: "Code Error" 2024-12-07T16:12:48 INFO [codedeploy-agent(7606)]: [Aws::CodeDeployCommand::Client 200 0.018818 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"undefined method `[]' for nil:NilClass\",\"log\":\"\"}"},host_command_identifier:"eyJiYXRjaElkIjoiMmE3MWFiOWRhOGNmODAxYTM3OWZiNmFkMGZhYzk1NjMvcHVibGljMDA1IiwiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS9hcC1ub3J0aGVhc3QtMi9wcm9kL29ycGhldXM6cHVibGljMDA1LzIzNTQ5NDc3NjUzMDpkLTNKTzIyQzkwOSIsImhvc3RJZCI6ImFybjphd3M6ZWMyOmFwLW5vcnRoZWFzdC0yOjIzNTQ5NDc3NjUzMDppbnN0YW5jZS9pLTBlYzEzOTRiZGRiNjg5ODBkIiwiY29tbWFuZElkIjoiQXBvbGxvRGVwbG95Q29udHJvbFNlcnZpY2V8YXJuOmF3czplYzI6YXAtb궁금한 점은1. 위와 같은 에러가 발생한 이유2.강사님이 올려주신, codedeply 에러 로그 보는법을 확인했는데, 제가 리눅스 명령어에 익숙하지 않아서 .. 어떠한 방식으로 에러 로그를 확인하는게 좋을까요?(cat이나 이런거로 읽으면 로그가 너무 많이 출력 되는데, 에러를 해결할 수 있는 핵심 로그만 볼 수 있는 방법이나, 강사님만의 방법이 있을까요?!)
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
docker 기반 cicd 배포
안녕하세요 docker 기반으로 cicd 적용시에docker stop 하고 docker rm 으로 container 죽인담에 다시 docker pull -> docker start 하는거면 그 잠깐의 시간이겠짐나 어쨋든 끊기지 않나요 ?혹시 끊기는 시간을 더 줄인다고 하면 우선 먼저 docker pull 를 하고나서 이전 docker stop docker rm 을 하고 새롭게 docker pull 받은것을 docker run -d 할수있으면 좋을것 같은데 방법 있을까요 ?ecs 에서도 ec2 가 있는걸로 알고있는데요 ecs ec2 를 사용하게 되면 blue green 은 아니더라도 롤링 배포를 할 수 있을것 같은데 사용하지 않은 이유가 있을까요 ?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
pm2 restart
만약에 수정된것을 git pull 받고 pm2 를 다시 동작시키는거면 1. git pullnpm inpm run buildpm2 reload로 해도 되는걸로 알고있는데kill 죽이고 나서 다시 restart 하는 이유가 있나요 ? 서버안에서 npm run build 하게 되면 메모리 hang 으로 서버가 뻗어버리던데 이럴땐 어떻게 해결하시나요 ?? github actions 라는 컴퓨터 한대를 빌린다고 하셔서 거기에 빌드를 하면 메모리 이슈가 없겠구나 생각이 드는데 스크립트를 보면 결국엔 ssh 로 ec2 host 접근해서 빌드 하더라고요 그러면 ec2 서버내에서 빌드하는게 아닌가 ?? 생각이 들어서요 ㅎㅎ