묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결도커 마스터즈! CI/CD, DevSecOps로 자동화 보안 실무까지!
구글 드라이브 404
안녕하세요. 선생님 공유해주신 root me 관련된 구글 드라이브에 접속되지 않아 문의드립니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Docker Containers간 통신 할 때 나타나는 에러 강의 질문
안녕하세요. Docker Containers간 통신 할 때 나타나는 에러 강의 를 듣고 있는데요. 강의중에서 컨테이너1 (노드 js 앱 + redis client) 컨테이너2(레디스서버) 라고 그림을 그려주셨는데요. 궁금한것이 레디스 서버는 왜 다른 컨테이너 안에 있나요? 하나의 docker file에 이미지 생성후 , 컨테이너를 만들어서 실행시킨건데 그러면은 하나의 container 안에 들어있는거 아닌가요?
-
해결됨비전공자도 이해할 수 있는 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" } }
-
미해결99% J형 엔지니어와 함께하는 AWS EKS와 GitLab CI/CD 기초 완벽 정복
강의 노션 링크는 어디있는걸까요?
강의 노션 링크는 어디있는걸까요? 대시보드에 안보여서요
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스에 등록된..
젠킨스에 등록된 프로젝트 리스트 정보를 혹시 api나 문서로 출력할수있을까요?깃헙의 리스트를 보여주는게 불편하고..게인서버에 커밋하고 제가 커밋한 프로젝트의 리스트만 보여주고싶은데..젠킨스는 가능할까궁금해서 질문드리게되었습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
필요한 파일만 가지고 배포할 수 있나요?
image같은 정적파일이나, JSP만 따로 Jenkins를 통해서 배포할 수 있을까요?배포하려는 환경은 온프레미스이며, 소스 저장소는 Bitbucket을 사용하고 있습니다! jenkins는 처음이라 감이 잘 안 잡힙니다. 각각의 소수의 원하는 파일들만 자동 배포를 할 수 있는지 궁금합니다!
-
미해결도커 마스터즈! CI/CD, DevSecOps로 자동화 보안 실무까지!
ZAP 자동화 context
안녕하십니까. 실습을 따라하던 와중에 막히는 부분이 있어 질문드립니다. ZAP 실습에서 tools -> Authentication User 테스트를 하고 난 후 저는 자동화 New Plan 창에 Authentication Test라는 Context가 생성되지 않아 질문드립니다.
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
lightsail 가상서버에서 sudo npm start를 실행했을때 오류 질문드립니다.
강사님 안녕하세요:)강의 들으면서 aws 잘 배우고 있습니다.한가지 질문이 있는데요,.env 파일에서 PORT를 80으로 변경하고관리자 권한인 sudo npm start를 실행했는데 커맨드가 not found라고 나오더라구요..! 이럴땐 어떻게 처리해야하는지 궁금합니다.
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
ec2로 배포
강의에서는 ec2를 주로 안다루는데 과제에 직면한게 ec2로 배포하는거라iam 권한을 크게 신경안써도 해도된다면 그대로해도 괜찮을까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
섹션 4, 5와 6, 7은 유사한가요?
현재 스프링부트 프로젝트의 인프라와 CI/CD를 공부하고 있습니다섹션 4, 5와 6, 7이 프레임워크 (스프링부트 / Nest.js)의 차이만 있는것으로 보이는데6, 7 섹션을 우선 넘어가도 괜찮은지 궁금합니다
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
yml 파일 db 접속정보 수정 후 배포 시 미반영
안녕하세요application-dev.yml 파일에 rds end-point url 변경 후 deploy to container plugin 으로 배포하면 바로 반영이 안되고systemctl restart tomcat.service 처리 후 반영이 됩니다.혹시 바로 반영되게 할 수 있는지 문의드립니다.고맙습니다.
-
해결됨[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
gitlab-ci.yml과 CI/CD 파이프라인 까지 수강중입니다.
1. 무엇을 하고 싶으신가요?현재 ocp 로 구축된 서버가 있는데 , 이 서버에 gitlab을 컨테이너로 올려서 구축후에 테스트해보고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
WINDOW + Vite를 사용하여 소스 코드 변경이 반영되지 않는 현상
vite를 사용하여 리액트를 생성하는 경우는 CRA를 통한 리액트 생성하는 방법과 다른것 같습니다.vite.config.js에서 옵션 추가하고 실행하면 정상적으로 동작합니다!import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; // https://vite.dev/config/ export default defineConfig({ plugins: [react()], server: { host: true, // start 옵션 추가 watch: { usePolling: true, }, // end 옵션 추가 }, });
-
해결됨개발자를 위한 쉬운 도커
postgresql-repmgr:15 지원 종료에 따른 대체 이미지 변경 질문드립니다!
안녕하세요, 이중화 DB 구성 파트 강의를 들으면서 실습을 진행하던 중 bitnami/postgresql-repmgr:15 이미지가 없어서 아래 이미지처럼 오류가 발생 중입니다.찾아보니 해당 이미지가 "더 이상 무료로 제공되지 않는다.", "Helm 차트에서 postgresql-ha를 설치해야 한다." 라고 나오더라구요.혹시 이를 대체할 이미지는 어떤 걸로 변경할 수 있는지 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
섹션 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)모두 인텔리제이에서 작업하는데요. 노드 버전을 이것저것 설치하면서 들었던 생각이 '개발환경도 컨테이너로 띄워서 하면 안되나?' 였습니다. 이 섹션을 통해 그 갈증을 해소한 것 같아요.