묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
안녕하세요. 실습 환경 질문드립니다.
안녕하세요~ 강사님. 강의 잘 듣고 있습니다.섹션 7, 8은 꼭 AWS를 이용해야만 실습이 가능한 섹션일까요? (아직 안들어봐서 모르겠는데 AWS가 아닌 다른 개인 클라우드 서버를 갖고 있다면 대체가 가능할지 여쭙고 싶어요.)
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
argocd 배포 이슈
안녕하세요.우분투 22.04에서 실습하는데, argocd에 배포시 이슈가 있어 문의 드립니다.서버에 minikube 설치 후 테스트를 진행하였고 argocd에서 배포할 때 강사님의 github에 있는 manifest에서 sync를 맺으려고 하면, Failed to load live state: namespace "default" for Service "welcome-svc" is not managed 와 같은 메세지가 나오는데요.roll-binding, config map 수정등의 작업을 수행해도 sync시에 default namespace에서의 에러가 발생합니다.감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
컨테이너가 생성과 동시에 꺼집니다.
안녕하세요. docker 공부를 하고있는데 redis를 강사님과 똑같이 docker run -d -p 6379:6379 redis 라고 생성했더니 생성은 되나 자동으로 꺼지네요.CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES be795dd1b69f redis "docker-entrypoint.s…" 4 seconds ago Exited (1) 4 seconds ago my-redis ce1e514748c0 redis "docker-entrypoint.s…" 3 minutes ago Exited (1) 3 minutes ago gallant_davinci M1칩 맥북을 사용하고있는데 아키텍처 불일치 문제일 수도 있다고 하여 구글링해서 아래와 같이 입력도 해보았으나 계속 자동으로 꺼집니다..ㅠㅠdocker run --platform linux/arm64 --name test-redis -d -p 6379:6379 redis 전에 Docker Desktop을 깔아두어서 사용중인데 이것때문에 문제가 발생할수도있나요? nginx 이미지를 통해 컨테이너를 생성하면 안꺼지는데 redis, mysql, mariadb같은 데이터베이스 이미지만 사용하면 꺼지네요.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
강의가 재생이 되지 않습니다.
nginx 웹서버 설정 이해2해당 강의가 위와 같이 뜨고 재생이 되지 않습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
깃액션은 성공하지만 계속 서버가 Killed 됩니다.
name: Deploy TO EC2 on: push: branches: - main jobs: Deploy: runs-on: ubuntu-latest # SSH로 접속하는 명령어를 쳐주자. # 일일이 다 쳐도 되지만 불편하기때문에 github actions의 라이브러리를 사용하면 편하다 # uses는 내가 어떤 라이브러리를 쓸 건지 기재하는 곳이다. steps: # SSH는 다른 원격 컴퓨터로 접속하는 프로토콜이다. # Github Actions도 하나의 컴퓨터고, EC2도 하나의 컴퓨터이므로 SSH를 통해서 원격 접속을 진행해주자. - name: SSH(원격 접속)로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.HOST }} # IP 주소를 말함 username: ${{ secrets.EC2_USERNAME }} # EC2를 연결할 때 사용자 이름 key: ${{ secrets.EC2_PRIVATE_KEY }} # EC2에 접근할 때 사용하는 키 페어 script_stop: true # run이 아닌 script로 실행하는 라이브러리도 있으니 예제파일을 참고하자 # EC2에 접속해서 실행한 명령어들을 차례대로 작성해주자 # 1. 프로젝트의 해당 경로로 이동 # 2. github에서 프로젝트 pull # 3. gradlew 재 빌드 # 4. 포트번호 8080서버를 끄거나 서버가 이미 꺼져있어도 true # 5. SNAPSHOT.jar로 끝나는 파일을 실행. 로그는 output이라는 파일에 남김 script: | cd /home/ubuntu/personal-cicd-server git pull origin main ./gradlew clean build sudo fuser -k -n tcp 8080 || true sudo java -jar /personal-cicd-server/build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & 메모리 부족 문젠가 싶어서 https://velog.io/@kwontae1313/AWS-EC2-%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%9A%A9%EB%9F%89-%EC%A6%9D%EC%84%A4위 링크를 보며 메모리 용량 증설도 해주었으나, 이후에도 안되어서 t3.small로 인스턴스 유형을 변경하였습니다.근데 계속 Killed이 뜨네요..ㅠㅠ 다시 서버를 실행시키면 코드가 변경은 되어있구요.. 왜 계속 프로세스가 죽는걸까요..??
-
미해결대세는 쿠버네티스 (초급~중급편)
cat join.sh시 존재하지 않는다네요
join.sh가 없는데 다시 vagrant up 해야하나요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
리액트 배포하기..
안녕하세요!! 혹시 리액트로 배포하는 방법도 알려주시면 안될까요 ? ㅜ
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
팀프로젝트시
안녕하세요! 취준생입니다!교육받는 곳에서 취업을 목표로 팀프로젝트(4명)를 진행하려고 하는데, 방법4까지만 해도 괜찮을지 5까지 하면 포트폴리오로써 더 좋을지 궁금합니다..
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
The edge runtime does not support Node.js 'crypto' module.
[auth][error] JWTSessionError: Read more at https://errors.authjs.dev#jwtsessionerror[auth][cause]: Error: The edge runtime does not support Node.js 'crypto' module.Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtimeat Object.get (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\_b7b28d92._.js:62:41)at C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8637:62at getSecret (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8620:20)at push.[project]/node_modules/.pnpm/jsonwebtoken@9.0.2/node_modules/jsonwebtoken/verify.js [middleware-edge] (ecmascript).module.exports (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:8623:12)at Object.decode (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\[root-of-the-server]__273b5c62._.js:135:233)at session (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:4516:39)at AuthInternal (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:5123:269)at async Auth (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\0253f_@auth_core_77718842._.js:5379:34)at async handleAuth (C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\node_modules__pnpm_e56295b8._.js:3885:29)at async C:\project\whatsForLunch\basic-app\frontend\.next\server\edge\chunks\_b7b28d92._.js:12505:20[auth][details]: {}GET / 200 in 137msauth.ts에 jwt: { encode: async ({ token, secret }) => { return jwt.sign(token as jwt.JwtPayload, secret as string); }, decode: async ({ token, secret }) => { return jwt.verify(token as string, secret as string) as JWT; }, },이 부분을 추가한 이후부터 The edge runtime does not support Node.js 'crypto' module.이 에러가 발생하는데 해결이 어렵네요.. 코드는 노션이랑 강의 보고 다 비교해 봤는데 드른 부분은 없었스빈다..
-
해결됨인프런 클론코딩 Part 1: Next.js와 NestJS로 시작하는 실전 프로젝트
토큰 쿠기 유실 원인
안녕하세요 강의 잘 보고 있습니다.현재 섹션4까지 전부 수강한 상태이고 슬랙에는 해당 강의에 대한 질문 채널은 따로 없는 거 같아서 여기에 질문 남깁니다 로그인할 때 authjs.session-token 라는 쿠키가 생기지 않는데 로그인 후 메인 페이지로 돌아오면 로그인된 이메일 정보가 나옵니다그리고 새로고침하면 다시 없어집니다혹시 쿠키가 제대로 저장되지 않는지 이유를 알 수 있을까요? 아래는 섹션4까지 수강한 코드입니다https://github.com/account-0021/inflearn-clone
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
jar 파일 생성과 컨테이너 생성 순서
이번 강의에서 NestJS는 컨테이너를 생성하면서 npm install + npm run build로 컨테이너 내에서 애플리케이션을 빌드하는 것을 배웠습니다.하지만 왜 Spring Boot는 컨테이너를 생성하기 전에 먼저 빌드를 하고 이 jar 파일을 컨테이너로 복사하는 것인가요?Spring Boot도 NestJS처럼 컨테이너 내에서 빌드하면 docker compose up -d --build 전에 ./gradlew clean build도 생략할 수 있으니 더 편리하지 않을까 싶어 혹시 이유가 있는지 질문 드립니다. 감사합니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
50강 빌드파일
지금까지는 눈으로 학습했는데, AWS ECR에 올리는 실습을 직접 하려다 보니 로컬에서 spring boot 빌드하는 환경 구성에 시간을 잡아먹고있습니다. 개발자가 아니라서 이런 개발환경은 너무 낯선데, 다른방법으로 빌드할수는 없을까요. VSCODE에서 SpringBoot Extention Pack으로 고군분투해봐도 시간만 소요될 뿐 진행되지 않아 문의드립니다.
-
해결됨실리콘밸리 엔지니어와 함께하는 Docker
mysql 포트 사용에 관하여
강의 너무 감사합니다!질문사항이 있어 문의드립니다.yml파일 내부 db: 하위 ports: 설정부분을 보면3306:3306으로 지정되어 있습니다만,현재 제 로컬 PC에서 mysql server가 3306포트로 실행되고 있어서 에러를 만났습니다.그런데, 가만히 생각해보니 Flask 앱이 아닌, 제가 로컬(제 PC)에서 직접 요청을 할 일이 없는 경우라면 ports 설정이 필요한가요? 당장의 실습 환경에서 코드를 봤을 땐 호스트(로컬PC)에서 접근할 만 한 기능이 들어가 있는 것 같지는 않아서 db의 ports 설정부분을 제거하고 실행했을 땐 정상적으로 앱이 동작했습니다.제가 생각하지 못한 필요한 경우가 있을까 궁금하여 질문드립니다.제 로컬에서 실행되는 MySQL이 강제로 종료해도 데몬으로 등록되어있어서 계속 살아나더군요. 결국 데몬 등록을 없애고 수동으로 종료를 확인한 후에 다시 compose up --build했을 때는 됩니다.최종적으로 질문을 정리해보자면 혹시 "호스트로 내 로컬을 지정하지 않고 (즉, ports 설정을 하지 않고) 도커 네트워크 안에서 통신하도록 구성한 상황에서 문제상황이 생긴다면 어떤 게 있을까요?" 정도 인 것 같습니다.
-
미해결실무에 바로 적용하는 AWS 배포
private-ec2에서 nginx 설치
bastion을 통해서 private-ec2 접속했고sudo apt update && sudo apt install nginx -y기존에 사용하던 해당 명령어로 nginx 설치 시도했는데 아래와 같은 오류로 설치가 되지 않습니다2.4강 이전 강의들에서는 모두 위 명령어로 nginx 설치했는데, private-ec2에서는 안되는 이유가 있을까요...? E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/n/nginx/nginx-common_1.24.0-2ubuntu7.1_all.deb Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:72e0:79f6:151f:9770). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:62b8:7186:4640:999). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:c128:62c8:e380:bcd6). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:4edb:4945:bb5c:50ab). - connect (101: Network is unreachable) Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (13.124.255.209), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (13.124.245.230), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (52.79.128.16), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (52.78.32.75), connection timed outE: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/n/nginx/nginx_1.24.0-2ubuntu7.1_amd64.deb Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:72e0:79f6:151f:9770). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:62b8:7186:4640:999). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:c128:62c8:e380:bcd6). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:4edb:4945:bb5c:50ab). - connect (101: Network is unreachable)E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Dockerfile VS githubActions
안녕하세요, 강의 잘 듣고 있습니다 ! Dockerfile과 githubActions의 yml 파일의 경계를 잘 모르겠습니다.Dockerfile을 통해 jar를 만들어서 실행할 수도 있고,강의처럼 yml 파일에서 jar파일을 만들 수도 있는데,현업에서는 이 두 방식 중 어떤 걸 사용하는지 또, 어떤 이점 때문에 사용하는지 궁금합니다...! 추가로, mysql이나 redis 같은 경우는 따로 Dockerfile을 작성하지 않고compose.yml 에서 바로 이미지 생성을 하고 있는데이렇게 되는 경우, EC2에서 이미지가 만들어지니 각각의 Dockerfile을 만들어서 gitActions 단계에서 처리하는 게 좋을까요...?
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
4강-Postman 사용하여 health check
안녕하세요, 4강보면서 실습중인데, 마지막 postman사용해서 health check 하는 방법에 대해 자세히 알려주실 수 있나요? postman 설치까지만 해두었습니다.
-
해결됨비전공자도 이해할 수 있는 Docker 입문/실전
프론트엔드 애플리케이션 EC2 배포 관련 질문입니다.
안녕하세요.EC2 강의를 듣던 중, 프론트엔드 애플리케이션은 주로 CDN을 통해 배포하고, 백엔드 API 서버는 EC2에 배포한다고 설명해주셨는데 이와 관련해 궁금한 점이 있습니다.만약 CSR 기반의 프론트엔드 프로젝트라면, 빌드 후 생성된 정적 파일을 S3에 업로드하고 CloudFront 같은 CDN을 통해 배포하는 방식이 충분하다고 생각합니다.하지만 최근에는 React에서 Server Actions 같은 서버 기능이 도입되고, Next.js 역시 SSR, API Routes 등을 포함하면서 정적 파일만으로 구성되지 않는 경우가 많아지고 있습니다.이런 경우, 프론트엔드 애플리케이션은 어떤 방식으로 어디에 배포하는 것이 적절할까요? CDN만으로는 어려워 보이는데, EC2나 다른 대안이 있는지도 궁금합니다.감사합니다.
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
최종적으로 springboot+mysql+redis 를 compose로 ec2에 실행시
compose up -d --build 를 통해최종적으로 다합해서 시작을했는데 에러가 뜨는게아니라 계속 과부하 걸리는지 EC2가 먹통이되더라고요 로컬로해도 계속 메모리부족같은게 뜨면서 프로그램 실행중인거 끄라고 그러는데 뭔가 메모리를 어디서 엄청 잡아먹는거같은데 다른건 다괜찮은데 compose로 mysql이랑 springboot연결하면 그런거같네요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
빌드(jar 패키징) 오류 공유
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요.FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'.스프링 프로젝트를 생성하면 최초로 만들어지는// java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } }이 테스트코드도 실패할거에요그럴때는 해당 클래스 파일을 없애거나@SpringBootTest 어노테이션을 제거하거나맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다!보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데..재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
Ec2에 도커설치시
$ sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ sudo apt-get update && \ sudo apt-get install -y docker-ce && \ sudo usermod -aG docker ubuntu && \ newgrp docker && \ sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \ sudo chmod +x /usr/local/bin/docker-compose && \ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose이걸 따라 치면된다고해서 하는건 이해했는데 추후 ubuntu에 실제로 도커를 깔아야할떄 저 명령어를 항상 복붙하기 힘들거같은데 도커공식사이트나 구글링했을떄 뭔가 방법들이 강의와 다르게 알려주는데 차이를 모르겠고 어떤걸 써야되고 뭐가 다른지도 좀 이해가 안가는데 정확하게 도커를 설치방법을 알수있는건 어떻게 알수있을까요