Search
Duplicate
📁

26주차 수업

26주차 수업 전 공부 진행 및 과정

25주차때 중요 질문들
김영한 강사님의 스프링 부트 - 핵심원리와 활용 3,4,5 챕터
프로젝트 CI/CD

26주차 수업 진행

25주차때 중요 질문들
김영한 강사님의 스프링 부트 - 핵심원리와 활용 3,4,5 챕터
프로젝트 CI/CD

멘토님 중요 질문.

AMI를 활용해서 AWS에서 환경 구성하는 것과, kubernets 이용해서 AWS에서 환경 구성하는 것의 차이

26주차 멘토링 느낀점

이번에도 도커랑 AMI 관련해서 많이 여쪄봐주시고 EC2에서 두개를 각각 사용했을 때의 차이점도 물어봐주셨는데
아직도 구성에 대해서 크게 차이점이 정리가 안됐던거 같다.. 프로젝트 환경 구성 많이 어렵구나~
가상머신이랑 컨테이너에 대한 차이점에 대해서 얘기하다가
그러면 지금 프로젝트 환경에서 어떤걸 쓰시겠냐고 여쪄봐주셔서 AMI…라고 답했다가
AMI를 만든다고 하면 그 안에는 어떤 것들이 포함돼 있을까요?
자주 쓰는 OS랑 엔진닉스랑 DB 그리고 모니터링 할 클라우드 와치랑 이런 설정 파일들이 전체적으로 들어갈거같아요
그럼 그것들이 다 포함된 AMI를 만드는게 어떤 의미가 있을까요?
똑같은 서버를 만들 때 똑같은 환경으로 쉽게 복제할 수 있고.. 이미 다 설치되어 있으니까 새 인스턴스를 생성할 때 생성 후 시작하는 시간이 단축되고 …
그걸 통째로 새 인스턴스로 띄울 일이 있을까요?
트래픽이 증가하게 되면은 동일한 환경에 서버를 추가해주는게 좋지 않을까 싶어서…
네 그러면 거기에 DB도 포함돼 있고 애플리케이션 서버, 엔진닉스 다 포함돼있는데 그러면 그걸 통째로 AMI로 하나 더 띄우면 DB가 두개가 되겠죠. 그럼 원래 서버 A라고 할때 새로 띄어진 서버가 B이면, A 서버에 있는 정보라 B 서버에 있는 정보는 일치할까요?
아.. 갓 B 서버를 만든 시점에는 A서버의 데이터랑 일치하겠지만 그 이후에는 A서버의 데이터가 변경되면 B서버에는 같이 반영되지 않을거 같아요..
네 사실 트래픽이 늘어날 때는 그런 형태로 띄우면 안되겠죠. 그러면 지금 환경에는 어떤걸 쓰는게 좋을까요?
도커요
왜 그렇죠?
🫡
우선 지금 도커로 그린/블루 환경으로 했을 때 하나의 DB로 진행했고 그런 문제가 없었어가지고…
하나의 머신 안에서는 네트워크를 나눈다거나 애플리케이션을 관리해서 띄우기가 용이하겠죠. 그럼 꼭 도커를 써야 할까요?
등등 멘토링 받다가 이제 오토 스케일링 얘기 이후에
지금 환경에서 트래픽이 많이 들어오면 서버를 분리해야 된다 할때 어떤 식으로 구성하면 좋을지..
위에 처럼 DB 이슈가 있었으니까 고려해서 생각해보도록 유도해서 질문해주셨다..
서버를 분리할 때는 사실 상태를 가지냐 안 가지냐가 가장 큰 분기가 되겠죠!
그리고 지금까지 구성은 AMI 를 만드는걸 기반으로 했을 때 도커는 어떻게 써볼 수 있을까? 라는 질문도 해주셨고..
결국 AWS 환경에서 AMI를 이용해서 서버를 구성하는 것과 쿠버네티스를 활용해서 도커 컨테이너를 활용하는 것 사이에는 어떤 차이가 있을지 찾아오기로 함..
그 후에는 강의 얘기로 넘어가서 멘토링 받고 프로젝트로 넘어왔는데
최근에 엔진닉스 설정 파일을 추가했는데 그 부분에 대해서 여쪄봐주셨다!
다시 어떤 설정들인지 여쪄봐주셨는데.. 사실 크게 이해하지 못했었음..
이런 헤더 셋팅을 왜 해주는 걸까요? 안해주면 무슨 일이 있길래.. 서버를 관리하다 보면 생각보다 IP 기반으로 무언가를 할 때가 되게 많아요 근데 이제 서버에서 클라이언트 IP는 어떻게 인지할 수 있을까요? 가장 단순하게 생각하면 서버로 요청을 보낸 IP를 사용자의 IP라고 생각할 수 있죠. 근데 실제로 그럴까요? 아니겠죠. 지금도 스프링 서버 앞에 엔진닉스 서버가 하나 있죠. 그래서 엔진닉스의 IP가 남겠죠. 저희가 알고 싶은건 클라이언트의 IP인데.. 그런걸 고려해서 원본 IP를 보전하기 위해서 이런 헤더로 전달해 주는 거거든요.
멘토님 설명에 확 이해가 감…ㅋㅋㅋ 아니 주석으로 내가 설명을 써놨어도..
사실
클라이언트 IP를 왜 유지하도록 또 설정을 해주지…
했는데 이런 큰 이유가~~
그리고 멘토님이 혹시 저 헤더 뒤에 붙는 X에 대해서 아시냐고 하셔서..
가끔 확장의 개념에 대해서 X를 붙이는걸로 아는데 그게 아닐까 싶습니다 했는데 틀렸고 ㅋㅋㅋ…
임의로 지은 헤더들에 대해서 X를 붙여서 하는게 관례라고 말씀해주셨다.
이거에 대해서 설명해주시는데 엄청 신나보이셔서 듣는데 나도 재미있었다..
나도 나중에 이런 비하인드에 대해서 딴사람한테 설명해줘야지..ㅋㅋㅋㅋ (CS 스터디때 나도 이 얘기 해주니까 사람들 좋아했다..음하핫)

