묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결개발자를 위한 쉬운 도커
쿠버네티스 강의 언제 나오나요..
11월 초에 나온다고 하셔서 기다리고 있습니다.아직 완강하지 않았더라도 연재식으로라도 강의 올려주셨으면 좋겠어요
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
초기 클러스터 생성시 나타나는 오류
초기 클러스터 생성시 CoreDNS 와 kube-proxy 추가가 안되는데생성할때 제가 놓친부분이 있나하여 문의드립니다. 쿠버네티스 버전은 현재 1.34인데 강의와 같이 1.32로 낮춰서 생성했는데어디서 잘못된건가 싶습니다. POD에서 Service로 통신 확인하는 과정에서 오류가 발생하여gpt에 물어보니 해당 기능이 생성되지 않아서 나타나는 문제라고 하는데~현재는 노드그룹과 클러스터는 삭제해놓고 다시 생성하려고 하는데어떤것을 확인하면서 생성하면 좋을까요?
-
해결됨비전공자도 이해할 수 있는 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
-
미해결실전! GitHub Actions으로 CI/CD 시작하기
로드밸런서 연결 실패
배포 슬랙연동까지 잘 됬는데, 마지막, 로드밸런서 DNS연결이 안됩니다.node version, port 등을 수정 했습니다.여러번 시도 해봤으나 잘 안되네요. 궁금합니다. FROM node:22-alpine WORKDIR /app COPY myapp/package*.json ./ RUN npm install COPY myapp/ ./ EXPOSE 3000 CMD ["npm", "run", "preview", "--", "--host", "0.0.0.0", "--port", "5173"]{ "name": "myapp", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint .", "preview": "vite preview", "start": "vite preview --host 0.0.0.0 --port 5173" }, "dependencies": { "react": "^19.1.1", "react-dom": "^19.1.1" }, "devDependencies": { "@eslint/js": "^9.36.0", "@types/react": "^19.1.16", "@types/react-dom": "^19.1.9", "@vitejs/plugin-react": "^5.0.4", "eslint": "^9.36.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.22", "globals": "^16.4.0", "vite": "npm:rolldown-vite@7.1.14" }, "overrides": { "vite": "npm:rolldown-vite@7.1.14" } }
-
해결됨eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
3강 spting 빌드환경에서 mysql 부분 질문있습니다.
intelilJ 에서 어플리케이션 실행시 application.yml 프로파일에 default 부분이 깃허브에 올라온 파일에는 prod로 되어있고 그대로 실행하면 mysql에서 ordersystem 테이블 생성이 정상적으로 되지 않아서 강의를 상세하게 보니 코드부분에 local로 실행을 시키셔서 그것을 바꾸고 실행하니 테이블 안에 member , ordering , product는 생성되었는데 포스트맨에서 로그인 테스트시 임의로 만든 이메일 계정 조회시 404가 뜨는데 제가 어느부분을 놓쳐서 정상적으로 작동이 안되는걸까요?그부분 상세하게 설명 부탁드리겠습니다.
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
S3 업로드 역할 부여 질문 드려요
안녕하세요, 강의 잘 듣고 있습니다.강의를 듣는 중 궁금한 점이 있어 문의드립니다. 현재까지는 EC2에 Spring Boot를 배포하고, EC2 인스턴스에 S3 접근 권한을 가진 IAM 역할을 부여해 S3 업로드 기능을 구현해 왔습니다.이번에 처음으로 EKS를 사용해보려고 하는데요,EKS에서도 EC2 워커 노드에 IAM 역할을 부여해 S3 접근 권한을 줄 수 있는지 궁금합니다.또는 일반적으로는 어떤 방식으로 S3 접근 권한을 설정하는지 알고 싶습니다.
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
수업 자료는 어디서 확인 가능한가요?
수업 자료 (노션?) 은 어디서 확인이 가능한걸까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
섹션 4, 5와 6, 7은 유사한가요?
현재 스프링부트 프로젝트의 인프라와 CI/CD를 공부하고 있습니다섹션 4, 5와 6, 7이 프레임워크 (스프링부트 / Nest.js)의 차이만 있는것으로 보이는데6, 7 섹션을 우선 넘어가도 괜찮은지 궁금합니다
-
해결됨개발자를 위한 쉬운 도커
postgresql-repmgr:15 지원 종료에 따른 대체 이미지 변경 질문드립니다!
안녕하세요, 이중화 DB 구성 파트 강의를 들으면서 실습을 진행하던 중 bitnami/postgresql-repmgr:15 이미지가 없어서 아래 이미지처럼 오류가 발생 중입니다.찾아보니 해당 이미지가 "더 이상 무료로 제공되지 않는다.", "Helm 차트에서 postgresql-ha를 설치해야 한다." 라고 나오더라구요.혹시 이를 대체할 이미지는 어떤 걸로 변경할 수 있는지 궁금합니다!
-
해결됨이거 하나로 종결-고품질 리액트와 스프링부트 65시간 풀스택 개발 강의(도커, AWS, GITHUB-ACTIONS)
섹션5 최종프로젝트에는 게시글 작성 수정 이런내용은 빠져있는건가요? 원래 없는건가요?
Q. 수업 영상에서의 질문은 오로지 아래 이메일 주소로 아래 양식과 함께 질문 부탁드립니다.그린 코딩 강사 이메일 주소: canesblack0107@gmail.com이메일 제목 양식 예시[필수]: [인프런-00강좌 질문드립니다.] 안녕하세요. ~~ 질문드립니다.!=> 제가 이메일 외의 인프런트에 질문 카테고리 페이지는 답변이 늦을 수 있습니다. 섹션5 최종프로젝트에는 게시글 작성 수정 이런내용은 빠져있는건가요? 원래 없는건가요?
-
해결됨개발자를 위한 쉬운 도커
섹션 9. 레이어 관리에서 alpine OS 사용 관련 질문 있습니다!
안녕하세요! 섹션 9에 레이어 관리 파트 강의를 듣다가 궁금증이 생겨서 질문드립니다!이미지 크기를 줄이기 위해 최소한의 환경만 갖춰진(?) alpine OS를 사용한다고 이해했습니다.그러면 현업에서는 alpine OS를 사용한다고 가정할 때 해당 OS에 애플리케이션 실행에 필요한 구성이 전부 존재하는지, 어떤 프로그램들을 추가로 설치해야 하는지 확인하는 방법이 있는지 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
도커 가상 네트워크와 Stateless 특징 관련 질문
안녕하세요!처음 도커를 공부하는데 강의 너무 잘 듣고 있습니다.😀도커 가상 네트워크와 컨테이너 상태 부분을 들으면서 2가지 궁금한게 있어 질문 드립니다. 1.지금까지 스프링부트 애플리케이션을 개발하면서는 DB 접속 도메인을 고정으로 사용해도 되는 경우가 대부분이었는데, (로컬에서 h2 DB 사용 또는 aws rds 처럼 이미 도메인이 부여된 경우) 이런 백엔드 애플리케이션과 프론트엔드 애플리케이션을 같이 띄울때는 도커 dns 기능이 딱히 필요가 없어 보이는데 이런 경우에도 별도로 네트워크를 구성해서 띄우는게 좋을까요? 그냥 기본 bridge 네트워크를 사용하면 될까요?도커 가상 네트워크가 단지 dns 기능만을 위해서 사용되는건지, 하나의 애플리케이션에 필요한 서버 전체 구성을 묶어 주는 개념으로도 사용하는 것인지 궁금합니다. 2. 컨테이너의 Stateless 특징 중에“특정 컨테이너에 쌓인 파일들이 컨테이너의 동작에 영향을 주지 않기 때문에 서버를 지우고 다시 생성하거나 필요하지 않은 서버를 제거할 때 걱정 없이 제거 가능하다” 는 부분이 조금 모호하게 이해됩니다.이미지와 컨테이너를 사용하지 않더라도 서버의 변경 사항을 수정하고 재기동을 하면 이전 서버의 상태와 상관 없이 새로운 내용이 적용되는데, 어떤 차이점이 있는걸까요?여러대의 서버를 사용하는 환경에서 컨테이너를 사용하면 여러대의 서버가 동일한 상태를 가질 수 있다는것이 핵심인 것으로 이해하면 되는 내용인지 헷갈려서 질문 드립니다. 감사합니다 🙇♀
-
미해결개발자를 위한 쉬운 도커
우분투 설치
안녕하세요.우분투에서 설치 진행하고 싶은데,따로 챕터가 없는 거 같아서요.우분투 셋팅은 어떻게 진행할 수 있을까요?
-
해결됨개발자를 위한 쉬운 도커
도커 보안을 실무에서 어떻게 대비하시는지 궁금합니다.
안녕하세요 도커를 사용할 때 보안 이슈는 빼놓을 수 없는 상황입니다. 데몬 기반 구조로 취약점이 있다고 하는데 이론적으로 알겠지만 어떤 원인으로 발생할 수 있고 유사 경험이 있으신지 궁금해요 또 실무 환경에서는 어떤 방식으로 대비를 하고 예방을 하시는지 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너를 활용한 개발환경 통일에 관하여
인텔리제이 Ultimate 라이센스가 있어서, 프론트엔드 작업(React)과 백엔드 작업(Spring)모두 인텔리제이에서 작업하는데요. 노드 버전을 이것저것 설치하면서 들었던 생각이 '개발환경도 컨테이너로 띄워서 하면 안되나?' 였습니다. 이 섹션을 통해 그 갈증을 해소한 것 같아요.
-
해결됨깃허브 데스크탑으로 프로젝트 관리하기
비공개 보안
민감한 정보를 포함하는 비공개(Private) GitHub 저장소의 보안을 강화하기 위해 조치가 있을까요
-
미해결eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)
38강 질문입니다.
현재 제공해 주신 프로젝트를 만약, 서비스마다 독립된 데이터베이스로 MSA를 구축한다면 각 테이블에서 Join등을 사용할 수 없기 때문에 코드 수정이 대폭일까요, 아니면 db만 추가하기 때문에 코드 수정이 상대적으로 많치 않을까요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
code deploy 배포입니다.
배포까지 잘 끝났고, s3파일 업로드로 잘됬습니다.여기도 문제없는것같고요...그런데...java구동이 안되는것 같습니다.. 이유가 뭘까요??
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
사용자 삭제가 안되는 이유
그림 보시면 사용자 삭제 버튼이 활성화 안되는 이유는 뭘까요??하위 정책도 없습니다.
-
미해결개발자를 위한 쉬운 도커
k8s 강의 일정
선생님 안녕하세요혹시 k8s 는 오픈 예정이 언제쯤일까요..?회사에서 이제 쓰게될거 같아 공부하려고 하는데선생님의 강의로 듣고 싶어 기다리는 중입니다ㅎㅎ