안녕하세요. 맥 실리콘 지원 소식을 듣고 강의를 듣고 있습니다. 2.4의 Vagrant + VMware Fusion 으로 맥에서 환경을 구성해서 듣고 있는데요, 환경 설정할 때 다른 분들이 올려주신 질문(Tabby 문제 등)이 저에게도 발생해서 이를 참고하면서 강의를 진행하고 있습니다. 3.4.외부로 노출하는 더 좋은 방법인 로드밸런서 강의 초반에 `kubectl apply -f ~/_Lecture_k8s_starter.kit/ch2/2.4/metallb.yaml' 을 실행하라는 말씀을 해주시는데요, 현재 1.30 버전 폴더에는 해당 metallb.yaml 파일이 존재하지 않습니다. 그래서 github branch의 1.25 버전에 있는 metallb.yaml 파일을 복사하여 적용한 결과 정상적으로 동작하는 것으로 확인했습니다. 다른 분들을 위하여 metallb.yaml 파일 추가해주시면 좋을 것 같습니다. 또한 추가적으로 2.4.베이그런트(Vagrant)+VMware Fusion으로 쿠버네티스 환경 구축하기 (비상업적, arm64 사용자)-v1.30 강의 후반에 환경이 잘 구축되었는지 확인하는 부분이 있는데 시작쿠버 강의의 경우 MetalLB가 설치되지 않아 LoadBalancer IP가 계속 Pending으로 나와 환경구축이 제대로 되지 않은 것으로 혼동할 수 있을 것 같습니다.(제가 헤매서요.. ㅎ) 이 부분에 대한 설명도 추가해주시면 좋을 것 같습니다. 좋은 강의 제공해주셔서 감사합니다!!
강의에서 consumer 라는 모듈을 새로 생성해서 따로 run 을 시키더라고요 저는 하나의 모듈에서 작업을 하고있는데요. 하나의 프로젝트 안에 domain consumer , config 등등을 모두 설정했습니다. 이후에 ./gradlew bootRun 으로 실행하고나서 , 테스트 케이스를 돌렸는데요 . 해당 영상 마지막에는 여러명응모 테스트 메서드가 통과라고 나오지만 저는 Actual : 0 으로 나옵니다.
redis 생성 시, 모든 포트의 인바운드 규칙을 허용해놓았습니다. ecs service 구성 시, redis가 속해있는 sg에서 오는 요청 허용하는 인바운드 규칙 추가했습니다. task-definition 정의 시, redis port를 열어놓았습니다. 서버에서 redis로 요청 시, 504 Gateway Time-out 가 발생하고 있습니다. fargate 환경에서 elastic cache 접근 시 고려해야할 부분이 있을까요?!
안녕하세요! 데브위키님! 우선 도커 강의를 잘 듣고 있고 너무 도움이 되는 강의라 강의를 만들어 주셔서 감사합니다! 세션 8의 VScode 컨테이너 내부에서 개발환경 구성 강의를 듣다가 궁금한 점이 생겼는데 dockerfile이 .devcontainer의 dockerfile과 leafy-front 파일의 dockerfile이 두 개가 있는데 강의에서처럼 VScode에 컨테이너 구성을 했을 때, leafy-front 파일의 dockerfile은 쓰이지 않는 것인지 또 실제 배포를 했을 땐, leafy-front 파일의 dockerfile이 사용되고 .devcontainer의 dockerfile은 사용이 안 되는 것인지 궁금합니다. 마지막으로 이 두 dockerfile은 서로에게 영향을 주진 않는지도 궁금합니다!
redis 를 사용하여 문제점 해결하기 7:25 의 도표를 보고있습니다. Thread - 1 이 실행이 end - 10:02 가 되면 Thread - 2 가 start - 10 : 02 가 되고 incr coupon_count 가 된다고 나와있습니다. 동기식으로 돌아가게 되면 , 속도적인 측면에서 괜찮을까요 ?? 만약에 사용자가 동시다발적으로 쿠폰 발급을 클릭하게 되면 동기식으로 했을때 괜찮을까요 ??
.cmd 실행파일에 있는 명령어로 tabby로 설정하고 바탕화면에 있는 이걸 실행해도 아무런 반응이 없습니다. 관리자 권한으로 실행해봐도 아무런 반응이 없고 컴퓨터를 포맷하고 다시해봐도 아무런 반응이 없는데 방법이 없을까요? 구글링해봐도 원인을 모르겠습니다. 운영체제는 윈도우1 1 입니다. -- 현재 어떻게 해결됐습니다. tabby에서 이부분이 뜨면서 접속이 안되는데 config.yaml파일을 복사 해왔는데 이부분에서 막혀서 진행이 안되고있습니다.
안녕하세요 강의 잘 듣고있습니다. 설정 하실때 , api 와 consumer 두개로 나눠서 하셨는데 , 하나의 src 밑에 있는 프로젝트로 진행을 할수가 있을까요 ?? 코드를 봤는데 중복된게 많아서 api 와 consumer 로 나누지 않고 하나의 src 밑에서 작성해도 되지않을까 생각했습니다.
안녕하세요. 항상 좋은 강의 감사합니다. 현재 이 강의와 CI/CD 입문/실전 강의를 동시에 수강중입니다. 현재 강의로 배포하는 방법을 익힌 후 CI/CD 에서 배운것처럼 무중단 배포로 넘어가려고 하는데 문제가 생겨 질문드립니다... 강사님의 설명대로 할 땐 제대로 스프링부트 파일이 실행이 되었는데 개인프로젝트에 진행하려 하니 문제가 생겨서 문의드립니다. 각각의 개인 프로젝트마다 환경도 다르고 설정도 달라서 조언주시기 힘드실 수도 있을 것 같습니다. 한 이틀을 꼬박 매달려도 안되서 답답한 마음에 질문드립니다... ㅜㅜ 먼저, 현재 주어진 상황입니다 1.윈도우환경에서 실습중이고, putty를 활용하여 프로젝트를 진행중에 있습니다. 2. 프로젝트는 스프링부트+mysql (스프링시큐리티도 적용) aws의 인바운드규칙에 8080포트는 열어뒀습니다. 그리고 제가 작성한 도커파일과 compose.yml입니다. 운영환경에서 실행시킬거라 ENTRYPOINT를 추가했습니다. FROM openjdk:17-jdk COPY build/libs/*SNAPSHOT.jar /app.jar ENV SPRING_PROFILE="dev" ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILE}", "-jar", "/app.jar"] services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy environment: - SPRING_PROFILES_ACTIVE=dev my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: pwd1234 MYSQL_DATABASE: mydb volumes: - ./mysql_data:/var/lib/mysql ports: - 3306:3306 healthcheck: test: ["CMD", "mysqladmin", "ping"] interval: 5s retries: 10 이러고 docker compose up -d --build를 하면 이렇게 나옵니다. 처음엔 프로파일 설정하는 게 문제였는데 위와 같이 설정을 한 후로는 dev로 잘 인식하는 것 같은데 로그 찍히는게 이게 전부입니다. 시행착오 전엔 더 길게 찍히고 db접속되는내용도 나왔었는데 그 후론 이렇게 나오고 전부네요. 문제점은 일단 제 ec2의 퍼블릭ip:8080 으로 접속 시 접속이 안되는 점이 제일 큽니다. 제 빌드 파일이 그렇게 크지 않은 것 같습니다. 80mb정도 나오고, EC2는 용량을 30Gb로 설정을 해줬습니다. 그런데 너무너무 느려집니다. docker compose up -d --build 후에 너무너무 느려지고 명령어 하나 치기까지 너무 느려집니다. 모니터링 결과 cpu는 20~30 퍼센트 정도 사용으로 나옵니다. 그래서 인스턴스 재부팅도 여러번해봤지만 compose up만 하면 느려지네요,, 그래서 이 EC2 인스턴스로 연습을 많이 한 것 같아서 필요없는것들 지웠지만 그래도 너무 느려집니다. 그래서 새로 aws 계정을 파서 EC2 인스턴스를 만들어서 실행해봐도 느려지는 문제는 똑같습니다. 스프링시큐리티를 적용했기 때문에 처음 실행할 때 토큰이 나오면 로그인하려 하는데 아예 접속이 안되니 어떡해야할지 모르겠네요 ㅠㅠ.... 구글링과 gpt로 다 고쳐보고는 있는데 근본적인 문제가 어디일지 감이 안와서 혹시 예상되는 문제점이 있으실까 해서 여쭤봅니다 ㅠㅠ 감사합니다. p.s. 새로 만든 EC2 인스턴스에선 cpu사용률이 99퍼 찍었네요 ㅠㅠ 일단 이것부터 해결하고 오겠습니다...
test를 돌릴 때, kafka consumer가 반응을 하지 않으면 이전 테스트에서 사용한 값 때문일 수도 있습니다! 저 같은 경우는 테스트가 순식간에 끝나버려서 의심을 했는데요. redis-cli에 접속하신 뒤 `flushall` 명령어를 친 뒤에 테스트를 진행해보시면 해결 됩니다!
저 docker volume을 사용해서 app 폴더의 내용을 수정하면 , 바로 docker container안에 반영되게 하느것을 따라하고 있는데 , 저장후 반영이 안되서 , docker exec -it 를 해서 container안에 들어가 보니 , 사용자가 수정 권한이 없어서 777로 바꾸고 다시 해봐도 잘 안되네요 , cat index.ts파일해도 바뀐 파일이 container안에 반영자체가 안되는거 같습니다 도와주세
에러 메시지 The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment group are experiencing problems. CodeDeploy 공식문서 참조 less /var/log/aws/codedeploy-agent/codedeploy-agent.log / ERROR 에러 메시지 InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Aws::S3::Errors::NoSuchKey - The specified key does not exist. - /opt/codedeploy-agent/vendor/gems/aws-sdk-core-3.121.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in call 혹시나 하고 CodeDeploy Agent restart 재시작 EC2인스턴스 IAM 재설정 yaml 마지막부분 \ 인식하게 수정 다 안되네요...
- name: SSH(원격접속)로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 #env: #APPLICATION_PROPERTIES: ${{ secrets.APPLICATION_PROPERTIES }} with: #SSH로 접속할 때 필요한 값들이 있음. IP주소, ubuntu, 키페어 (EC2에 접속하기 위한 과정) host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} #envs: APPLICATION_PROPERTIES #문제가 있으면 스크립트 중단. script_stop: true script: | rm -rf /home/ubuntu/instargram-server/current mkdir /home/ubuntu/instargram-server/current mv /home/ubuntu/instargram-server/tobe/project.jar /home/ubuntu/instargram-server/current/project.jar cd /home/ubuntu/instargram-server/current sudo fuser -k -n tcp 8080 || true nohup java -jar project.jar > ./output.log 2>&1 & rm -rf /home/ubuntu/instargram-server/tobe 스크립트에서 실행 순서에 대한 질문입니다. 기존에 있던 서버는 current 파일의 project.jar 로 실행되고 있었을텐데 current 파일을 먼저 날리고 기존의 서버를 종료시켜 주는 부분이 이해가 되지 않습니다. 아마도 제 생각에는 current 폴더 안의 project.jar로 실행되고 있던 8080포트의 프로세스가 current 폴더를 삭제해주면 에러가 생길 것 같은데 에러가 생기지 않는 이유가 궁금합니다. 프로젝트 종료 -> 프로젝트가 담겨있던 폴더 삭제 -> 새 프로젝트 폴더 생성 순으로 가야 할 것 같은데 기존 프로젝트 폴더 삭제 -> 새 프로젝트 폴더 생성 -> 프로젝트 이동 -> 기존 프로젝트 종료 -> 새 프로젝트 실행 이런 순서로 해도 에러가 안나는 이유가 궁금합니다. 두서없이 써서 죄송합니다 ㅎㅎ;