묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 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개월 밖에 안됬는데.. 혹시 이걸 다시 가입해야 되는 걸까요?? 한달 무료 사용해버려서요..
-
미해결파이썬 알고리즘 트레이딩 파트3: 클라우드 거래 자동화
AutoAdminLogon 설정을 로컬에서 하는건가요?
안녕하세요, 강의 잘 듣고 있습니다. AutoAdminLogon 설정을 로컬 PC에서 하는건가요 혹은 VM상에서 설정하는건가요? 강의상에서는 VM상에서 설정을 하시는 것 같은데, 제 VM에는 알려주신 경로로 들어가도 AutoAdminLogon 파일이 보이지가 않네요.(로컬 PC에서는 해당 파일이 보입니다)
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
섹션4-7. high 이슈 추가 시 slack의 high-test 채널로 상세 알림 미전송
안녕하세요.아래 상황에서 원인을 아직 찾지못해 질문드립니다.강의: 섹션 4-7 키워드 기반 이슈 자동화 2 강의[발생상황]keyword-list.txt 파일에 high 텍스트를 추가 후 이슈에서 high-test 로 이슈 생성github action 이 실행되고 알림이 슬랙에 전송되나, critical-issue, normal-issue 채널과는 다르게 알림이 추가되었다는 문구만 표시 초기에 생성한 actions 채널에 상세 알림이 전송되어 표시 [시도해본 작업]레포 high 환경변수 secret에 웹훅 url 을 새로 추가
-
미해결개발자를 위한 쉬운 도커
컨테이너의 Stateless 제약 관련 질문
안녕하세요! 강의 재밌게 잘듣고 있습니다 :] 컨테이너의 Stateless 제약 -> 상태가 업식 때문에 저장 및 공유가 필요한 데이터는 무조건 외부에 저장해야합니다. 라는 내용을 보다가 실무에서는 어떤지 궁금증이 생겼습니다.실무에서는 DB를 도커로 띄어서 운영을 하는 경우에, DB의 정보들을 별도로 외부에 저장을 하는 것인지 궁금합니다!제가 생각한 바로는 1. 배치 또는 스냅샷을 사용해서 일정주기마다 백업을 한다. (이 방법을 사용하면 컨테이너가 사라졌을 때와 가장 최근 백업 사이에 간격이 어쩔 수 없이 발생할 것 같다는 생각이 들었습니다.)2. DB는 RDS 같은 서비스가 있기 때문에 도커를 굳이 사용하지 않는다.강사님의 의견을 여쭤보고 싶습니다!
-
미해결비전공자도 이해할 수 있는 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
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
AWS ECR 로그인이 되지 않습니다.
분명 동일한 URI를 적어줬는데도 불구하고 계속 ECR 로그인이 되지 않네요...그전 강의까지는 모두 오류없이 진행했습니다. 도커 데스크탑도 실행된 상태인데도 오류가 나네요.
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
github-actions repo의 create-cluster.yaml과 init.sh 사용
eks 환경 구성할때 github-actions-setting 을 사용하지 않고 github-actions에 있는 create-cluster.yaml과 init.sh 사용했는데 무방할까요??
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
rds 인바운드 규칙을 추가해도 접속이 안되는 경우가 있네요.
인프라 자원 생성 부분에서 보안 그룹에 인바운드 규칙 추가하고 퍼블릭 액세스를 활성화 해줘도 안되는 경우가 있네요. 찾아보니 RDS 서브넷이 private로 설정된 경우(그 사이에 default가 프라이빗이 됬나봅니다) 에는 aws vpc에서 라우팅 편집을 해야 접속이 되네요. aws는 설정이 조금씩 바뀌는 경우가 많아서 참 헷갈려요ㅜ
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
RDS 인바운드 규칙 설정 관련 질문
강사님 안녕하세요 강의 잘 듣고 있습니다!강의 12분 40초 대에 RDS에 인바운드 규칙을 설정하는 부분에서 이미 인바운드 규칙이 하나 존재함을 발견했습니다.원래 있었던 인바운드 규칙은 삭제해도 강의 진행에 문제가 없는지 궁금합니다(이 계정은 신규계정으로 강의를 듣는것만을 목적으로 생성하였습니다)감사합니다
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
appspec.yml, 스크립트 파일 수정요청
안녕하세요CI/CD 강의를 재미있게 수강중 입니다수강 중 수정 사항을 요청드리기 위해 여기에 남깁니다노션 : https://jscode.notion.site/CI-CD-c028a6824f824524bcb35b8c384c9771 appspec.yml 파일 작성 중 오타가 있습니다이로 인해 정상적인 배포가 되지 않습니다확인 해주시기 바랍니다
-
해결됨이거 하나로 종결-고품질 리액트와 스프링부트 65시간 풀스택 개발 강의(도커, AWS, GITHUB-ACTIONS)
강의노트가 자료에 있는건가요..? (답변이 늦어져도 괜찮습니다)
https://webzz.tistory.com 링크를 강의노트에 넣어놓을테니 꼭 확인 부탁드린다고 하셨는데 1. 자료안에 강의 노트가 안보입니다2.https://webzz.tistory.com 이 사이트는 쿠팡 파트너스 사이트 같습니다ㅠㅠ
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
강의 내용에서 보강 하고 싶어서 질문 드립니다 - DEV, PROD 환경
실전에서는 주로 어떻게 하는지 궁금 해서 질문 드립니다. 보통 실전에서는 개발서버 및 상용서버가 각각 물리적으로 분리 된 상태에서 관리를 할텐데요. 현재 선생님께서 알려주신 부분에서 이부분을 어떻게 적용 할지 궁금 해서 질문 드립니다. AWS EKS 하나로 같이 사용하되 네임스페이스를 논리적으로 분리해서 개발 환경하고 상용 환경을 분리하자AWS EKS 물리적으로 개발 환경하고 상용 환경을 분리 하기이렇게 이슈가 있을 것 같습니다. 일단 1번 내용으로 하게 된다면 name: deploy DEV backend on: push: branches: - dev jobs: build-and-deploy: runs-on: ubuntu-latest steps: ----- 생략 ----- - name: configure aws uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_KEY }} aws-secret-access-key: ${{ secrets.AWS_SECRET }} aws-region: ap-northeast-2 - name: update cluster infomation run: aws eks update-kubeconfig --name ${클러스터이름} --region ap-northeast-2 - name: Login to ECR ----- 생략 ----- - name: build and push docker image to ecr env: REGISTRY: ${AWS ECR REPOSITORY} REPOSITORY: ${개발 Repository 명} IMAGE_TAG: latest run: | docker build \ -t $REGISTRY/$REPOSITORY:$IMAGE_TAG \ -f ./project/Dockerfile ./project docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG - name: eks kubectl apply run: | kubectl rollout restart deployment ordersystem-backend -n dev name: deploy PROD backend on: push: branches: - prod jobs: build-and-deploy: runs-on: ubuntu-latest steps: ----- 생략 ----- - name: configure aws uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_KEY }} aws-secret-access-key: ${{ secrets.AWS_SECRET }} aws-region: ap-northeast-2 - name: update cluster infomation run: aws eks update-kubeconfig --name ${클러스터이름} --region ap-northeast-2 - name: Login to ECR ----- 생략 ----- - name: build and push docker image to ecr env: REGISTRY: ${AWS ECR REPOSITORY} REPOSITORY: ${상용 Repository 명} IMAGE_TAG: latest run: | docker build \ -t $REGISTRY/$REPOSITORY:$IMAGE_TAG \ -f ./project/Dockerfile ./project docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG - name: eks kubectl apply run: | kubectl rollout restart deployment ordersystem-backend -n prod 이렇게 네임스페이스 통해 논리적으로 분리해서 관리 하는 것도 있을 것 같은데요.하지만 제가 생각 했을때는 단점으로는 SPOF (Single Point Of Failure) 문제가 발생 될 것 같아 고민이 들지만 비용면에서는 1번이 좋을 것 같기도 합니다. 주로 실전에서는 어떻게 관리를 하는지 궁금 합니다! ^_^
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
MSA - member service 배포시 문제
안녕하세요 우선 좋은 강의 만들어주셔서 감사드립니다.MSA 파트에서 질문 하나 있습니다. ApiGateway 서비스 depl_svc.yml Aplly 하기 - kubectl apply -f ./depl_svc.yml ingress 배포 - kubectl apply -f ./ingress.ymlhttps.yml Aplly 하기 - kubectl apply -f ./https.ymlMember 서비스 depl_svc.yml Aplly 하기 - kubectl apply -f ./depl_svc.ymldeploy_ordermsa_with_k8s.yml 통해서 github push 하기 AWS ECR Repository 에 정상적으로 이미지 등록되는지 체크 API Gateway 배포 완료member service 배포 실패 - Readiness probe failed: Get "http://172.31.47.22:8080/health": dial tcp 172.31.47.22:8080: connect: connection refused일단 서비스가 정상적으로 배포되었는지 자기 자신 서버로 호출 해서 체크 하는 것 같습니다. 이런데 "연결 거절" 이라는 에러가 발생되네요. 무엇이 잘못되는지 확인이 어려워서 이렇게 질문 드립니다. 다시 처음부터 했는데도 문제가 있어서 분명 제가 설정 잘못 한거 같은데... 혹시 예상되는 부분이 있을까요?
-
미해결비전공자도 이해할 수 있는 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 을이용한 배포가 되지 않아 질문 드립니다.