시스템 기반에서 가장 하위 레이어를 구성하는 요소는 하드웨어와 네트워크입니다. 이번 포스트에서는 온프레미스 시스템 혹은 클라우드 시스템을 구축하기 위한 하드웨어와 네트워크의 기본 지식을 알아보도록 하겠습니다.
서버 장비
CPU (Central Processing Unit)
CPU란 프로그램의 처리를 수행하는 시스템의 핵심적인 부품으로 작동 주파수가 크거나 코어가 많아질 수록 연산 능력이 높아집니다. 하드웨어의 발전에 힘입어 최근 대부분의 서버는 멀티 코어를 사용합니다. 또한, CPU는 프로그램의 처리를 위해 메모리에 접근하게 되는데, 메모리와의 처리 속도 차이를 완화할 목적으로 캐시를 사용합니다.
CPU는 입출력장치, 기억장치, 연산장치 등의 컴퓨터 리소스를 활용하여 멀티 태스킹을 위한 작업들의 우선순위 할당, 가상 메모리 관리 등의 컴퓨터의 두뇌 역할을 수행합니다. 이를 위해 CPU는 직렬 처리에 최적화된 소수의 코어로 구성되어 있습니다.
반면 GPU (Graphical Processing Unit)는 픽셀로 이루어진 영상을 처리하기 위한 용도로 개발된 처리 장치로 CPU와 달리 단순하고 반복적인 대량의 연산을 병렬적으로 수행하며, 이를 위해 병렬 처리용으로 설계된 수 천개의 코어로 구성되어 있습니다. 따라서, 영상, 렌더링과 같은 그래픽 작업은 연산 능력이 뛰어난 GPU로 CPU가 데이터를 보내 작업을 처리하는 방향으로 진화되어 왔습니다. 특히, 딥러닝, 머신러닝에서의 반복적인 행렬 연산은 GPU가 처리하고 나머지 부분은 CPU가 처리하게 함으로써 연산 속도를 월등히 향상시켰습니다.
메모리, 스토리지
CPU가 직접 접근할 수 있는 주기억장치를 메모리라고 하며, 스토리지는 영구적인 데이터를 저장하는 디바이스로 보조기억장치라고 합니다.
그외
기업이 자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지 모두 수행하는 온프레미스 시스템에서는 전원 트러블에 의한 순간적 차단을 막기 위한 무정전 전원장치나 여러 대의 서버를 관리하기 위핸 KVM 스위치 등이 있습니다. 또한 서버 장비를 격납하기 위한 서버 랙은 유지 보수를 하기쉬운 것으로 선택합니다. 서버는 보통 무겁고 전력을 많이 소비하기 때문에 데이터 센터에 서버 설치시 바닥이 하중을 얼마나 견디는지, 소비 전력이 얼마인지를 계산하여 시공합니다.
네트워크
네트워크는 구축한 서버가 외부와 통신을 하기 위한 규약으로 서버나 클라이언트, 여러 네트워크 장비 등을 식별하기 위해 MAC 주소와 IP 주소를 사용합니다.
MAC (Media Access Control)
MAC 주소는 이더넷 주소라고도 하며 네트워크 인터페이스 카드나 무선 LAN 칩과 같은 네트워크 부품에 물리적으로 할당되는 48비트 주소입니다. 앞 24비트는 네트워크 부품의 제조업체를 식별하는 번호이며, 뒤의 24비트는 각 제조업체가 중복되지 않도록 할당합니다. MAC 주소는 12자리의 16진수로 표현됩니다.
IP (Internet Protocol)
IP 주소는 인터넷이나 인트라넷과 같은 네트워크에 연결된 컴퓨터나 장비에 할당되는 식별번호로 IPv4는 8비트씩 4개로 구분된 32비트 주소로 나타냅니다. IPv4는 하나의 네트워크에 42억여대까지 밖에 연결할 수 없기 때문에 사내 네트워크에서는 프라이빗 주소를 사용하고 외부와의 경계에 글로벌 주소와 프라이빗 주소를 변환하는 NAT 장비를 설치해 운용합니다.
OSI (Open System Interconnection)
네트워크 통신을 위해서는 통신의 당사자가 서로 이해할 수 있는 프로토콜이 필요합니다. OSI란 국제 표준화 기구에서 책정한 컴퓨터의 통신 기능을 계층화한 개념적인 모델로 일반적으로 다음과 같이 7 계층으로 구성됩니다.
Layers | 역할 | |
Application Layer | 웹의 https나 메일 전송을 하는 SMTP 등과 같은 애플리케이션에 특화된 프로토콜을 규정합니다. | |
Presentation Layer | 데이터의 저장 형식이나 압축, 문자 인코딩과 같은 데이터의 표현 형식과 애플리케이션에 필요한 암호화/복호화 등을 규정합니다. | |
Session Layer | 애플리케이션 간에서 일어나는 요청, 응답, 인증 등을 규정합니다. | |
Transport Layer | 데이터 전송을 제어합니다. 전송 오류의 검출이나 재전송을 규정하며 대표적으로 TCP, UDP 등이 있습니다. | |
Network Layer | 이 계층에서 IP 주소를 사용합니다. IP 주소를 바탕으로 서로 다른 네트워크에 데이터 패킷을 전송하며 라우터를 사용하여 지정한 목적지에 데이터를 어떤 루트로 전송할지 결정합니다. | |
Data Link Layer | 동일한 네트워크 안에 잇는 노드 간의 통신을 MAC 주소 기반으로 규정합니다. 또한, physical layer에서 발생한 에러의 정정 역할을 맡습니다. | |
Physical Layer | 통신 장비의 물리적 및 전기적 특성을 규정합니다. 데이터 bit를 어떠한 전압과 전류의 값으로 할당할지와 케이블과 핀 레이아웃을 규정합니다. |
방화벽
시스템을 가동시킬 때 보안도 염려해야 합니다. 보안을 확보하기 위해서는 보통 방화벽을 통해 내부 네트워크와 외부와의 통신을 제어합니다. 대표적으로 통과하는 데이터 패킷의 포트 번호나 IP 주소를 통해 안전한 데이터 패킷만 필터링하는 방법이 있습니다.
'Computer > Docker' 카테고리의 다른 글
Docker 이미지 커맨드 (0) | 2021.04.03 |
---|---|
Docker의 작동 구조 (0) | 2021.03.27 |
Docker의 기능 (0) | 2021.03.27 |
컨테이너 - Docker (0) | 2021.03.26 |
리눅스 (0) | 2021.03.22 |