가용영역 a와 b를 둔 이유는 고가용성을 위해서 만든 건데 만약 bastion host를 둔 가용영역 a가 장애가 발생하면 bastion host 또한 장애가 발생하기 때문에 실제 배포 단계에서는 bastion host를 가용영역 b에도 배치해야 하지 않나요? 그래야 진정한 고가용성 아닌가요??
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
안녕하세요 강사님 질문을 자주올리는것같아 죄송하고 답변달아주셔서 감사합니다. pdf에 나온것처럼 프로듀서가 보내는 메시지량은 120 하나의 쓰레드가 처리하는 메세지량 0.3 을기준으로 토픽의 파티션을 400개로 생성했을때 어플리케이션 서비스의 max 스레드가 기본값 200이라 가정하에 파티션 400개를 처리하려면 스레드가 200개가 더 필요하니 대부분 실무에서는 200 스레드 기준으로 2개의 컨슈머 서비스를 구동시키나요? 추가로 부하테스트 강의에도 지금 강의에 설명되는 파트가 ( 카프카 파티션구하기 관련? ) 따로 있는지도 궁금합니다
안녕하세요 강사님 지금은 샘플 프로젝트라 하나의 컨슈머 서버에서 파티션3개를 처리하고있는데 만약 email.send topic기준으로 파티션을 5개 생성했을때 컨슈머 서버도 5개를 띄우는게 일반적인가요? 실무기준으로 궁금합니다 추가로 하나의 컨슈머에서 지금은 email.send 토픽만 구독하고있는데 만약 토픽이 slack.send , telegram.send 등 여러가지가 있을경우 컨슈머 어플리케이션에서 카프카리스너를 다중으로 등록하는게 일반적인가요 아니면 각 토픽마다 서비스를 띄우는게 일반적인가요? 만약 각 토픽마다 서비스를 띄운다가정했을때 email.send topic 파티션 5개 => 서비스 5개 구동 필요 slack.send topic 파티션 3개 => 서비스 3개 구동 필요 총 8개가 띄워지는게 일반적인건지 .. 실무기준으로 궁금합니다
안녕하세요. 로컬 k8s 구축에 대한 궁금증이 생겨서 질문남깁니다. 개발환경을 구축해야하는 상황이 생겨 강사님의 개발환경 구축 편을 보았는데, 도커를 사용해서 이미지를 띄우는 작업 까지만 하셨더라구요. 저는 로컬 k8s 환경을 구축한 뒤 소스코드 변경시 로컬 k8s 환경에서 확인하는 작업까지라고 생각했었습니다. 여기서 궁금한게 로컬에서 개발시 구축환경은 어디까지인가? 라는 점입니다. 감사합니다.
안녕하세요 강사님 파티션의경우 줄일수 없다고 설명해주셨는데 만약 예로들어 실무에서 하나의 토픽 기준으로 3개의 파티션으로 작업도중 데이터 처리량이 많아져서 랙이 쌓이는걸 확인했을때 파티션을 늘리고 컨슈머도 늘린다고 가정했을때 따로 문제는없는걸까요? ( 줄이는경우에는 새로운 토픽을 생성하여 마이그레이션 한다고 설명해주셨는데 늘리는건 실제 사용중 파티션을 늘렸을때 아무런 문제가 없는지 궁금합니다 )
안녕하세요, 강의 잘보고있습니다. 프로듀서나 컨슈머서버 야믈파일에서 3개의 ip를 적고있는데 만약 컨슈머 서버를 2대이상 돌렸을때 기준으로 각 서비스마다 ip를 똑같이 3개 적어야하는건가요? 아니면 1번 서버에서는 리더 노드ip 만 2번 서버에서는 팔로워 파티션 노드 ip 만 이런식으로 나눠서 적용하나요? 또 저런식으로 서버가 나눠져있는경우 순차적으로 메세지 처리는 이전에 강의에서 언급한 하나의 파티션은 단 하나의 컨슈머에만 할당되고 컨슈머는 메세지를 순서대로 처리한다했는데 순서에는 상관이 없는걸까요? 추가로 그다음 섹션보다가 궁금한게 현업에서도 라운드로빈방식을 대부분 사용하나요? 실무기준에서 궁금합니다!
현재 강의에서는 간단한 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에 보내는 것인지 궁금합니다.
안녕하세요 선생님. 제가 1월부터 5월까지 Spring,Java 벡엔드 과정 교육을 온라인으로 들었습니다. 그 과정에서 AWS 기초를 배우는 과정이 있었는데 5월달에 교육이 끝나면서 탈퇴를 하지 3개월 밖에 안됬는데.. 혹시 이걸 다시 가입해야 되는 걸까요?? 한달 무료 사용해버려서요..
안녕하세요. 이제 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천명 정도로 설정해도 에러가 발생하지 않아서 질문드립니다 ! 감사합니다 !