묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
aws t3a.small 비용
실습에 사용하는 t3a.small 인스턴스는 프리티어 지원이 안되는 것으로 알고 있는데 맞나요?맞다면 실습으로 인한 비용은 어느 정도로 예상해볼 수 있을까요
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
백엔드 API 설정을 https로 하고 싶은 경우
현재 서비스에서 백과 프론트의 소통이 https://도메인으로 이뤄지고 있는데, 이 경우에는 ALB와 타겟그룹 설정 시 80포트 말고 443 포트를 열도록 하면 되나요?
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
Vite 없이 React만 배포할 시
제가 백엔드 쪽으로만 공부해서 그러는데 Vite 적용 안하고 React만 써도 영상처럼 사용 가능한가요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
프로메테우스랑 로키스택 설치관련 질문
안녕하세요. 강의 잘 보고 있습니다.제가 현재 맥 환경에서 사용중인데요. 제가 기존에 사용하는 페러럴즈라는 VM프로그램이 있는데, 그거로 사용시에 대쉬보드설치는 완료했는데, 프로메테우스랑 로키스택의 경우는 설치가 되지 않더라구요. 현재 제가 작은 서버를 하나 가지고 있어서 네트워크를 고정아이피로 사용중인데요. 그래서 192.168.56.x를 사용할수 없어 제가 사용하는 ip를 기반으로 VM IP를 또한, 공유네트워크를 사용할 수 없어 기본어뎁터를 베이스로하는 브릿지 모드로 맞췄습니다. 빠른설치 게시글을 통해서 해당 부분 ip를 변경해서 대쉬보드 설치는 완료해서 띄울 수 있었는데요. 프로메테우스와 로키스택의 경우는 pending이 발생하거나 설치자체가 안되는지 상태를 알수없다는 STATUS만 나오게 됩니다. 그래서 깃허브에 올려놓으신 yaml파일을 읽어보았는데요. 프로메테우스와 로키스택에서는 ip를 명시하는 부분은 없더라구요?(다른 yaml파일에서는 발견함) 왜 이런 현상이 나타나는지 모르겠습니다. 크러쉬가 일어나지도 않아서 로그가 남겨지진 않구요... 뭐가 문제일까요?ㅠㅠ 그래서 UTM을 설치해서 실행했을때는 문제가 없이 동작했습니다. 다른 부분이라하면 ip만 강의와 다르게 했을 뿐인데 .yaml파일에 ip명세가 문제가 아니라면 뭐가 문제일까요?
-
해결됨비전공자도 이해할 수 있는 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로 작성하는거다보니 너무 질문이 많아서 죄송한데 답을 알려주시옵소서!!!
-
해결됨비전공자도 이해할 수 있는 Nginx 입문/실전
location = /50.x.html 블럭
안녕하세요! 좋은 강의 잘 보고 있습니다!! default.conf 파일에서 location = /50.x.html 블럭의 역할이 location / 블럭과 동일해서 필요없는거 같은데 존재하는 이유가 뭔가요??단지, 현재는 두개의 블럭의 root 값이 똑같아서 그런거고 나중에 달라질수 있기때문에 일단 블럭이 2개 만들어져있는 건가요 ??
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
NextJS 15버전의 경우 build 후 폴더가 다른 것 같습니다
NextJS 15버전에서 build를 하면 .next라는 폴더가 생기고 server폴더, static 폴더를 포함한 다양한 파일들이 나타납니다.그런데 html 파일이 없는데 어떻게 nginx 세팅을 해야하는지 잘 모르겠습니다...!
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
다양한 API가 있는 경우 효율적으로 테스트하는 방법이 있을까요?
안녕하세요 강사님! 강의를 완강한 한 학생입니다!제가 이번에 스프링부트로 개발한 서비스를 하나 배포할 예정이고 얼마 만큼의 부하를 견딜 수 있을지 궁금하여 부하테스트를 공부하고자 강의를 수강하였습니다. 근데 막상 부하테스트를 해볼려고 제가 만든 서비스에 API들이 약 30개 가까이 되는데 이 많은 API들을 어떻게 테스트 할지가 고민입니다.(학업 관련 서비스입니다. 그래서 Oauth 로그인, 시간표 CRUD, 친구 관리, 과제 CRUD 같은 API가 있습니다)하나 하나 다 테스트를 해야하는지 아니면 시나리오를 구성하여 테스트를 해야하는지 그리고 시나리오를 구성한다면 어떻게 구성해야할지 막막합니다. 어떤식으로 하면 좋을지 조언을 받고 싶습니다ㅠㅠㅠ
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
한방에 빠르게 설치하기에서 에러가 나는데요
일단 Vagrantfile보면yum install -y kubelet-1.27.2-150500.1.1.x86_64 kubeadm-1.27.2-150500.1.1.x86_64 kubectl-1.27.2-150500.1.1.x86_64 --disableexcludes=kubernetes 이렇게 각 버전을 직접 명시했는데....저는 공식가이드에서 1.30을 선택하면 그냥 버전명이 안붙은채로 되던데...어떻게 저 디테일한버전을 찾을수있나요?그리고 일단 그보다....이런 상황이고 해당 노드 내용을 보면이런 에러가 뜨고요..왠만한건 모두 pending상태입니다.해당 파드 describe 보면 0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/not-ready: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling 이거구요.. 이게 처음 설치할때 로그를 보면 여기에서부터 문제인것도 같은데...kubeadm설치시 master-node: [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' master-node: W0228 15:14:16.156514 25883 checks.go:844] detected that the sandbox image "registry.k8s.io/pause:3.6" of the container runtime is inconsistent with that used by kubeadm.It is recommended to use "registry.k8s.io/pause:3.9" as the CRI sandbox image.버전이 서로 안맞다고 나옵니다.뭐가 잘못된걸까요? 그리고 vagranfile에는 kubeadm init --pod-network-cidr=20.96.0.0/16 --apiserver-advertise-address 192.168.56.30 이렇게만 있는데런타임유닉스 도메인 소켓 경로containerdunix:///var/run/containerd/containerd.sock--cri-socket=unix:///var/run/containerd/containerd.sock이부분을 추가해줘야 하나요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
containerd 버전확인방법
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo이부분을 추가하고 나서 설치버전을 확인할수있는데이해가 안되는게 지금 github 가이드 보면 1.6 LTS 와 1.7LTS 가 보이는데 그래서 1.7을 설치하고자 하는데 dnf list containerd.io --showduplicates | sort -r 명령어로 실행해보면 최신버전이 1.6 까지밖에 안보입니다.저는 1.7버전 이상을 사용하고 싶고 패키지 설치명령어는<major>.<minor>.<patch> 만 있는게 아니라 containerd.io-1.6.21-3.1.el8 이렇게 el8까지 보이는데 containerd 릴리즈 사이트에서는 패치까지만 보이고 그 이후는 볼수가 없습니다. 이부분이 알고싶습니다.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
vagrant up 설치에러
vagrant up하면 에러를 FAQ에서 보고 해봐도 잘 안되네요. 검색해보고 찾아보고 coreinfo -v확인도 해보고 해봤는데..다시도 설치해보고 Hyper-V 비활성화도 되어있구요.관리자권한으로 실행도 해봤구요. 보안에서 해당 virtualbox폴더 차단 제외도 해봤구요. 에러내용은 아래와 같습니다. 해당 위치 로그 파일 내용은 다음과 같습니다. 44a8.453c: 00007ff7f25a25fd / 0x01125fd: 00 != 4e44a8.453c: 00007ff7f25a25fe / 0x01125fe: 00 != 4744a8.453c: 00007ff7f25a25ff / 0x01125ff: 00 != 5844a8.453c: Restored 0xa08 bytes of original file content at 00007ff7f25a25f844a8.453c: Error (rc=-5607):44a8.453c: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)44a8.453c: Error (rc=-5607):44a8.453c: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)44a8.453c: Error -5607 in supR3HardNtChildPurify! (enmWhat=5)44a8.453c: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
기술의 흐름으로 이해하는 컨테이너 질문드립니다!
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops --9분 58초쯤에 나오는 설명에 대한 질문입니다.kubelet에서 컨테이너 런타임으로 바로 받는다는 의미가 잘 이해가 안갑니다.우선 제가 이해한것을 말씀드리겠습니다.!CRI를 이용해서 grpc로 통신하는 방법에서 CRI-plugin을 통해 직접 받는 방법으로 변경되었다.각각의 컨테이너 밴더에서 플러그인을 구현하고 kubelet에서 해당 플러그인을 직접 호출한다. 여기서 궁금한 점입니다!CRI 구조에서, 도커의 새로운 기능이 생기면 쿠버네티스도 패치해야한다고 하셨는데 이는 CRI-plugin를 이용할때도 동일한게 아닌가요? 둘의 개발 라이프사이클을 다르게 가져갈 수 있는 이유가 궁금합니다. 새로운 기능이 생겨도 인터페이스만 맞으면 되는 것인데,인터페이스의 변화가 필요하다면 결국은 플러그인이나 CRI나 kubelet의 변화도 필요한게 아닌가요??
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
혹시 DB를 RDS로 빼지 않고 EC2안에 설치하게 되면 메트릭을 어떻게 측정할까요?
안녕하세요. 좋은 강의 잘 듣고 있습니다.예제에서 처럼이 아니라 EC2안에 DB 서버를 설치하게 된다면, 또 Spring 서버 뿐만이 아니라 필요에 따라 그 옆에 express 서버도 한 EC2 안에서 같이 돌릴 일도 있을 거라 생각하는데, 그런 경우에는 각각의 메트릭을 어떤 식으로 측정이 가능할지 질문 드립니다.
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
node, nest 사용자도 쉽게 이해가 가능할까요?
제목 그대로 node, nest 사용자인데 강의 목록에서 보면 java로 하시더라고요. 근데 제가 초보자여서 강의에서 하시는 것을 보고 node, nest에서도 쉽게 활용이 가능할지 궁금합니다. 난이도가 어느정도로 생각하면 될까요? 지식은 java는 아에 없고 node, nest는 기초적인 지식 정도만 있습니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
테스트 코드 고의 실패 시 강사님 화면과 똑같이 안나옵니다.
무슨 말인고 하니 똑같이 고의로 테스트를 실패하게 만들었는데 강사님 화면은 어디에서 테스트가 실패했는지 CI/CD 화면에서 보여주는데 제 화면은 스샷과 같이 안나옵니다. 강사님 화면에서는 github actions에서 아래의 화면처럼 테스트 실패 이유가 뜨는데 저는 안 떠요! ===================================위의 사진은 저의 실제 코드 사진입니다. 제가 어디 잘못한게 있나요?
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
상대경로 관련 질문드립니다!
현재 폴더 구조가 etc > nginx > conf.d > default.conf, websites입니다. default.conf에 상대경로를 작성할 때, default.conf와 websites 폴더가 같은 경로에 위치하기 때문에 websites/~(websites부터 작성)로 작성하면 될 것이라고 생각했는데 왜 conf.d부터 경로를 시작하는 것인가요?
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
nginx, DNS 순서 관련 질문
그렇다면 nginx를 거친 이후에 DNS를 거쳐서 도메인 이름이 IP주소로 변경되는 것인가요? 순서가 궁금합니다.
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
nginx 설정파일 root 설정 관련 문의
리액트 + 스프링부트로 개발을 진행 중에 있고, 강의를 따라서 리액프 프로젝트를 배포하고 있습니다. 그런데, 404 Not Found가 발생하여 이와 관련하여 문의드리고자 합니다.우선 제 프로젝트의 위치는 ~프로젝트명/front/build/index.html과 같습니다. (저는 dist 대신 build가 뜨더라구요)nginx의 설정파일에서 root에 '~/프로젝트명/front/build'로 할 때에는 404가 발생했는데, '/home/ubuntu/프로젝트명/front/build'하니까 404 오류가 없어졌습니다. 경로를 명확하게 명시해야 하는 것인가요? 추가로 요청 결과 403 Forbidden이 나왔는데 어떠한 이유 때문일까요... 로컬에서는 문제없이 동작합니다
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
작동이 안되는데 제대로 된게 맞나요?
강사님과 같이 만들었습니다. 다만 제가 deploy.yml을 depoly.yml로 잘못 작성한거 빼고는 강사님과 같은데 설명에 .yml 앞의 이름은 상관 없다고 하셔서 큰 문제는 되지 않을거라고 생각합니다. 다만 사진과 같이 간단한 CI/CD 코드인데 2분이 넘도록 체크 표시가 안뜨는 문제가 있습니다. 제가 어떤 것을 잘못했을까요? 코드는 이렇게 작성했습니다.
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
카페 게시글 누락 (체험 App배포)
안녕하세요 일프로님.강의 영상에서 띄어주신 '[섹션2] 쿠버네티스가 정말 편한 이유 [체험 App배포]라는 게시글이 현재 카페에 존재하지 않습니다. 다시 보니 다른 제목의 동일한 내용의 게시물이 존재하네요.([Sprint1] 실무에서 느껴 본 쿠버네티스가 정말 편한 이유 > 쿠버네티스 대표 기능)강의 영상과 제목이 다른 카페 게시글이 종종 있는 것 같습니다. 관련하여 안내가 보강되면 좋을 것 같습니다.강의 잘 보고 있습니다 완강까지 달려보겠습니다 감사합니다!