[개발] 프로그램 지식

[IDC] 서버 아키텍처 정리

  • -
반응형

 

서버 아키텍처와 관련 지식 정리

1. 서버 아키텍처의 기본 구성 요소

1) 하드웨어

  • CPU: 요청을 처리하는 서버의 두뇌 역할.
  • 메모리(RAM): 데이터를 처리하고 애플리케이션이 실행되는 공간.
  • 저장장치(Storage): 데이터베이스나 로그를 저장하는 SSD 또는 HDD.
  • 네트워크 장비: 네트워크 인터페이스 카드(NIC), 라우터, 스위치 등.

2) 소프트웨어

  • 운영체제(OS): 서버에서 실행되는 기본 소프트웨어(예: Linux, Windows Server).
  • 웹 서버: 클라이언트 요청을 처리하는 소프트웨어(예: Apache, Nginx).
  • 애플리케이션 서버: 동적인 콘텐츠를 제공(예: Tomcat, Node.js).
  • 데이터베이스: 데이터를 저장하고 관리(예: MySQL, PostgreSQL, MongoDB).

 

 

 

 

 

 

 

2. 서버 아키텍처 유형

1) 단일 계층 아키텍처

모든 서버 작업을 하나의 서버에서 수행. 간단하지만 확장성이 낮음.

2) 클라이언트-서버 아키텍처

클라이언트가 요청을 보내고 서버가 응답. 웹 애플리케이션에 흔히 사용됨.

3) 멀티 티어 아키텍처 (3계층 이상)

  • 프레젠테이션 계층: 사용자 인터페이스(예: 웹 브라우저).
  • 애플리케이션 계층: 비즈니스 로직 처리.
  • 데이터 계층: 데이터 저장 및 관리.

예: 웹 브라우저(클라이언트) - 웹 서버 - 데이터베이스 서버.

4) 분산 아키텍처

여러 서버가 서로 협력하여 작업을 처리. 예: 마이크로서비스, 클라우드 서버.

 

 

 

 

 

 

 

3. 중요 개념 및 기술

1) 로드 밸런싱 (Load Balancing)

여러 서버에 트래픽을 분산시켜 성능과 안정성을 향상. 소프트웨어(HAProxy) 또는 하드웨어(Load Balancer)로 구현.

 

 

2) 클러스터링 (Clustering)

여러 서버를 하나의 시스템처럼 동작하게 만듦. 고가용성과 확장성을 제공.

 

 

3) 가상화 및 컨테이너화

  • 가상화(Virtualization): VMware, Hyper-V 등을 통해 하나의 물리적 서버에 여러 OS 실행.
  • 컨테이너화(Containerization): Docker, Kubernetes를 사용해 애플리케이션 배포.

 

 

4) 데이터베이스 관리

  • 관계형 데이터베이스: SQL 기반(예: MySQL, PostgreSQL).
  • NoSQL 데이터베이스: 비정형 데이터 처리(예: MongoDB, Redis).

 

 

5) 클라우드 컴퓨팅

Amazon AWS, Microsoft Azure, Google Cloud Platform(GCP) 등을 활용해 확장성 있는 서버 구축.

 

 

6) 모니터링 및 로깅

  • 모니터링 툴: 서버 상태 및 성능 모니터링(예: Prometheus, Grafana).
  • 로깅: 서버 활동 기록(예: ELK Stack).

 

 

 

 

 

 

 

4. 보안 관련 지식

  • 방화벽: 네트워크 트래픽 제어.
  • SSL/TLS: 데이터 암호화 및 인증.
  • 권한 관리: 서버 사용자와 애플리케이션의 권한 제한.
  • 취약점 관리: 패치 및 보안 업데이트.

 

 

 

 

 

 

 

 

5. 서버의 배포 및 관리

  • CI/CD: 코드의 지속적인 통합 및 배포.
  • 인프라 자동화: Ansible, Terraform 등으로 서버 설정 자동화.
  • 버전 관리: Git을 통한 소스 코드 관리.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.