묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
질문있습니다!!
안녕하세요, 강사님의 커리큘럼이 여러모로 정말 많은 도움이 되고있습니다!! 항상 잘보고 있습니다.질문이 있는데요, compose 파일을 통해서 이미지화하여 Elasticsearch를 활성화 시키는데, Docker의 Elasticsearch 이미지를 DockerHub에서 다운받는게 아니라 직접 yml파일을 작성해서 실행시키는 의도는 무엇인가요??
-
미해결개발자라면 알아야 할 redis 기본
key값에 대한 작성 컨벤션
좋은 강의 만들어주셔서 감사합니다. 질문드리고 싶은 내용은 key 값은 아래 처럼 리소스 관점에서 계층 방식, 스네이크 케이스로 작성하는게 일반적인 컨벤션인가요? user:email:1 user:email:{id} user:{id}:refresh_token 아래 강의에서 보여주신 user:email:{id} 은 리프레쉬 토큰의 예시랑 좀 다른 패턴인데, 무슨 차이가 있을까요?
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
alb에 있는 도메인을 프라이빗 서브넷에 있는 백엔드 서버에 연결하는 것이 맞는지 고민 중입니다.
위 그림은 제가 구현한 아키텍처입니다. 제 프론트 서버에서 도메인/api 경로로 백엔드로 요청을 보내기 때문에 ALB에 기본 도메인은 프론트서버로 라우팅, 도메인/api 주소는 백엔드 서버로 라우팅되게 하였습니다. 그런데 프라이빗 서브넷은 외부로부터 접근을 못하는 것에 의미가 있는데 도메인이 연결된 로드밸런서에 프라이빗 서브넷을 연결하면 route53에서 로드밸런서 ip주소에 요청을 보내고 로드밸런서는 /api가 붙어 있는 것을 확인하고 백엔드 서버 대상 그룹으로 요청을 보냅니다. 즉 백엔드 서버 자체의 공인ip가 없어도 사용자가 웹 브라우저에 https://grow-farm.com/api/auth/health 라고 적으면 백엔드 서버에 직접 요청을 할 수 있고 응답도 그대로 돌아옵니다 물론 이것은 헬스체크라서 열어둔거고 다른 API는 앱 내부 차원에서 프론트를 통한 요청으로만 접근 할 수 있게 조치는 취해놨지만 인프라 차원에서 서버가 개방되어있으니 이 설계가 베스트 프랙티스가 아닌 것 같다는 생각이 들었습니다. 제가 기존에 했던 방법으로 도메인을 가지고 있는 로드밸런서에서 프라이빗서브넷에 있는 ec2에 /api를 붙여서 경로를 붙이는 것이 자주 쓰이는 방법이고 제가 잘못 생각한 것이라 큰 문제가 없는지 궁금합니다! 만약 1번이 문제가 있는 방법이라면 대안으로 프론트 서버는 10.0.2.2 같은 백엔드 내부 ip주소로 요청을 보내게 코드를 바꾸고 로드밸런서에서 백엔드 서버를 해제하면 사용자들은 브라우저창에 10.0.2.2/api/auth/health 를 검색하더라도 백엔드 서버에 접근할 수 없는 숨겨진 공간이 될 수 있을 것 같은데 혹시 괜찮은 방법인지 궁금합니다.감사합니다!
-
해결됨비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
로드밸런서의 DNS로 들어가면 통신이 되는데 ip를 검색하면 안되는 경우는 어떤경우가 있을까요?
완강했습니다!! 처음 올린 질문이 해결이 되어서 질문을 수정했습니다!위 사진은 제가 만드려고 하는 아키텍쳐입니다사진에는 빠졌지만 alb도 있고 프론트서버에 연결되어있습니다현재까지는 프론트서버만 만든상태입니다.퍼블릭 서브넷에서 인터넷 게이트웨이 설치하고 접속이 되는건 확인했습니다.alb는 80,443 허용하였고 프론트는 22,80,443,3000허용하였습니다. (22는 나중에 배스천호스트로 옮길 생각입니다)대상그룹은 프론트 ec2로 설정하였고 http 3000으로 설정해서 healty 연결된걸 확인하였습니다.1. 로드밸런서의 dns로 들어가면 접속이 됩니다2. ec2내에서 로컬호스트로 들어가면 접속이 됩니다3. 도메인이나 ip를 검색하면 접속이 안됩니다4. 로컬에서 nslookup하면 제 서버 ip를 찾지 못합니다.어떤부분에서 빠뜨린게 있을까요? 이것저것 찾아보고 고민해도 해결이안되어서 4시간동안 찾다가 질문 드려봅니다 ㅠㅠ조금 걸리는 점은 제가 도메인사고 인증서받고나서 모든 ec2와 보안그룹들을 다 지워서 비용이 안 나가게한 적이 있습니다. 그 이후에 다시 vpc, ec2 등등 만들고 기존 도메인과 인증서를 연결했는데 인증서를 새로 발급받지 않고 기존 것을 쓴 것이 혹시 문제되지 않았을까? 라는 것이 약간 걸립니다그런데 도메인뿐만아니라 ec2의 ip로도 접근이 안되기 때문에 관련이 없다고 생각하여 그 부분은 건들지는 않았습니다 ㅠ
-
해결됨비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
프론트서버와 net인스턴스 서버는 nano 인스턴스로도 충분할까요??
제가 프론트서버 백서버 NAT인스턴스 역할을 하는 서버 이렇게 EC2를 3개 쓰려구합니다!!백서버는 프리티어인 t2.micro로 하고프론트서버는 t4g.nano로 하려고합니다1. 프론트서버라 메모리가 백서버만큼 먹진않을거같고2. t4g.nano가 nano중에 제일 싼데 성능은 제일 좋고3. arm64기반이긴한데 Next.js 서버가 충분히 호환된다고 들어서입니당Net인스턴스서버는 t3a.nano 쓰려고합니다1. Net게이트웨이 대용이라 nano면 충분할거같고2. Net Ami가 x86_64기반이라 arm64기반은 어려워 t4g.nano는 쓰지못하여 다음으로 저렴한 x86_64기반인 t3a.nano를 택했습니다근데 걱정이 일단 t2.micro의 성능은 확인해서 백서버가 돌아가는건 확인했는데 nano인스턴스들이 프론트서버와 net인스턴스의 제 역할을 해줄지 성능이 부족하진 않을지 걱정이네요 ㅠㅠ 혹시 이정도면 충분한 성능이 될까용??
-
해결됨비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
이 경우에는 인프라 설계를 어떤식으로 해야 비용을 가장 절감할 수 있을까요?
안녕하세요 강의를 보면서 실제 운영할 서비스를 AWS에 올리고 있습니다지금 AWS 기본편을 끝내고 중급편을 수강중입니다. 프리티어 사용중이고 서버는 스프링부트 프론트는 Next.js로 만들었습니다.저는 로컬에서 도커 이미지를 프론트, 백 각각 만들어서 Elastic Continer Registry로 전송하고 EC2 하나의 인스턴스에서 두개의 이미지를 다 받아와서 사용중입니다.DB는 RDS쓰고 있습니다. 기본편을 보고 따라 만들었지만 실제 운영할 목적이라 조금 변화를 주면서 따라했습니다.RDS의 보안그룹의 인바운드 규칙은 EC2의 인바운드 규칙을 포함시켰고 추가규칙으로 제 IP로만 접근가능하게 했습니다 .로드밸런서는 대상그룹을 프론트, 백 2개 만들어서 기본은 프론트로 보내고 /api/루트는 백으로 보내게 했습니다. 기타 보안그룹 설정도 조금씩 바꾸었어요사진은 서비스의 인프라 흐름 입니다 그런데 RDS와 EC2 공인ip 할당받은게 2개니 하루에 0.24달러 나가는 것은 알고있었는데확인해보니 VPC에서 하루에 0.72달러씩 나가고 있더라고요 아직 중급편 초반부라 서브넷 배우고 있어서 중급에서 추가로 설정한건 없습니다. 0.24달러가 나가야하는데 0.72달러가 나갔는데 제가 변화를 준 것 중에 추가로 돈이 나갈만한 것이 있었는지 궁금합니다. 아직 서비스를 당장 운영할 것은 아니어서 DB나 EC2등 이미 만든 것은 잠깐 지우고 싶은데 제가 도메인을 결제해서 이미 만든 것을 지우다가 도메인 산 것도 지워질까 무서워서 못 지우고 있습니다. 혹시 어떤 부분만 안 지우면 되는지 궁금합니다. 뒤에 배울 Net 게이트웨이를 써야만 보안이 가능한지 아니면 중급편에서 배울 다른 내용들로 충분한 보안이 가능한지 궁금합니다. Net 게이트웨이 비용이 무섭더라구요 ㅠ 제 상황에서 어떻게 인프라를 구성해야 가장 비용 절감을 할 수 있는지 궁금합니다. (EC2 t2.micro를 2개 만들어서 사용 시간 비용을 좀 내더라도 탄력적ip는 인스턴스 하나에만 할당하고 인스턴스끼리 통신은 프라이빗ip로 통신하고 다른 인프라를 삭제해서 비용을 아끼는 것을 생각해본적이 있습니다) 늘 좋은 강의 해주셔셔 감사합니다! 부하테스트랑 SQL튜닝 레디스도 결제했습니다!
-
미해결개발자라면 알아야 할 redis 기본
수업 자료는 어디 있을까요?
수업 자료 전달 요청 드립니다.
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
퍼블릭 ip 자동 할당 질문
default vpc로 인스턴스를 생성했을 때는 퍼블릭 자동 할당 활성화를 해주지 않았던 것 같은데 default vpc의 경우에만 활성화를 해주지 않아도 자동 할당 되는건가요?
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
az와 수평확장의 차이
안녕하세요k6 부하테스트 강의를 들었는데 그때 수평 확장하는 방법에 대해서 배웠습니다.인스턴스를 늘리는 거에 있어서 수평확장과 az별로 스프링부트 추가하는 거는 똑같지만 용도는 다르다는 것은 알겠어요인스턴스 늘릴때 수평확장은 단순히 복제 버튼 클릭하여 쉽게 스프링부트를 늘리는데az는 늘릴 때마다 매번 일일이 수동으로 다 설치해야하는건가요?
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
bation host 구성내용
안녕하세요 bation host 운영시 실무에서 그냥 단순히 최소 사양의 컴퓨터에 아무것도 설치 안하고 운영만 하나요?
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
Bation host의 보안성 질문
안녕하세요 강의 잘 보고 있습니다.제가 예전에 회사에 실무 뛸 때는 기본 VPC 사용해서 해당 subnet 서브넷에 RDS와 스프링부트 사용했습니다. 확인해보니까 기본 subnet은 public subnet이네요보안 그룹을 이용해서 RDS는 스프링부트와 회사 IP에만 허용하고 스프링 부트는 80포트 한해서 모든 IP 허용해서 사용해서 제한적으로 보안을 걸었습니다.private subnet에 RDS와 스프링부트를 배치하고 bation host를 통해서 접속하는게 보안적으로 뛰어나다는 것은 알겠는데public subnet에 RDS와 스프링부트를 배치 해두고 보안 그룹으로 IP 접근 제한하고 무슨 차이가 있나요?1차원적으로만 보면 bation host가 EC2 비용이 더 나가는 거 말고는 모르겠습니다.정확히 어떤면에서 더 보안적으로 뛰어난지 궁금합니다
-
미해결비전공자도 이해할 수 있는 AWS 중급/실전 (보안, 가용성편)
강의 질문
안녕하세요 2번째 예제에서 25.212.157.0/25의 네트워크 주소가 어쨰서 10.88.135.0 으로 바뀌는지 궁금합니다.아니면 노션 기록 오타인거 같습니다25.212.157.0 ~ 25.212.157.127이 아닌가요?
-
해결됨쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
OpenTelemetry 실습
안녕하세요 강사님OpenTelemetry 구조와 Log 포맷 실습 과정에서 제공해주신 Core, Cust Application 배포했는데아래 사진과 같이 에러가 발생하는데cust,core pod 둘다 아래 사진처럼 로그가 남습니다 배포자료 확인 부탁드립니다 ㅠ.
-
해결됨쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
grafana loki 연동
안녕하세요 강사님opentelemetry 연동까지 했는데 위와 사진과 같이grafana dashboard에는 unknown_service 이라고 logs에서 하나만 보이는데 확인해볼 설정이 있을까요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
리소스(CPU, Memory) 이해하기 유익한 시간이었습니다.
현업에서 애플리케이션의 파드의 적정한 CPU와 Memory에 대해 어떻게 설정해야 하는지 막막했는데 이번 강의를 통해서 큰 그림을 알 수 있어서 좋았습니다.사용 현황을 모니터링할 때 어떻게 봐야하는지 몰랐는데 큰 도움이 되었습니다. 감사합니다.혹시 Java 애플리케이션 기준으로 메모리 튜닝에 대한 부분에 대해 추가적으로 공부하려면 어떤 자료를 참고하면 좋을까요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
Mac상 환경설정관련
안녕하세요맥에서 해당강좌 따라 하면서 공부하려 하는데내용중 맥관련하여 자료실에 가이드가 있다고 하는데 그자료실이 어디에서 확인 가능한가요?감사합니다
-
미해결개발자라면 알아야 할 redis 기본
상품의 재고 변경을 비동기로 처리하는것에 대해 질문합니다.
안녕하세요, 강사님.좋은 강의를 예제부터 실무적인 부분까지 고려해서 강의 만들어주셔서 감사합니다. streams 강의 16:55초경을 듣다가 궁금한 점이 생겨 질문드립니다. 주문서비스에서 상품서비스에게 "상품 재고를 변경해주세요"라고, 메시지를 발행하는 것을 비동기로 처리한다고 말씀해주셨습니다. 상품서비스에서 재고 변경 이벤트를 구독해서, 상품 재고 변경이 처리되기 전에, 다른 요청이 똑같은 상품을 조회하는 경우, 상품의 재고가 없지만 상품의 재고가 마치 있는 것처럼 조회가 될 수 있는 동시성 문제가 발생할 수 있다고 생각합니다. 실무 내용을 짧은 강의내에 녹여내는 것이 어려워 일부 내용을 생략하셨다고 생각이 들지만서도, 어떻게 동시성 문제를 예방할 수 있는지 궁금하게 되어 질문 드립니다.
-
해결됨개발자라면 알아야 할 redis 기본
혹시 kafka나 rabbitMQ 강좌 예정 없으신가요?
혹시 kafka나 rabbitMQ 강좌 예정 없으신가요?
-
미해결중급, 활용편 #1 DevOps : Infrastructure as Code with AWS and 테라폼
모듈과 .tf 파일 분할에 대해서 의견이 궁금합니다.
안녕하세요. 쭉 강의를 팔로우 하고 있는데 다른 케이스들이나 해외 레딧의 사례들도 같이 참고하다가 한가지 의문이 생겨서 여쭤보고 싶습니다.모듈화를 통한 디렉토리를 나누거나, 폴더를 따로 두어서 관리하는 경우가 많더라구요흔히 테라폼 디렉토리 구조 best practice 의 검색 결과 나오는 사진입니다.제가 체감하기에는 main.tf 에서 모든걸 한번에 넣어 두는 경우는 읽기 너무 복잡해서모듈과 리소스명.tf 파일을 분리하는 등등의 과정으로 두가지 나눠서 디렉토리를 관리합니다.실무자 입장에서 또한 많은 경험이 있는 엔지니어 입장에서 어떤식으로 디렉토리를 분류하고, 파일을 나누고, 모듈화를 하는지, 송주영님 만의 기준이 있는지 궁금합니다.또한 이건 약간 곁다리 질문인데요, 최근에 terragrunt 라는 테라폼을 한번더 고도화 해서 사용하는 사례도 종종 보이고 있습니다. 혹시 도입을 고민하신적 있는지, 사용하셨다면 어떤 느낌이었는지 궁금합니다! 강의 잘 보고 있습니다! 단순히 docs를 풀어서 읽기주시기만 하는 강의가 아니라, 실무자의 고민과 해결, 관점이 강의 사이사이 들어 있어서 정말 큰 도움이 되고 있습니다!!!
-
미해결개발자라면 알아야 할 redis 기본
MacOS에서 brew를 사용한 설치를 권장하지 않는 이유가 무엇인가요?
안녕하세요!brew를 통해 직접적으로 MacOS에 설치하는 것이 아닌 Docker Desktop을 설치하여 Docker Container 안에서 redis-server를 설치하라고 말씀해주셨는데 후반부에 말씀해주시는 redis-server 삭제 시 깔끔하게 제거되지 않을 가능성이 있기 때문에 brew를 통한 설치가 권장되지 않는다고 이해했는데 맞을까요?