본문 바로가기
CODE/CodeKnowledge

[서버] 디비와 서버 : 웹 서버와 데이터베이스의 분리와 통신 최적화

by 솔리닉__ 2023. 10. 31.
반응형

저는 늘 궁금했습니다..! 일하다보면 늘 서버 접속정보와 디비 접속정보의 아이피가 다르거나, 같거나 하는 경우가 있는데요. 저는 이 원리가 너무 궁금했습니다. 그래서 이번에 조사하면서 알게된 것들을 바탕으로 정리해보겠습니다. 

 

웹 서버(Server)와 데이터베이스(DB)가 동일한 환경(같은 IP)에서 동작

 

만약에 서버 아이피와 데이터베이스 연결 아이피가 모두 같다면 어떨까요? 이것의 특징에 대해서 알아보겠습니다.  

  • 하나의 환경에서 여러 서비스를 운영하는 경우를 '모노리식 구조'라고도 부릅니다.
  • 초기 설정이나 관리가 간단한 편이지만, 확장성 측면에서는 한계가 있을 수 있습니다.

웹 서버(Server)와 데이터베이스(DB)가 분리

  • 두 서버는 각각 다른 물리적 혹은 가상의 환경에서 동작할 수 있습니다.
  • 이런 구조는 확장성, 관리 용이성 등의 이점을 가집니다.

 

분리되어 있을 때 서버와 디비 통신은 어떻게?

 

  1. 통신의 무리 여부
    • 웹 서버와 데이터베이스가 분리되어 있다고 해서 통신에 큰 무리가 있을 것이라는 것은 아닙니다. 실제로 많은 서비스에서는 보안, 확장성, 유지보수의 이유로 두 서버를 분리하여 운영합니다.
    • 그러나, 물리적 거리나 네트워크 환경에 따라 통신 지연(latency)이 발생할 수 있습니다. 따라서, 실시간성이 중요한 서비스나 빈번한 데이터베이스 액세스가 필요한 경우에는 네트워크 최적화가 중요합니다.
  2. AWS 클라우드와 데이터베이스의 위치
    • AWS와 같은 클라우드 환경에서 웹 서버와 데이터베이스가 서로 다른 위치에 있더라도 통신하는 데 문제가 없습니다. AWS는 전세계에 여러 데이터 센터를 보유하고 있으며, 내부적으로 고속의 네트워크 인프라를 통해 서로 다른 리전 및 가용 영역 간에도 데이터를 빠르게 전송할 수 있습니다.
    • 그렇지만, 가능하다면 동일한 리전 내에서 서비스를 운영하는 것이 지연 시간을 줄이고 더 빠른 통신을 가능하게 합니다.
  3. IP 주소로의 통신
    • 네, 웹 서버와 데이터베이스는 IP 주소(또는 도메인 이름)와 포트 번호를 통해 서로 통신합니다. 데이터베이스에 접근할 때 일반적으로 특정 포트(예: MySQL의 경우 3306 포트)를 사용하며, 해당 포트를 통해 데이터베이스 서버에 요청을 보내고 응답을 받게 됩니다.
반응형

댓글