본문 바로가기
PROJECT

[프로젝트] 인프라 windows & 우분투(ubutnu) 클러스터링 구성 재기록

by 아이엠제니 2024. 2. 5.

 

 

os: ubuntu 22.04.3 LTS


 

 

사람은 망각의 동물이다.

그걸 요즘 더 뼈저리게 느낀다.

언젠가 잘 기억할 수 있을 것 같다고 생각했던 것들도 시간이 지나면 잊히기 마련이다.

그래서인지 업무에 관한 것.

특히나 이번에 인프라 관련 업무를 맡게 되면서, 더 꼼꼼하게 작성하려고 했었다.

어떤 업무라는 게, 내가 맡을 수도 있지만 다른 누군가도 맡을 수 있다.

이전의 직장에서의 일을 생각해 보면, 나도 누군가 남겨 놓았던 자료 덕분에 일을 조금 더 수월하게 할 수 있었다.

그건 타인을 위한 것도 있지만, 나를 위한 이유도 있다.

언젠가 내가 보기 위한 것.

그리고 또 다른 누군가가 맡게 된다면, 시행착오를 줄이고 조금 더 시간을 단축하여 일할 수 있도록 해주는 것.

그런 마음으로 작성을 했었고, 그렇게 이번에 클러스터링 작업을 하며 기록했던

것을 정리해본다.

이전에 클러스터링 구성 기록에 대해 글을 남겼었는데, 그때랑 달라진 건 없다.

다만 당시에는 웹서버가 우분투였는데, 추후에 windows로 바뀌었다.

db 또한 초반에는 오라클로 세팅을 했었으나, 추후에 mysql로 변경이 되었다.

 

추가로 주절주절 적어보자면?

원래 '리눅스'의 존재에 대해서만 알고 있다가, 정식으로 다뤄본 것은 작년 하반기가 처음이었다.

워낙 GUI에 익숙해져 있어서, 검은 화면에 글씨만 있는 CLI가 두려웠었다.

하지만 맡게 된 것이니, 열심히 해보려고 했던 것 같다.

아주 처음에는 웹서버 1대, was 서버 1대로 연습 비슷하게 시작을 했다. (연습이라 적었지만, 실전이었다.)

 

내부에서 테스트를 위한 클러스터링 구성은 아래에 적을 예정이다.

클러스터링 구성은 내가 했던 것은 아니고, 이미 전달받은 클러스터링 구성도가 있었다.

이미 다른 직원분이 작성해 놓았던 샘플이 있었다.

그래서 내부에서도 클러스터링이 금방 될 거라고 생각을 했지만?

될 줄 알았던 것도 바로 되지 않는 게, 이 세계...

시간이 꽤나 걸려서 클러스터링을 완료할 수 있었다.

 

 


 

웹서버
windows server 1
windows server 2
Nginx (L4 대신)    
apache1    
apache2    
was
ubuntu1
ubuntu2
ubuntu3
tomcat1 rabbitmq1 redis1
tomcat2 rabbitmq2 redis2
tomcat3 rabbitmq3 redis3
db mysql    

 

서버는 총 7대!

nginx 서버 1대, windows 서버 2대, was 서버 3대, db 서버 1대.

ubuntu는 22.04.3 LTs 버전이었다.

서버는 온프레미스가 아닌, 클라우드를 사용했다.

 

 

 

 


Front

Nginx

아파치 로드밸런싱을 위해 제일 앞쪽에 nginx를 임시로 설치했다.

nginx version: nginx/1.18.0 (Ubuntu)

대표 도메인으로 들어오면, 2대의 아파치 중 로드밸런싱이 되어서 이동한다.

 

 

apache2

server version: Apache/2.4.52 (Ubuntu)

nginx를 통해 apache2 중에 한 대로 접근을 한다.

 

 

 


Back

tomcat8

server number: 8.5.93.0

 

 

RabbitMQ

RabbitMQ version: 3.9.13

 

 

Redis

Redis server v=6.0.16

 

 

DB

docker: 24.0.6
docker compose v: 3.1
mysql: 8.0

 

이러한 구성이었다.

위 구성으로 클러스터링 완료.

 

등록된 대표 도메인(https)으로 nginx를 통해 접근이 되면,

프론트1 또는 프론트2로 로드밸런싱이 된다.

그리고 프론트1이나 프론트2에서 서버1, 서버2, 서버3으로 로드밸런싱이 된다.

 

 

 

클러스터링을 완료하고, 내부에서 테스트도 진행했다.

이렇게 테스트를 진행하는 게 맞는지는 잘 모르겠지만, 다양하게 셧다운 시키며 꽤나 많이 테스트를 진행했다.

위에 캡처해서 올린 것보다 더 많이 진행이 되었다.

 

웹서버랑 톰캣은 이미 정상 작동이 되는 것을 여러 번 확인한 상태였다.

그래서 나중에는 RabbitMQ랑 Redis 위주로 테스트를 진행했다.

다행히도 문제없이 작동하는 것을 확인했다.

하다가 안 되는 것은, 인프라 질문을 하면 답변을 주셨던 직원분들께 여쭤봤다.

내근이 아니라서 얼굴을 자주 뵐 수는 없었지만, 메신저로 여쭤보면 친절하게 도와주셨다.

덕분에 많이 배우고, 직접 해보면서 완료할 수 있었던 것 같다.

 

 

이번 일을 맡게 되면서, 사실 스트레스가 어마어마했다.

그럼에도 결국에는 내가 해내고 싶다는 마음이 컸던 것 같다.

고민하고 찾아봐도 해결이 안 되는 문제들도 존재했다.

그럴 때면 너무 많은 시간이 흐르니, 당연히 여쭤봤던 부분도 있다.

경력이 있으신 분들이기 때문에, 내가 한참이나 고민했던 것도 뚝딱뚝딱 해결을 해주셨다.

그럴 때마다 스스로 해결하지 못한 것 같아서, 살짝 자괴감이 들 때도 있었지만...

끙끙대고 여쭤보면서, 때로는 해결이 아닌 방법을 알려주셔서 해결을 하고 나면!

고생했다는 말씀 한 마디에 그 고생이 잠시 사라진다.

 

요즘도 쉽지 않은 일들이 나를 찾아온다.

생각처럼 되질 않아서 짜증이 나다가도!

결국에는 해내게 될 거라고 생각하며 하는 중이다.

그런 생각이라도 안 하면, 너무 우울할 것 같다.

 

아무튼 클러스터링에 '클'자와 우분투에 '우'자도 모르다가, 이번에 많은 것을 배웠던 것 같다.

잘 버틴 게 아닌지.

앞으로도 배우고 기억해야 하는 것들은 기록하겠다는 다짐과 함께 끝.

(언젠가 결국엔 내가 보게 된다. 아직 레벨이 낮기 때문에 더 많이 기록해야지.)

 

 

 

300x250