개발서/서버의 기본 57

6-02 RAID

RAID(Redundant Arrays of Inexpensive Disks)는 복수의 저장 드라이브(HDD/SSD)를 하나의 드라이브처럼 보이게 해서, 다중화와 고속화 등을 가능하게 하는 기술이다. 저장 드라이브는 데이터의 쓰기나 읽기 등에 의해 노후화 되거나 고장이 나기 쉬운 부품 중에 하나이다. 데이터 손실이나 단순한 서비스의 손실이 아니라, 돈이나 신뢰의 손실로 직결될 수 있다. RAID Controller Card라고 하는 전용 카드를 사용해서 RAID를 구성하고 드라이브가 장애를 일으켰을 때의 영향을 최소화한다. RAID에는 데이터의 분산 방법이나 다중화 방법에 따라 몇가지 타입으로 나누어지는데, 여기서는 서버에서 주로 사용하는 3가지에 대해서 소개한다. 1. RAID1 미러링이라고 불리는 기..

6-01 서버와 장애는 한몸

아무리 좋은 성능을 가진 컴퓨터라도 전기의 힘으로 움직이는 기계에 지나지 않는다. 그렇기 때문에 오래 사용하다 보면 언젠가는 문제가 일어나기 마련이다. 이런 상황이 자신의 개인 컴퓨터라면 수리를 맡기면 되겠지만, 중요한 데이터를 보관하고 있는 서버라면 문제가 달라진다. 서버 시스템에서는 언제 어디에서 문제가 발생해도 계속 서비스를 제공할 수 있도록 모든 구성요소에 대한 만일의 대비책을 세워둬야 한다. # 장애 대책의 기술 서버 장애시의 대책으로는 크게 다중화 기술과 백업으로 나눌 수 있다. 다중화 기술은 같은 구성요소를 복수로 조합하여 논리적으로 하나로 보이게 하는 기술이다. Teaming, RAID, Clustering, 서버부담분산기술, 광역부담분산기술 등이 다중화 기술에 해당된다. 다음으로 백업은 ..

5-12 VPN 서버의 역할

인터넷을 이용해서 가상 전용선을 만들어 거점 LAN간 접속을 하거나, 모바일 유저의 접속을 가능하게 하는 기술을 VPN(Virtual Private Network)라고 한다. VPN에는 거점 LAN을 접속하는 거점간 VPN과 모바일 유저가 접속하는 리모트 액세스 VPN이 있다. 거점간 VPN은 복수의 거점 LAN을 접속하기 위해 사용하는 VPN이다. 물리적으로 떨어져 있는 장소에 거점을 가진 기업이나 조직에서 일반적으로 사용한다. 거점간 VPN에서 사용하는 프로토콜은 IPsec이다. IPsec은 거점간 인증을 통해서 통신을 암호화하여 인터넷 상에서의 보안을 강화한다. 거점간 VPN에 접속하는 경우는 라우터나 방화벽 등 네트워크 기기가 가지고 있는 VPN 기능을 VPN 서버로 사용한다. 또한 최근에는 많은..

5-11 데이터베이스 서버의 역할

웹 어플리케이션 서버로부터 리퀘스트를 받아 데이터를 검색하거나 갱신(등록, 수정, 삭제)하는 서버를 데이터베이스 서버라고 한다. 또한 데이터베이스의 기능을 제공하는 소프트웨어를 데이터베이스 매니지먼트 시스템(DBMS)라고 한다. # 현재 주류는 관계형 데이터베이스 관계형 데이터베이스는 열과 행으로 구성된 2차원 표로 데이터를 관리하는 타입의 데이터베이스이다. 2차원 표라고 하면 조금 어려운 느낌으로 들릴 수 있지만, 쉽게 말해서 Excel의 시트와 같은 느낌이다. 이 표에 데이터를 입력하며 정리, 관리한다. 이러한 관계형 데이터베이스의 기능을 제공하는 소프트웨어를 RDBMS라고 한다. 대표적인 RDBMS에는 오라클 사의 Oracle DB, 오픈소스 MySQL, 마이크로소프트사의 SQL Server가 있다..

5-10 웹 어플리케이션 서버의 역할

웹 시스템은 보통 웹 서버, 웹 어플리케이션 서버, 데이터베이스 서버의 3단 구조로 되어있다. 그 중 웹 브라우저로부터 리퀘스트를 처리하는 웹 서버와 데이터를 저장하는 데이터베이스 서버 사이에서 다리 역할을 하는 기능을 제공하는 서버가 바로 웹 어플리케이션 서버(이하 AP 서버)이다. AP 서버는 프로그램의 실행 환경을 제공하거나, DB 접속기능을 제공하는 등 웹 시스템에 중요한 역할을 담당한다. # 두 종류의 웹 어플리케이션 서버 웹 어플리케이션을 개발, 실행하는데 있어서 가장 많이 사용되는 프레임워크에는 Java EE와 .NET Framework가 있다. AP서버는 사용하는 프레임워크에 따라 Java 어플리케이션 서버와 .NET 어플리케이션 서버로 나뉜다. Java 어플리케이션 서비스를 제공하는 서버..

