개발서/서버의 기본 57

3-08 서버를 구성하는 컴포넌트

컴퓨터는 CPU, 메모리, 저장장치(외부기억장치), NIC(Network Interface Card)의 4가지 컴포넌트로 구성된다. 서버는 이 컴포넌트 구성으로 요건에 따른 성능에 맞춰 구성할 수 있다. # 각 컴포넌트를 서버용으로 성능 향상 CPU는 그동안 주로 클럭(동작주파수) 수를 높게 함으로써 성능향상을 도모했지만, 최근에는 멀티 코어화로 대신하고 있는 추세이다. 인텔의 Xeon, AMD의 Opteron 등, 서버용 CPU는 멀티 프로세서화, 멀티 코어화와 함께, 메모리의 데이터 전송 고속화 등으로 처리 능력 향상을 도모한다. 메모리는 OS의 64비트에 따라, 탑재 가능한 용량이 증대되었다. 이에 따라 용량도 증가했을 뿐만 아니라 속도도 고속화되었다. 서버용 메모리에는 에러로부터 자동 복구하는 E..

3-07 서버의 케이스형태 선택

on-premises형의 경우, 어떤 하드웨어에 서버 소프트웨어를 설치하는가에 대한 고려가 필요하다. 시스템의 요건과 중요도에 맞춰서 하드웨어를 선택할 필요가 있다는 것이다. # 컴퓨터와 서버에서 사용하는 하드웨어는 다르다 서버용의 하드웨어는 컴퓨터용의 각종 부품을 업그레이드 시키거나 완전히 다른 사양의 부품을 사용함으로써, 퍼포먼스나 신뢰성의 향상을 기대할 수 있다. 예를 들어, CPU를 생각해보면, 인텔의 경우 Xeon, AMD의 경우 Opteron 등의 서버용 상위 모델이 존재한다. 또한 저장 매체(HDD/SSD)의 경우, 복수의 저장매체를 가지게 하여 1대의 드라이브가 고장이 나도 나머지 드라이브로 처리하는게 가능하다. # 서버의 케이스 형태 일반적으로 tower형, rack형, bread형의 3..

3-06 가상화 소프트웨어의 종류

서버를 가상화하기 위해 필요한 소프트웨어가 가상화 소프트웨어이다. 종류에는 크게 어플리케이션으로서 동작하는 Host OS형과 OS로서 동작하는 Hypervisor형으로 나눌 수 있다. # Host OS형 Host OS형은 통상의 OS(Host OS)로 설치한 가상화 소프트웨어의 위에 가상 머신(Guest OS)를 동작하게 하는 가상화 기술이다. VMware의 VMware Player나 VMware Fusion, Oracle의 VirtureBox등이 이 타입에 해당한다. Host OS형의 가상화 소프트웨어는 컴퓨터에도 간단하게 설치가 가능하고, 쉽게 이용할 수 있다. 마이너한 검증환경의 구축에 있어서는 완벽한 선택일 수 있다. 하지만, 가상화 소프트웨어 뿐만 아니라 Host OS도 동작해야만 하기 때문에 ..

3-05 서버 가상화 해야할까

# 서버 가상화는 관리적인 측면에서 메리트가 크다 서버 가상화란, 1대의 서버를 여러 대의 서버로 나누어서 사용하는 기술이다. 가상화 소프트웨어로 하드웨어(CPU, 메모리, 스토리지 드라이브 등)을 논리적으로 분할하여, OS에 할당해주는 것으로 서버를 분할할 수 있고, 이러한 서버를 가상머신, 가상서버라고 한다. 서버 가상화는 물리적으로 여러 대의 서버를 1대로 집약해서 설치 공간의 슬림화를 가능하게 하고, "Live Migration 기능", "Fault-tolerance 기능"을 이용해 별도의 서버로 가상 머신을 이동시킬 수도 있다. 이러한 메리트들은 시스템 관리자의 측면에서 비용 이상의 효과를 거둘 수 있는 큰 장점이 있어 많은 곳에 보급되었다. # 성능 저하 하지만, 서버 가상화에도 단점이 존재한..

3-04 자사 vs 데이터센터

on-premises형의 운용형태를 선택한 경우, 다음은 그 시스템을 어디에 설치할 것이냐를 고민할 것이다. 설치장소의 선택지에는 "자사의 서버실" 혹은 "데이터 센터"가 있다. 자사의 서버실은 말 그대로 사무실의 일부 공간을 서버 기기를 두는 공간으로 활용하는 것이다. 데이터 센터는 고객의 IT재산을 맡아 여러 서비스를 제공하는 전용시설이다. 어떤 선택지를 고르느냐는 설비, 비용, 즉시 대응 가능여부 등의 고려사항이 있다. # 데이터 센터는 설비 측면에서 우수 당연한 이야기겠지만, 일반 회사 사무실의 공간보다 데이터 센터의 설비가 우수하다. 서버기기들을 두는 공간에는 전원설비, 공기조절 설비, 내진설비 등의 다양한 설비가 필수이기 때문이다. # 비용은 상황에 따라 다르기 때문에 산출비교 필수 데이터 센..

