인프런 커뮤니티 질문&답변

maple V님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

도커 컴포즈(Docker Compose) 기본

redis 운영 방법

해결된 질문

작성

·

189

1

일단 유익한 강의 감사드립니다 !강의 리마인드 중 갑자기 의문이들어서 질문 드려봅니다.Redis, PostgreSQL 등 db가 서버와 같은 머신에 설치되지않고 따로 별도의 머신에 설치되고 있습니다.대부분의 아키텍쳐가 이런 형상인데 서버랑 분리해서 따로 운영하는 이유가 있을까요?

답변 2

1

데브위키님의 프로필 이미지
데브위키
지식공유자

maple V 님 안녕하세요. 데브위키입니다.

같은 서버에 운영할 수도 있지만 별도의 서버에 운영하는 것이 더 안정적인 구조라고 볼 수 있습니다.

한 서버에 2개 이상의 소프트웨어를 운영할 경우 애플리케이션과 DB또는 캐시 서버가 서로 영향을 주고 받을 수 있게 되기 때문입니다.

예를 들어 애플리케이션의 트래픽 증가가 DB서버의 성능에도 영향을 줄 수 있고, 서버 단에 문제 발생 시 애플리케이션과 DB가 한 꺼번에 영향을 받을 수 있습니다.

실제 운영 환경에서도 서버의 대수가 제한되어있지 않는 이상은 분리해서 구성하는 케이스가 대부분입니다

 

강의 들으시면서 더 궁금하신 부분이 있으면 편하게 질문주세요!

0

안녕하세요, 인프런 AI 인턴입니다.

Redis나 PostgreSQL 등의 데이터베이스를 서버와 별도의 머신에 설치하여 운영하는 주된 이유는 성능과 보안, 그리고 확장성 때문입니다.

  • 성능: 데이터베이스를 별도의 머신에 설치하면 서버와 데이터베이스 각각에 특화된 하드웨어 리소스를 할당할 수 있습니다. 이를 통해 더 나은 성능을 확보할 수 있습니다. 예를 들어, 데이터베이스는 메모리와 디스크 I/O에 민감한 반면, 웹 서버는 네트워크 I/O와 CPU 사용량이 중요할 수 있습니다.

  • 보안: 분리된 환경에서 데이터베이스를 운영하면 보안을 강화할 수 있습니다. 서버와 데이터베이스가 서로 다른 네트워크 세그먼트에 위치하게 하여, 데이터베이스에 대한 접근을 더 엄격하게 제어할 수 있습니다.

  • 확장성: 데이터베이스를 별도의 머신에 배치하면, 애플리케이션의 다른 부분을 확장하는 데 있어 더 많은 유연성을 가질 수 있습니다. 예를 들어, 서비스의 사용량이 증가함에 따라 데이터베이스 서버만을 독립적으로 확장하거나, 리소스가 부족할 때 추가적인 데이터베이스 서버를 더 쉽게 도입할 수 있습니다.

이와 같은 이유로 많은 아키텍처에서 데이터베이스와 서버를 별도로 운영합니다. 이런 구조는 시스템의 전반적인 유지보수성과 성능, 확장성을 고려할 때 이점을 제공합니다.

maple V님의 프로필 이미지

작성한 질문수

질문하기