닭발개발

[Docker] 2일차. 9-18pg | 하드웨어, 네트워크, OSI 참조모델, Linux 본문

책책책 책을 읽읍시다‼ ver.개발/[ 완벽한 IT 인프라 구축을 위한 Docker ]

[Docker] 2일차. 9-18pg | 하드웨어, 네트워크, OSI 참조모델, Linux

D269 2023. 7. 7. 11:08
728x90

 

2일차.

 

제 1부. 도입편

제 1장. 시스템과 인프라 기초 지식

- 시스템 기반 : 애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS/미들웨어 등과 같은 인프라.

- 이 책의 메인 주제 : Docker : 애플리케이션 실행 환경을 작성 및 관리하기 위한 플랫폼

- 제 1장에서는 Docker를 도입하기에 앞서 알아둬야 할 시스템 기반의 개요와 시스템 기반을 다루기 위해 필요한 인프라 기술의 핵심 내용에 대해 설명한다.

 

1.1. 시스템 기반의 기초 지식

1.1.4. 온프레미스가 적합한 케이스

ㄱ. 높은 가용성이 요구되는 시스템 : 클라우드의 경우 시스템 가용성을 클라우드 업체가 보장하고 있기 때문에 미션 크리티컨 시스템(네트워크가 조금도 끊겨서는 안되는 경우 등)에서는 클라우드를 적용할 수 없다.

ㄴ. 기밀성이 높은 데이터를 다루는 시스템 : 물리적인 저장 장소를 명확히 할 필요가 있는 데이터는 퍼블릭 클라우드에 저장할 수 없다.

ㄷ. 특수한 요구사항이 있는 시스템 : ex) 의료 시스템 같이 전용 장비와의 연결이 필요한 경우

- 기존 시스템에서 다른 시스템으로 이전을 고려할 때는 어떤 시스템을 온프레미스로 남기고, 어떤 시스템을 클라우드로 옮길지 또는 새로운 시스템 도입을 생각할 때는 온프레미스와 클라우드 중 어떤 것이 적합한지 판단할 수 있는 안목이 중요하다.

 

- 하이브리드 클라우드 : 온프레미스와 클라우드가 혼재하는 클라우드

 

1.1.5. 시스템 기반의 구축/운용 흐름

- 애자일 개발 : 각 단계를 작은 단위로 나눠 반복하면서 개발을 진행해간다.

- 시스템 구축 계획 및 요구사항 정의 단계 > 인프라 설계 단계 > 인프라 구축 단계 > 운용 단계

- 시스템 운용에 걸리는 유지보수 기간을 가능한 한 줄이고 시스템을 안정적으로 가동시키기 위해서는 운용 설계가 중요하다.

 

 

 

1.2. 하드웨어와 네트워크 기초 지식

- 시스템 기반에서 가장 하위 레이어 부분을 구성하는 요소는 하드웨어와 네트워크다.

- Docker를 이용하여 인프라를 구축하기 위해 알아두어야 할 네트워크와 하드웨어 기술 

 

1.2.1. 서버 장비

- Docker를 사용하는 데 있어서 알아두어야 할 서버 장비 하드웨어 중 중요한 구성 요소에 대해 설명한다.

 

1) CPU

- 프로그램의 설계나 처리 등을 수행하는 전자회로 부품을 말한다.

- CPU의 작동 주파수가 클수록 연산 능력이 높아진다.

- CPU의 연산회로 == 코어

- 캐시 사용 : CPU는 고속으로 움직이므로 메모리와의 처리 속도 차이를 완화할 목적으로 캐시가 사용된다.

- GPU(Graphics Processing Unit) : 화상처리를 여러 개의 코어로 동시 및 병렬로 처리할 수 있는 프로세서

 

2) 메모리(주기억장치)

- CPU가 직접 액세스 할 수 있는 기억장치

- 메모리는 기억 영역이라 용량이 클 수록, 속도가 빠를 수록 고성능이지만, 서버용으로는 전력소모가 적고 오류처리가 탑재되어 있는 것을 선정한다.

 

3) 스토리지(보조기억장치)

- 데이터베이스에 기록하는 데이터 등과 같은 영구적인 데이터를 저장하는 디바이스

- 스토리지의 용량, 읽기와 쓰기의 속도가 시스템 전체의 응답 시간에 영향을 준다.

- 스토리지에는 하드디스크나 SSD 등을 이용한다.

- 하드디스크가 고장나면 중요한 데이터가 손실될 수 있기에 대부분 다중화 구성을 취한다.

 

- 클라우드를 이용하는 경우, 하드웨어의 선정 == 가상 머신의 사양 선정이다.

- 클라우드 시스템 인티그레이터 : 컨설팅부터 운용까지를 모두 상담할 수 있는 클라우드 시스템

 

1.2.2. 네트워크 주소

1) MAC 주소(물리 주소/이더넷 주소)

- MAC 주소 : 네트워크 인터페이스 카드나 무선 LAN 칩과같은 네트워크 부품에 물리적으로 할당되는 48비트 주소

(앞 24비트:네트워크 부품의 제조업체 식별번호, 뒤 24비트: 각 제조업체가 중복되지 않도록)

- OSI 참조 모델의 2계층인 데이터 링크 계층에서 사용한다.

 

OSI 참조 모델

 

2) IP 주소

- 인터넷이나 인트라넷과 같은 네트워크에 연결된 컴퓨터나 네트워크 장비에 할당되는 식별 번호