3-03 클라우드 서비스의 종류

클라우드 서비스는 운용관리 비용의 삭감, 구축 스피드의 향상 등 여러 장점을 가지고 있다. 클라우드 서비스의 형태는 크게 아래 3가지로 나눌 수 있다. # IaaS (Infrastructure as a Service) IaaS는 메모리, CPU, 스토리지 등의 인프라를 제공하는 타입의 클라우드 서비스이다. AWS의 EC2나 마이크로소프트의 Azure가 이 타입에 해당한다. 시스템 관리자는 메모리나 스토리지의 용량, CPU와 OS의 종류 등, 하드웨어적인 요소를 선택하고, 그러면 어플리케이션 소프트웨어가 설치되지 않은 빈 깡통의 서버가 제공된다. # PaaS (Platform as a Service) PaaS는 IaaS의 확장판으로, 어플리케이션을 가동하기 위한 플랫폼을 제공하는 타입의 클라우드 서비스이다..

3-02 on-premises와 cloud

# on-premises 자사에서 보유하는 설비로 시스템을 운용관리해 나가는 종래의 시스템 운용형태이다. 네트워크 기기, 서버 등 전부 자사에서 보유하고 있기 때문에, 원하는 대로 구성이 가능하고, 기존 시스템과 유연하게 연계할 수 있다. 또한 문제가 발생했을 때도 상황 파악이 쉽고, 해결도 용이하게 가능하다. 하지만, 기기와 라이센스, 설치 공간 등 설비를 자력으로 조달해야 하기 때문에 비용과 시간이 많이 소모된다. # cloud 클라우드 사업자가 보유하고 있는 설비로 시스템을 운용관리해 나가는 운용형태이다. 클라우드 사업자가 갖는 설비로 시스템을 구축하기 때문에, 조달 시간이 많이 소모되지 않는다. 또한 서버의 성능도 상황에 맞춰 변화를 줄 수 있기 때문에 여러 조건에 대응할 수 있다. 하지만, 클라..

3-01 어떤 서버를 이용할까

어디에 있는 어떤 컴퓨터에 서버 소프트웨어를 설치할까. 서버의 확장성과 보수성, 운용관리성에 걸린 아주 중요한 문제이다. 시스템 구성의 초기단계에서 결정하는 하나하나의 선택이 시스템 전체의 미래를 결정한다고 해도 과언이 아니다. 최근에는 이전과 달리 다양한 종류의 컴퓨터가 있어서, 그만큼 선택지의 폭도 넓어졌다. 하지만, 어떤 선택을 하더라도 그에 따른 장단점이 존재한다. 바로 이 장단점을 이해하고, 주어진 환경에 최적의 선택을 할 수 있도록 하자. 여기에서는 "어디에" "어떤" 이 2가지의 관점으로 살펴보려고 한다. # 어디에 서버를 설치할 것인가 ① 운용형태 : on-premise(자사운용), 클라우드, 렌탈서버운용 ② 설치장소 : 자사설치, 데이터 센터 설치 # 어떤 서버를 설치할 것인가 ① 물리 ..

2-12 NAT와 NAPT

NAT(Network Address Translation)과 NAPT(Network Address Port Translation)은, 기업이나 가정의 LAN에서 사용하는 프라이빗 IP 주소를, 인터넷에서 사용하는 글로벌 IP 주소로 변환하는 기술이다. 이 NAT와 NAPT의 실행처리는 LAN과 인터넷을 연결하는 라우터나 방화벽에서 일어난다. # NAT는 IP주소를 1대1로 변환 NAT는 프라이빗 IP 주소와 글로벌 IP 주소를 1대1로 변환한다. LAN으로부터 인터넷에 접속할 때, 송신원 IP 주소를 변환한다. 반대로 인터넷으로부터 LAN으로 접속할 때는 수신처의 IP 주소를 변환한다. # NAPT는 IP주소와 포트 번호를 변환 NAPT는 프라이빗 IP 주소와 글로벌 IP 주소를 N대1로 변환한다. LA..

2-11 포트 번호의 사용법

포트 번호는 컴퓨터 내에서 동작하고 있는 어플리케이션을 식별하기 위해 사용하는 숫자이다. 구체적으로 어떻게 사용하며, WEB 클라이언트가 웹 서버에 액세스 하는 경우를 예로 살펴보자. # 클라이언트가 서버에 접속 (REQUEST) ① 웹 클라이언트는 웹 브라우저가 만든 REQUEST 데이터를 수신하면, 송신원 포트 번호에 다이나믹 포트에서 무작위로 선택한 숫자를 수신처 포트번호에 웹 서비스를 의미하는 80을 넣어 세그먼트로 만든다. ② 웹 클라이언트는 IP와 이더넷의 캡슐화를 실행하고, 웹 서버에 전송한다. ③ 웹 서버는 이더넷과 IP의 비캡슐화를 통해 수신처 포트 번호를 체크한다. (정상적이라면 80이 들어있을 것이다.) 80번은 웹 서비스를 의미하는 Well-known 포트 번호이므로, 웹 서비스를 ..