개인적인 질문

ERD 구성을 DBeaver에서 자동 구성되는걸 사용했는데 찾아보니까 다들 ERD 직접쳐서 만들어주는 사이트에서 사용하는거 같은데 그걸로 바꿔야할까요?
지금 양이 많은것도 아니라 지금 보는데 크게 불편하지않고.. 솔직히 JPA같은걸 쓰면 코드 자체가 하나의 ERD라서 코드를 위주로 보게 되고.. 멘토님은 막상 ERD를 크게 잘안보신다 하심..
갑자기 최근에 카톡 업뎃하고나서 궁금해졌는데.. 카카오톡 채팅을 쓰다가 나오면 목록에서 쓰다말았다는 아이콘이 노출되는데 그런거는 실시간으로 제가 치고있는걸 어떻게 개발된건지 궁금…
카카오 내부 구현이 어떻게 됐는지는 모르지만 보통 채팅방에 들어가면 웹소켓 연결이고
타이핑 할 때마다 서버로 이제 웹소켓으로 요청을 보내는 경우가 많다.
그래서 웹소켓을 사용했을거같고 타이핑 할때마다 실시간으로 서버에 요청을 보내서 마지막으로 보내지 않은 메시지를 들고있을거다.
막상 이게 어려운건 아니고 지금까지 한번 씩 들어봤던 개념이고 그래서 잘 고민해보면 풀리는 것들이 많다.

다음주까지

26주차 중요 질문 정리 및 깊게 이해하기
영한님 강의 6,7,8,9
사이드 프로젝트 코드 리뷰의 CI/CD 부분 해결하고 AWS에서 확인 후 그 다음에 성능테스트
매주 1 질문 할거 생각하기.