5-09 FTP 서버의 역할

FTP서버는 FTP(File Transfer Protocol)를 이용하여 파일을 효율성 있게 전송하기 위한 서버이다. FTP는 인터넷 초창기부터 오랜기간 동안 사용되어 오고 있는 프로토콜 중에 하나이다. FTP서비스를 제공하는 서버 소프트웨어에는 Linux 플랫폼에서 동작하는 vsftpd, ProFTPD가 있으며, Windows 플랫폼에서 동작하는 IIS FTP 서버가 있다. 또한 대표적인 FTP 클라이언트 소프트웨어는 웹 브라우저이다. 웹 브라우저는 HTTP/HTTPS 클라이언트이면서 동시에 FTP 클라이언트이기도 하다. 주소창에 "ftp://"로 시작하는 주소를 입력하면 FTP 서버와 통신이 가능하다. 이외에도 FFFTP, NextFTP 등 FTP에 더 특화된 전용 소프트웨어도 있다. # FTP는 암..

5-08 SSL 서버 기술

# SSL 서버에는 증명서가 필요 SSL은 디지털 증명서로 통신상대를 신뢰해도 되는지 판단한다. 따라서 SSL서버에는 반드시 디지털 증명서를 설치해야 한다. 증명서 설치 순서는 아래와 같다. 1. 관리자는 서버 소프트웨어로 비밀키와 공개키를 작성하여, 공개키를 CSR(Certificate Signing Request, 증명서서명요구)로 인증국(CA국)이라고 불리우는 제삼자기관에 제출한다. 비밀키는 관리자가 보관한다. 2. 인증국은 CSR에 디지털 서명, 즉 증명서로 써도 된다는 인증을 받아 디지털 증명서를 발행하여 관리자에게 반환한다. 3. 관리자는 인증국으로부터 받은 디지털 증명서를 서버에 설치한다. # SSL에서의 암호화 순서 디지털 인증서를 설치하면 SSL 서버로서 동작이 가능하게 되며, 클라이언트..

5-07 두가지 암호화 기술

이전 절에서 소개한 SSL에는 암호화를 위한 암호화키와 암호를 풀기 위한 복호키가 필요하다. 네트워크 상에서 암호화방식은 클라이언트와 서버의 암호화키, 복호키를 갖는 방식에 따라서, "공통키 암호화 방식"과 "공개키 암호화 방식"으로 나누어진다. 공통키 암호화 방식은 암호화키와 복호키가 같은 키를 사용하는 암호화 방식이다. 다시 말해서 클라이언트와 서버가 같은 키를 공유해서 클라이언트가 암호화키로 암호화를 하고, 서버가 암호화키와 같은 복호키로 복호화 한다. 공통키 암호화 방식은 구조가 상대적으로 단순하기 때문에 처리 부담이 크지 않지만, 클라이언트와 서버가 키를 공유해야 하기 때문에 키 배송방법에 있어서 고려해야 한다. 공개키 암호화 방식은 암호화키와 복호키를 다른 키로 사용하는 암호화 방식이다. 서버..

5-06 SSL 서버의 역할

인터넷은 이미 우리 생활의 일부가 되어있다. 이때 발생할 수 있는 보안상의 취약성에 대해 우린 때로 안일하게 생각하는 경향이 있기도 하다. 이러한 보안상의 위협으로부터 우리의 소중한 데이터를 지키기 위한 프로토콜이 SSL(Secure Socket Layers)이다. SSL은 데이터를 암호화하거나 통신상대를 인증하는 등의 방법으로 데이터를 보호한다. "https://"로 시작하는 URL에서 보이듯이 HTTPS는 "HTTP over SSL"을 생략한 것으로, HTTP를 SSL로 암호화한 프로토콜이다. # 대표적인 SSL 서버 소프트웨어 SSL 서비스를 제공하는 서버 소프트웨어에는 오픈소스인 OpenSSL과 Windows Server의 표준으로 포함되어 있는 IIS가 있다. OpenSSL은 웹 서버인 Apac..

5-05 웹 서버에서 일어나는 처리

웹 서버는 웹 브라우저로부터 요청받은 것에 대한 처리를 실행한다. 이러한 처리는 요청의 URL에 따라 지정된 파일이 정적인 웹 컨텐츠를 작성하거나, 동적인 웹 컨텐츠를 작성하는 방식으로 나누어진다. # 정적인 웹 컨텐츠 처리 이는 누군가가 갱신하지 않는 한 같은 표시내용을 반환하는 웹 컨텐츠를 말한다. 웹 서버는 정적인 웹 컨텐츠에 대해 요청을 받으면 보존되어 있는 파일을 꺼내어 클라이언트에게 반환한다. 이는 서버가 가지고 있는 파일을 반환하는 일만 하기 때문에 고속으로 처리된다. 하지만 웹 컨텐츠에 있는 정보가 바뀔 때마다 대상 파일을 갱신해야 하기 때문에 그만큼 관리 비용이 발생한다. # 동적인 웹 컨텐츠 처리 이는 클라이언트로부터 받은 정보에 따라 표시내용이 달라지는 웹 컨텐츠를 말한다. 웹 서버는..