- 현재 폭넓게 보급되어 있는 IPv4는 8비트씩 4개로 구분된 32비트 주소이다.

- 인터넷상의 글로벌 주소의 할당은 전 세계에서 중복되지 않도록 각 나라의 NIC(네트워크 정보 센터)가 수행하고 있다.

 

 

1.2.3. OSI 참조 모델과 통신 프로토콜

- 통신 프로토콜 : '서로 어떤 약속으로 통신을 할지' 를 정한 규약

- OSI 참조 모델 : 국제 표준화기구(ISO)가 책정한, 컴퓨터의 통신 기능을 계층 구조로 나눈 개념 모델

 1계층~4계층 : 하위계층, 5계층~7계층 : 상위계층

 

1) 응용 계층(layer 7)

: 웹의 HTTP나 메일 전송을 하는 SMTP 등과 같은 애플리케이션에 특화된 프로토콜을 규정한다.

2) 표현 계층(layer 6)

: 데이터의 저장 형식이나 압축, 문자 인코딩과 같은 데이터의 표현 형식을 규정한다.

3) 세션 계층(layer 5)

: 커넥션 확립 타이밍이나 데이터 전송 타이밍을 규정한다. 

4) 전송 계층(layer 4)

: 데이터 전송을 제어하는 계층. 전송 오류의 검출이나 재전송을 규정한다.

대표 프로토콜로는 TCP, UDP가 있다. 데이터를 통신 상대의 노드로 확실히 보내는 역할을 한다.

5) 네트워크 계층(layer 3)

: 서로 다른 네트워크 간에 통신을 하기 위한 규정.

라우팅: 서로 다른 네트워크에 데이터 패킷을 전송하는 것.

라우터, 레이어3스위치 : IP주소를 바탕으로 네트워크 계층에서 작동하는 대표적인 통신 장비

6) 데이터 링크 계층(layer2)

: 동일한 네트워크 안(동일 세그먼트)에 있는 노드 간의 통신을 규정한다.

: 이 계층에서는 MAC 주소로 데이터를 전송한다.

7) 물리 게층(layer1)

: 통신 장비의 물리적 및 전기적 특성을 규정한다.

: 데이터를 어떻게 전압과 전류의 값으로 할당할지, 케이블이나 커넥터의 모양등을 규정한다.

 

 

1.2.4. 방화벽

- 시스템 가동시 가장 주의할 점: 보안

- 보안의 가장 효과적 방법은 불필요한 통신 차단

- 방화벽 : 내부 네트워크과 외부와의 통신 제어, 내부 네트워크의 안전을 유지하기 위한 기술.

 

방화벽 종류

1) 패킷 필터형

- 통과하는 패킷을 포트 번호나 IP 주소를 바탕으로 필터링하는 방법.

(패킷 : 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터로 이루어짐)

- 패킷 필터링의 룰 : ACL(엑세스 제어 리스트)

 

2) 애플리케이션 게이트 웨이형

- 패킷이 아니라 애플리케이션 프로토콜 레벨에서 외부와의 통신을 대체 제어하는 것.

- 프록시 서버 라고 부른다.

(proxy == 대리)

 

1.2.5. 라우터/레이터 3 스위치

- 라우터 : 2개 이상의 서로 다른 네트워크 간을 중계하기 위한 통신 장비

- OSI 참조모델의 네트워크 계층(3계층)에서 작동

- 어떤 루트를 통해 데이터를 전송할지 판단하기 위한 경로 선택 기능이 있음.

- 라우팅 테이블을 바탕으로 정해지는 정적 경로(Static Route), 라우팅 프로토콜에서 설정된 동적 경로(Dynamic Route)

 

- 레이어 3 스위치 : 라우팅을 하드웨어로 처리해서 고속으로 작동함. 연결할 수 있는 이더넷 포트의 수가 많아서 널리 이용됨.

 

1.3. OS(Linux) 기초 지식

- OS의 역할 : 하드웨어나 네트워크 제어

- Docker는 Linux의 기능을 사용했기 때문에 Linux의 기초지식은 Docker를 사용하는 데 있어서 필수다.

 

1.3.1. Linux

- 1991년에 개발된 Unix 호환 서버 OS

- 보안에 뛰어나고 안정적으로 작동되는 특징

- 스마트폰이나 임베디드 장비의 OS로서도 작동하는 것이 특징

- 오픈 소스이므로 누구나 자유롭게 수정 및 재배포 가능

 

Linux 말의 뜻

1) Linux 커널(kernel) : OS의 코어가 되는 부분

- 메모리 관리, 프로세스 관리 등 OS로서 하드웨어나 애플리케이션 소프트웨어를 제어하기 위한 기본적 기능을 가진 소프트웨어

 

2) Linux 배포판

- 보통 Linux는 Linux 배포판이라는 형태로 패키지화되어 배포된다.

- Linux 커널, 커맨드, 라이브러리, 애플리케이션 포함

- userland(사용자 공간): Linux 커널 이외의 부분

 

- 주요 Linux 배포판

a. Debian 계열

b. Red Hat 계열

c. Slackware 계열

d. 기타

 

 

 

 

 

 

 

이미지 출처: https://velog.velcdn.com/images%2Fjeongpar%2Fpost%2F4dbc6736-a994-4ae8-bd70-fd68384d583e%2Fimage.png

 

728x90
반응형