묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
bastion-server에서 private Ec2로 접근했을 때 git clone 오류
: Failed to connect to github.com port 443 after 136343 ms: Couldn't connect to servergit clone 받을 때 보안 그룹을 따로 설정해서 처리해야할까요 ???
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
bastion host와 고가용성
가용영역 a와 b를 둔 이유는 고가용성을 위해서 만든 건데 만약 bastion host를 둔 가용영역 a가 장애가 발생하면 bastion host 또한 장애가 발생하기 때문에 실제 배포 단계에서는 bastion host를 가용영역 b에도 배치해야 하지 않나요?그래야 진정한 고가용성 아닌가요??
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
이미지 pull중 no basic auth credentials 문제입니다.
msa 프로젝트 중 각 마이크로 서비스의 이미지를 pull 하는 곳에서 문제가 생깁니다.err: ERROR: for seat-service Head "https://139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/v2/seat-service/manifests/1.0": no basic auth credentials이렇게 에러가 나오게 되네요... IAM 사용자 생성했고 권한 정책에 AmazonEC2ContainerRegistryFullAccess를 추가해줬습니다. 또한 이 사용자를 EC2에 연결까지 했습니다. 추가적으로 helper 설정을 위해 ./docker 폴더를 만들고 config.json에 "credsStore":"ecr-login"도 추가해주어 강의랑 매우 똑같이 만들었습니다. 이 deploy.yml 은 github action 코드입니다. 7번에서 이 오류가 발생하게 됩니다.======선을 기준으로 아래는 docker-compose.yml파일입니다. 이 문제를 어떻게 해결해야할까요? 또한 각 마이크로 서비스에 연결된 데이터베이스가 모두 maraiDB라면 이걸 docker-compose.yml로 이미지화 시켜야하는것이 맞을까요?# 6. EC2로 Compose 파일 전송 - name: Copy docker-compose.yml to EC2 uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} source: "docker-compose.yml" target: "/home/ubuntu/movie-project/" strip_components: 0 overwrite: true # 7. EC2에서 Compose 실행 - name: SSH into EC2 and deploy uses: appleboy/ssh-action@v0.1.7 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script: | cd /home/ubuntu/movie-project sudo docker-compose down sudo docker-compose pull sudo docker-compose up -d ================================================ movie-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/movie-service:1.0 depends_on: - redis book-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/book-service:1.0 depends_on: - kafka payment-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/payment-service:1.0 depends_on: - kafka seat-service: image: 139144002104.dkr.ecr.ap-northeast-2.amazonaws.com/seat-service:1.0 depends_on: - kafka
-
미해결실전에서 바로 써먹는 Kafka 입문
적정 파티션 개수 계산하는 방법 질문드립니다
안녕하세요 강사님 질문을 자주올리는것같아 죄송하고 답변달아주셔서 감사합니다.pdf에 나온것처럼 프로듀서가 보내는 메시지량은 120하나의 쓰레드가 처리하는 메세지량 0.3 을기준으로토픽의 파티션을 400개로 생성했을때어플리케이션 서비스의 max 스레드가 기본값 200이라 가정하에 파티션 400개를 처리하려면 스레드가 200개가 더 필요하니 대부분 실무에서는 200 스레드 기준으로 2개의 컨슈머 서비스를 구동시키나요?추가로 부하테스트 강의에도 지금 강의에 설명되는 파트가 ( 카프카 파티션구하기 관련? ) 따로 있는지도 궁금합니다
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션5 33 질문드립니다
안녕하세요 강사님지금은 샘플 프로젝트라 하나의 컨슈머 서버에서파티션3개를 처리하고있는데만약 email.send topic기준으로 파티션을 5개 생성했을때 컨슈머 서버도 5개를 띄우는게 일반적인가요?실무기준으로 궁금합니다추가로 하나의 컨슈머에서 지금은 email.send 토픽만 구독하고있는데 만약 토픽이 slack.send , telegram.send 등 여러가지가 있을경우 컨슈머 어플리케이션에서 카프카리스너를 다중으로 등록하는게 일반적인가요 아니면 각 토픽마다 서비스를 띄우는게 일반적인가요?만약 각 토픽마다 서비스를 띄운다가정했을때email.send topic 파티션 5개 => 서비스 5개 구동 필요slack.send topic 파티션 3개 => 서비스 3개 구동 필요총 8개가 띄워지는게 일반적인건지 .. 실무기준으로 궁금합니다
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
로컬 개발환경 구축시 k8s 환경에 대한 테스트는 어떻게 하는지 궁금합니다.
안녕하세요. 로컬 k8s 구축에 대한 궁금증이 생겨서 질문남깁니다.개발환경을 구축해야하는 상황이 생겨 강사님의 개발환경 구축 편을 보았는데, 도커를 사용해서 이미지를 띄우는 작업 까지만 하셨더라구요.저는 로컬 k8s 환경을 구축한 뒤 소스코드 변경시 로컬 k8s 환경에서 확인하는 작업까지라고 생각했었습니다.여기서 궁금한게 로컬에서 개발시 구축환경은 어디까지인가? 라는 점입니다. 감사합니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
aws아닌 도커로는 안되나요?
aws 인스턴스 종료를 하는 경우 퍼블릭 ip가 바뀌어 proeprties내용을 변경해야하는 상황이 계속 발생하는데 도커로 진행해도 강의 수강에 지장없을까요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
Secret을 활용한 환경변수 분리 강의자료 문의
강의자료에서 시크릿을 활용해 민감한 값 따로 분리하기 부분 기존 매니페스트 파일 수정하기인 spring-config.yaml 파일이 강의에선 kind: ConfigMap 으로 설명하셨는데 강의자료에선 kind: Secret으로 되어있네요. 강의대로 하면 되는 걸까요?
-
미해결실전에서 바로 써먹는 Kafka 입문
파티션 증가 질문드립니다
안녕하세요 강사님파티션의경우 줄일수 없다고 설명해주셨는데만약 예로들어 실무에서 하나의 토픽 기준으로 3개의 파티션으로 작업도중 데이터 처리량이 많아져서 랙이 쌓이는걸 확인했을때파티션을 늘리고 컨슈머도 늘린다고 가정했을때따로 문제는없는걸까요? ( 줄이는경우에는 새로운 토픽을 생성하여 마이그레이션 한다고 설명해주셨는데 늘리는건 실제 사용중 파티션을 늘렸을때 아무런 문제가 없는지 궁금합니다 )
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션7 51 컨슈머서버 무한 리로드?
이전에 컨슈머 서버 ( email-send-consumer ) 에서는 문제가없었는데마지막 email-service에서는2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.399+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.401+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Finished assignment for group at generation 261: {consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd=Assignment(partitions=[]), consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e=Assignment(partitions=[user.signed-up.dlt-0]), consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79=Assignment(partitions=[])}...이런식으로 계속 로그가 반복됩니다프로듀서에 발행은 완료됐고 cli에서 메세지도 확인했는데컨슈머서버에서 저렇게 자꾸 정상적으로 작동을 하지않습니다 @Service public class UserSignedUpEventConsumer { private final EmailLogRepository emailLogRepository; public UserSignedUpEventConsumer(EmailLogRepository emailLogRepository) { this.emailLogRepository = emailLogRepository; } @KafkaListener( topics = "user.signed-up", groupId = "email-service", concurrency = "3" ) @RetryableTopic( attempts = "5", backoff = @Backoff(delay = 1000, multiplier = 2), // 1 초 2초 4초 8초 16초 5번 dltTopicSuffix = ".dlt" ) public void consume(String message) throws InterruptedException { UserSignedUpEvent userSignedUpEvent = UserSignedUpEvent.fromJson(message); // 실제 이메일 발송 로직 String receiverEmail = userSignedUpEvent.getEmail(); String subject = userSignedUpEvent.getName() + "님 회원가입 ㅊㅋ"; Thread.sleep(3000); System.out.println("메일 발송 완료"); // 이메일 발송 로그 저장 EmailLog emailLog = new EmailLog(userSignedUpEvent.getUserId(), receiverEmail, subject); emailLogRepository.save(emailLog); } 강사님 코드랑 이전 email-send-consumer 서비스 코드 및 야믈파일도 몇번 확인했는데 다른점이 없습니다 왜그런걸까요
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6 43 질문드립니다
안녕하세요, 강의 잘보고있습니다.프로듀서나 컨슈머서버 야믈파일에서 3개의 ip를 적고있는데만약 컨슈머 서버를 2대이상 돌렸을때 기준으로 각 서비스마다 ip를 똑같이 3개 적어야하는건가요? 아니면 1번 서버에서는 리더 노드ip 만2번 서버에서는 팔로워 파티션 노드 ip 만이런식으로 나눠서 적용하나요?또 저런식으로 서버가 나눠져있는경우 순차적으로 메세지 처리는 이전에 강의에서 언급한 하나의 파티션은 단 하나의 컨슈머에만 할당되고 컨슈머는 메세지를 순서대로 처리한다했는데 순서에는 상관이 없는걸까요? 추가로 그다음 섹션보다가 궁금한게현업에서도 라운드로빈방식을 대부분 사용하나요?실무기준에서 궁금합니다!
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
Docker Compose파일을 작성했을때 CI CD와의 연동
현재 강의에서는 간단한 instagram-server 프로젝트를 docker에 이미지화 시켜서 이를 ecr에 연결해 이미지를 업로드하고 ec2에서 이미지를 다운받아 실행하고 배포하는 것을 잘 이해했습니다.하지만 혹시 간단한 프로젝트가 아닌 MSA의 각 서비스들, Kafka, Redis가 모두 모인 프로젝트 일때에는 각 서비스, kafka, redis 모두 이미지로 만들어야하는 것으로 알고 있습니다. 이때 한번에 docker compose 파일을 만들면 될 것 같지만 이를 CI CD의 deploy.yml에 어떻게 연결짓는 것인지가 궁금합니다. 아니면 혹은 cmopose 파일을 github action에 직접 입력해서 수동으로 관리하는 것인가요? 불편하게 그저 각 서비스, redis, kafka를 deploy.yml에 작성해서 일일이 하면 편하긴 하겠지만 이런 경우는 보통 compose 파일을 만드는 것이 훨씬 장점이 있다고 생각합니다. 이 compose 파일을 어떻게 deploy.yml 혹은 EC2에 보내는 것인지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
보안그룹 생성 오류
강사님, 보안그룹 HTTP 추가 하면 위와 같이 경고문구가 뜨면서 인스턴스 생성이 불가합니다..! 어떻게 수정해야 할까요
-
미해결강의 하나로 끝내는 백엔드 모든 지식!
PDF로 내보내기 기능 활성화 부탁드립니다.
안녕하세요! 강의를 이제 시작하려고 하는데, 노션에 PDF 내보내기 기능 활성화 부탁드려도 될까요? ctrl + P 를 눌렀을때 잘리는 부분이 있어서 그렇습니다ㅠ
-
미해결비전공자도 이해할 수 있는 CI/CD 입문·실전
AWS 5월에 탈퇴해서 그러는데....
안녕하세요 선생님.제가 1월부터 5월까지 Spring,Java 벡엔드 과정 교육을 온라인으로 들었습니다.그 과정에서 AWS 기초를 배우는 과정이 있었는데 5월달에 교육이 끝나면서 탈퇴를 하지 3개월 밖에 안됬는데.. 혹시 이걸 다시 가입해야 되는 걸까요?? 한달 무료 사용해버려서요..
-
미해결실전에서 바로 써먹는 Kafka 입문
kafka [37강의]
[1] 기존 Kafka 프로세스 확인 및 종료[2] 포트 사용 여부 확인[3] 깔끔하게 다시 시작bin/kafka-server-start.sh config/server.properties 같은 에러가 뜹니다.에러 원인을 확인하기가 힘드네요 ㅠ
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6. 36,37
섹션6. 36,37 강의를 실습하고 다음날 다시 bin/kafka-server-start.sh config/server.properties명령어 써서 실행시키려니까 이렇게 뜨고 실행이 안됩니다. 원인이 뭘까요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
실무 관점에서
안녕하세요.이제 sprint1 을 통해 기본적인 개념정도만 습득한 상태입니다.spring boot 애플리케이션 -> K8s 배포를 기준으로 실제 앱 내에서 사용되는 환경변수 설정과 K8s내의 컨피그맵, 시크릿 등에 대한 설정 매칭 등을 보고 싶은데sprint 1 -> 지금 강의를 먼저 수강 해도 이해가 괜찮을까요? [👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
배포된 서버의 부하테스트 질문 있습니다.
안녕하세요 강의 항상 잘 보고 있습니다. 다름이 아니라, 현재 Cloud front - s3 - ec2 이렇게 한개의 서버를 배포를 해둔 상황입니다. 질문1실제 이 서버를 대상으로 부하테스트를 진행하고 싶은데, 강의에서 진행한 k6를 배포 중인 서버를 대상으로 해도 괜찮을까요?질문2추가적으로 궁금한게 배포 중인 서버를 대상으로 부하테스트가 가능하다고 해도 s3가 올라가있다면 부하테스트를 하는 것만으로도 비용이 발생하지 않나요?? 현업에서는 이런 상황에서 어떻게 부하 테스트를 진행하는지 궁금합니다 ! 질문3강의에서 다루지 않았던 "애플리케이션 로직에서 비효율적인 로직 개선하기"와 관련된 상황이나 키워드좀 알 수 있을까요? 추가적으로 공부해보고 싶은데, 구체적으로 현업에서 자주 발생하는 상황이 어떤건지 잘 예상이 안됩니다 ! 질문4강의에서는 부하 테스트를 위한 K6서버를 하나 배포해서 사용하라고 하셨는데, 이걸 맥북에서 그냥 진행해도 괜찮을까요? 왜냐하면, 맥북으로 테스트를 했을 때 유저 3천명 정도로 설정해도 에러가 발생하지 않아서 질문드립니다 ! 감사합니다 !
-
미해결실전에서 바로 써먹는 Kafka 입문
msa 강좌 관련해서 질문 있어서 글 남깁니다!
안녕하세요!수업 정말 잘 듣고 있는 수강생입니다!!다름이 아니라 msa 강좌 일정 관련해서 언제쯤 나오는지 궁금해서 글 남깁니다! (어디에 질문 남길지 고민하다가 그냥 여기에 남겼어요..ㅠㅠ)