묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
마스터 노드 vs 워커 노드
[ EKS 생성 시 ]→ AWS가 마스터 노드(제어 플레인)를 자동 생성[ 노드 그룹 생성 시 ]→ 사용자가 EC2 기반 워커 노드 그룹(또는 Fargate)을 생성[ Pod 배포 시 ]→ 사용자가 kubectl 또는 Helm 등으로 명령 → 마스터 노드가 스케줄링 → 워커 노드에서 컨테이너 실행위의 FLOW로 이해하고 있는데워커 노드는 생성하는데 마스터 노드는 EKS 생성할 때 생성된다고 하는데 정확히 마스터 노드 역할이 뭔지 이해가 잘 안되네요 ㅠㅠ eks 생성할 때 설정해주는 값에 따라서 달라지게 되는건지 그냥 무조건 DEFAULT 생성인건지..
-
미해결비전공자도 이해할 수 있는 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 을이용한 배포가 되지 않아 질문 드립니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
S3에 프로젝트 업로드하기 오류
안녕하세요 이 부분분을 듣고 코드를 깃허브에 push 했는데 이런 에러가 계속 나가지고 질문드립니다. chatgpt로 돌려서 답장 받은거는 다 해봤습니다.
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
가용영역마다의 nat 게이트웨이 필수?
선생님께서 설계하신 것처럼 가용영역마다 nat gateway를 생성하셨던데 가용영역마다 natgateway는 분리되어야하나요?region-b 의 server는 region-a의 natgateway를 이용할 수 없나요?
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
spring boot project 에 테이블을 여러 개 만드는 경우의 설정을 알고 싶습니다.
안녕하세요.spring boot project 에 테이블을 여러 개 만드는 경우의 설정을 알고 싶습니다.강의에서는 products 테이블과 index 하나이지만실제로 프로젝트를 하게 되면 테이블을 여러 개 만들게 됩니다.가령, 학사관리 시스템의 경우 필요한 테이블이,student, professor, department, subject, course_registration.. 최소한 이정도는 있어야 되는데요...이러한 경우, Spring Boot JPA + Elasticsearch 조합으로 프로젝트를 진행하게 되는데. 테이블이 여러 개 있는 경우입니다.관리자 페이지이도 있어야 되고요.학생과 교수님의 경우에는 학생검색, 교수님 검색, 과목 검색, 학과 검색을 해야 되고, 관리자는 모두 다 검색할 수 있어야 됩니다. (수강신청내역검색 추가) 이런 경우에는 settings.json 파일을 어떻게 설정해야 되는지요?자세한 답변 부탁드립니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
aws eks --region ap-northeast-2 update-kubeconfig --name kube-practice 권한 거부
C:\Users>aws eks --region ap-northeast-2 update-kubeconfig --name kube-practiceAn error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:iam::149536462938:user/my-computer is not authorized to perform: eks:DescribeCluster on resource: arn:aws:eks:ap-northeast-2:149536462938:cluster/kube-practice클러스터 전환이 안되는데 왜 이럴까요?우선 루트 사용자로 전환하니까 되긴 했습니다AllowEKSDescribeCluster고객 인라인인라인AmazonEC2ContainerRegistryFullAccessAWS 관리형직접AmazonEKSClusterPolicyAWS 관리형기존 iam유저 권한은 이렇게 지정되어 있습니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
CI/CD 자동화 배포 문제
강사님이 알려주신 대로 개인프로젝트 CI/CD 구축 방법-2 이거에서 하는데 자꾸 위와 같은 에러가 뜨는데 뭐가 문제인지 모르겠습니다.
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
58 강에서 동의어처리가 안 됩니다
58 강에서 자동완성 기능은 잘 적용되나 동의어처리가 안 됩니다강의에 나온대로 elasticsearch와spring boot 의json파일에서 동의어처리와 자동 완성 처리를설정하고엘지 건조기엘지 휴대폰LG 에어컨엘지 청소기LG 공기 청정기엘지 식기세척기라고 POST 한 후에GET /products7/_search { "query":{ "multi_match":{ "query":"엘지", "type":"bool_prefix", "fields":[ "name.auto_complete", "name.auto_complete._2gram", "name.auto_complete._3gram" ] } }, "size":5 }이렇게 검색하면LG 에어컨LG 공기 청정기는 조회가 안 됩니다GET /products7/_search { "query":{ "multi_match":{ "query":"LG", "type":"bool_prefix", "fields":[ "name.auto_complete", "name.auto_complete._2gram", "name.auto_complete._3gram" ] } }, "size":5 }이렇게 검색하면LG 에어컨LG 공기 청정기만 조회 됩니다그리고, Spring Boot 를 사용하는 강의는 17, 18 강에서 하시고 kibana 에서 실습하다가 60강에서 다시 Spring Boot 에 적용하는 강의가 진행되는데, 18 강에서 없던 ProductService 가 이미 작성되어서 나옵니다.ProductControllerProductRepository도 그러네요...혹시 중간에 있었는데 제가 놓친 건가요?....
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
AWS EC2 인스턴스 생성하기 - 키페어 필요
12. AWS EC2 인스턴스 생성하기 인스턴스 시작할려고 하는데 키페어를 생성하라고 합니다. 새로 생성하면 되는걸까요..?
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
opensearch nori 플러그인 지원
안녕하세요강의 너무 잘 듣고 있습니다!실무 위주로 쏙쏙 뽑아주셔서 공부하기 편해요~ 글을 남기는 이유는 다름이 아니라현재 opensearch에서 nori 플러그인 지원하고 있어서 입니다~~강의에서는 지원 안 하고 있다고 나와서요~
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
키페어 생성 시기
EC2를 생성 완료 한 후에 해당 EC2에 키페어를 만들어서 적용하는게 가능한가요? 아니면 EC2 생성할때 키페어를 추가하는것만 가능한건가요?
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
ECS는 사용 안 하나요?
ECS는 사용 안 하나요? ECS도 많이 쓰이는 거 같던데..
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
백엔드 프론트엔드 배포 흐름이 이해가 안갑니다.
글을 작성하고 조금 더 공부해봤는데 저는 프론트(3000번 포트)와 백엔드(8080번 포트)간의 통신으로 웹이 배포되고 운영되는걸로 알았는데, 3000번 포트와 8080번 포트간의 통신을 하는 게 아니라고 하는 것 같아서 댓글에 다시 정리해보았습니다. 글의 내용처럼 서버가 배포되는것이 아닌, 댓글에 남긴 흐름으로 배포가 되는 게 맞는건지 궁금합니다.🥹안녕하세요.최근 재성 강사님의 AWS, Docker, CI/CD 강의를 수강하며, Spring Boot 프로젝트를 Docker 이미지로 패키징하고 무중단 배포하는 과정까지 직접 구축해보았습니다.Spring 서버를 EC2에 자동으로 배포하고 무중단으로 교체하는 구조는 충분히 이해하고 구현도 해보았지만, 이번 프로젝트에서 프론트엔드까지 함께 연동하려다 보니 새로운 고민이 생겼습니다.프론트 지식이 전무한 상태에서, 프론트엔드 팀원이 React로 만든 프론트 화면까지 백엔드와 함께 배포해달라는 요청을 주셨는데, 여기서부터 개념적으로 막히기 시작했습니다. React에서 api/login 같은 요청을 보내면 Spring 서버가 응답하고, 이 데이터를 바탕으로 React가 화면을 렌더링한다는 구조를 이해하고, AWS강의를 들으며 S3, CloudFront로 프론트를 배포하는 과정도 실습하였는데 Spring과 React를 동시에 배포하려니까 흐름이 잘 이해가 가지않습니다..ㅠㅠ https://velog.io/@jwo0o0/AWS-S3%EB%A1%9C-React-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0https://velog.io/@jwo0o0/AWS-S3-%EB%B2%84%ED%82%B7-Github-Action%EC%9C%BC%EB%A1%9C-CICD강사님이 AWS 강의에 react 배포하는 방법으로 올려주신 블로그 포스팅을 참고해서 이해하려고 하는데 제가 이해한 흐름이 맞는 지 확인해주실 수 있나요? 현재 프로젝트에서 백엔드와 프론트를 분리해서 각각 repository에 올리고있는데요!Spring에서 workflow에 Github에 올라와있는 React 프로젝트를 S3에 업로드하고 CloudFront로 배포하도록 자동화이후 workflow에 백엔드 Spring 프로젝트를 Docker 이미지로 패키징하여 ECR에 이미지를 Push.workflow에 SSH로 EC2에 접속하는 코드를 작성. EC2에서 ECR에 올린 이미지를 Pull받은 뒤 해당 이미지로 docker run 하여 spring server를 띄움.이렇게 흐름을 이해하고 github Actions workflow를 작성해도 괜찮을까요?react는 3000포트를 사용하고, Spring은 8080포트를 사용하는걸로 아는데, 포트번호가 달라도 알아서 잘 통신이 되나요..??또 Spring workflow에서 프론트 Git 레포지토리까지 왔다갔다 하면서 S3 업로드 자동화를 해주는게 맞나요...?? 제가 프론트 지식이 아예없어서 S3에 프론트 프로젝트를 업로드하면 어떻게 백엔드와 어떻게 통신을 하는건지 잘 이해가 가지않습니다. 홈화면의 페이지가 있다면, 로그인이라는 버튼을 눌렀을 때 백엔드에 api/login이라는 요청을 보낸다고 했을 때 아무런 작업을 안해줘도 알아서 서로 통신을 하는지... 인프라 개념이 아직 미숙하다 보니 글도 장황한 것 같습니다 죄송합니다.. 😢정리해보면서도 스스로 구조를 잡고자 하는 중인데, 혹시 제가 놓치고 있는 개념이 있다면 알려주시면 정말 감사하겠습니다!
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
스프링부트에서 엘라스틱 인덱스 설정(동의어 필터 적용 에러)
개발환경 : WSL 기반의 리눅스 + 엘라스틱 서치spring boot : 3.5톰캣 서버를 구동하면 아래와 같은 에러가 발생합니다.request [HEAD http://localhost:9200/products] returned [HTTP/1.1 404 Not Found]2025-06-19T09:34:18.201+09:00 DEBUG 15492 --- [ restartedMain] org.elasticsearch.client.RestClient : request [PUT http://localhost:9200/products] returned [HTTP/1.1 400 Bad Request]인덱스를 생성하는 구문에서 에러가 발생하는데 이유를 살펴보면 아래와 같이 나옵니다.[illegal_argument_exception] failed to build synonyms from ['product_synonyms' analyzer settings product-settings.json 파일에 설정한 product_synonyms 부분에서 에러가 발생하고 있습니다.(혹시 잘못 작성했을까 해서 강사님의 github 파일을 복사했습니다.)---------------------------------------------------------------------------------------------[해결해보기]products_name_analyzer에서 product_synonyms 를 제거한 후 서버를 구동하면 서버는 문제없이 구동됩니다."products_name_analyzer": { "char_filter": [], "tokenizer": "nori_tokenizer", "filter": ["nori_part_of_speech", "nori_readingform", "lowercase"] },엘라스틱서치에 가서 확인해 보면 인덱스는 생성 되었으나 한글이 깨지는 상황입니다."analysis": { "filter": { "product_synonyms": { "type": "synonym", "synonyms": [ "samsung, �궪�꽦", "apple, �븷�뵆", "�끂�듃遺�, �옪�깙, 而댄벂�꽣, computer, laptop, notebook", "�쟾�솕湲�, �쑕���룿, �빖�뱶�룿, �뒪留덊듃�룿, �쑕���쟾�솕, phone, smartphone, mobile phone, cell phone", "�븘�씠�룿, iphone", "留λ턿, 留�, macbook, mac" ] } },[질문1] product_synonyms 필터가 적용된 상태에서 서버를 구동하는 부분 에러[질문2] 한글 깨짐 에러
-
해결됨쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Image Updater에서 새 Image가 감지되지 않아요
안녕하세요.질문은 아니고, 혹시나 저와 같은 현상을 겪는 분들이 계실 것 같아 글 남겨둡니다. 게시글과 계속 똑같이 진행해봐도 ImageUpdater에서 새로운 Image가 감지되지 않아 아무런 반응이 없는 현상을 겪었습니다. ChatGPT나 여러 레퍼런스들을 찾아봤을 때, Details > Annotations 에 정의한 내용과 Helm에서 정의한 내용이 일치하지 않으면 ImageUpdater에서 해당 작업을 건너뛴다는 내용이었습니다. 그래서, 결과적으로는 Release Repo의 2232/deploy/helm/api-tester경로에 있는 values-*.yaml 파일 내의 내용 중, 아래의 부분을 수정하는 것으로 정상적으로 작동하는 것을 확인했습니다.### 기존 내용 image: repository: 1pro/api-tester pullPolicy: Always tag: 1.0.0 ### 수정 후, 내용 image: repository: {username}/api-tester pullPolicy: Always tag: 1.0.0(물론, {username} 은 그대로 쓰시면 안 되고 자신의 Docker Username이 들어가야 합니다.) 제가 이전 강의에서 놓친 부분일 수도 있지만, 비슷한 현상을 겪는 분들이 꽤 계신 것 같아 조금이나마 도움이 되고자 글 남깁니다..!
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
30000 Port로 접속이 안됩니다 ㅠㅠ
포트포워딩 실습할때는 정상적으로 접속이 됐는데 service를 통한 접속은 안되네요 ㅠㅠ pod 로그를 찍어보니 요청 자체가 안간거 같아요 ㅠminikube service --url spring-service위의 명령어로 만들어지는 url로는 정상적으로 접근이 됩니다.
-
해결됨강의 하나로 끝내는 백엔드 모든 지식!
강의 자료 어디서 받을 수 있나요?
강의 자료 어디서 받을 수 있나요?