시스템 기반에 대한 기초
시스템 기반 = 애플리케이션을 가동하기 위한 인프라(HW/OS/미들웨어)
도커 = 애플리케이션 실행 환경을 작성 및 관리하기 위한 / 컨테이너 기반의 오픈소스 가상화 플랫폼 => 컴퓨터 리소스를 개략화한 플랫폼
- 가상화(Virtualization) : 컴퓨터 리소스의 추상화
- 추상화: 복잡한 것을 중요한 것에 중점을 두어 개략화하는 것
클라우드의 등장으로 데이터센터 등 온프레미스 환경에서 가동시키던 서버들을 클라우드 상의 가상 인스턴스로 옮기고 DB나 네트워크와 같은 클라우드 서비스를 이용함으로써 실행 환경의 범위가 짧은 사이클로 릴리스를 반복하는 스타일로 변모하고 있다.
분산 환경에서는 Operation(운용)이 아닌 자동화된 툴로 Orchestration을 하기에 코드 작성 스킬이 필요하다.
비기능 요구사항(성능, 보안, 신뢰성 등)을 충족시키려면 시스템 기반에 관한 지식이 필요하다.
시스템 기반의 구성 요소
- 하드웨어: 물리적인 요소. 서버 본체, 스토리지, 전원 장치 등
- 네트워크: 서버들을 연결하기 위한 요구사항. 라우터, 스위치, 방화벽 등과 같은 네트워크 장비나 이를 연결하기 위한 케이블 등도 관리.
- 운영체제: 하드웨어나 네트워크 장비를 제어하기 위한 기본 SW. 하드웨어의 리소스나 프로세스를 관리.
- 클라이언트 OS: Windows, Mac (사용성에 주안점, GUI 기능)
- 서버 OS: Windows Server, Unix, Linux (시스템 고속 및 안정적 가동)
- 미들웨어: 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어.
시스템의 이용 형태
- 온프레미스: 자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지를 모두 수행하는 형태. 초기 비용 크며 운용 비용도 이용량과 상관없이 일정 금액을 부담해야.
* 높은 가용성이 요구되는 시스템. 기밀성이 높은 데이터를 다루는 시스템 등은 온프레미스가 적합하다.
- 퍼블릭 클라우드: 인터넷을 경유하여 불특정 다수에게 제공되는 클라우드 서비스.
* 트래픽의 변동이 많아 사이징(트래픽 양에 따라 시스템 기반의 서버 사양이나 네트워크 대역을 가늠하는 설계)이 어려운 시스템은 트래픽 양에 따라 시스템을 단기간에 쉽게 증설시킬 수 있는(=오토스케일링) 클라우드 시스템이 적합하며 / 재해 대책으로 해외에 백업을 구축하고 싶은 시스템, 장비 조달에 시간이 걸리지 않기 때문에 서비스를 빨리 제공하고 싶은 시스템(릴리스 시간 단축 또는 POC(Proof of Concept) 등)에 적합하다.
- 프라이빗 클라우드: 특정 기업 그룹에게만 제공되는 클라우드 서비스.
하드웨어와 네트워크 기초
서버 장비
- CPU: 프로그램의 설계 및 처리 등을 수행하는 전자회로 부품. CPU의 작동 주파수가 클수록 연산 능력도 높아진다.
CPU의 연산회로는 '코어'. CPU는 고속으로 움직이므로 메모리와의 처리 속도 차이를 완화할 목적으로 캐시가 사용된다.
- 메모리: CPU가 직접 엑세스 할 수 있는 기억장치(=주기억장치).
- 스토리지: DB에 기록하는 데이터 등과 같은 영구적인 데이터를 저장하는 디바이스(=보조기억장치).
ex) 하드디스크, SSD / 스토리지는 대부분 데이터 손실을 막기 위해 다중화 구성을 취함
* 스토리지는 파일 형태가 되면 무엇이든 담을수 있지만 DB에 담을려면 앞단 서버를 통해서 가공해서 담아야 한다.
클라우드 환경에서 하드웨어의 선정 = 가상 머신의 사양
네트워크 주소
- MAC 주소(물리 주소/이더넷 주소): 48비트 주소 / 16진수
- IP 주소: 인터넷에 연결된 장비에 할당되는 식별 번호. IPv4(8비트씩 4개로 구분된 32비트 / 10진수), IPv6(128비트)
IPv4의 경우 2^32개까지 연결 가능하므로 주소 고갈이 우려되고 있다. 따라서 사내 네트워크에서는 프라이빗 주소를 사용하고, 인터넷과의 경계에서 글로벌 주소와 프라이빗 주소를 변환하는 NAT 장비를 설치해 운용하고 있다.
OSI 7계층과 통신 프로토콜
[7] 응용 계층: 애플리케이션 특화 프로토콜 규정.
[6] 표현 계층: 데이터 저장 형식 등 데이터 표현 형식 규정.
[5] 세션 계층: 데이터 전송 타이밍 규정. 세션은 애플리케이션 간 요청과 응답으로 구성된다.
[4] 전송 계층: 데이터 전송 제어. 데이터를 통신 상대의 노드로 확실히 보내는 역할. ex) TCP / UDP
[3] 네트워크 계층: 서로 다른 네트워크 간 통신을 위한 규정. 서로 다른 네트워크에 데이터 패킷을 전송하는 것을 라우팅이라고 한다. 라우터와 레이어3스위치는 패킷을 어디에서 어디로 전송할지에 대한 정보(=라우팅 테이블)를 관리한다. ex) IP
[2] 데이터 링크 계층: 동일 네트워크(=세그먼트) 안에 있는 노드 간 통신을 규정. MAC 주소를 사용해 데이터를 전송한다. 레이어2스위치는 통신하고 싶은 노드가 어떤 포트와 연결되어 있는지를 MAC 주소를 사용하여 판단하고 패킷을 전송한다.
[1] 물리 계층: 통신 장비의 물리적 및 전기적 특성 규정. 통신 규격 규정.
방화벽
보안 확보를 위해 가장 효과적인 방법 중 하나는 불필요한 통신을 차단하는 것. 방화벽으로 내외부 통신을 제어한다.
- 패킷 필터형: 통과하는 패킷을 IP주소를 바탕으로 필터링. 포트번호, 세그먼트 별로 룰(ACL; 네트워크 제어 리스트)을 만들어 패킷을 필터링.
- 애플리케이션 게이트웨이형: 애플리케이션 프로토콜 레벨에서 외부와의 통신을 대체 제어. (프록시 서버)
- 라우터/레이어3스위치: 라우터는 2개 이상의 서로 다른 네트워크 간을 중계하는 통신 장비. 3계층에서 작동하며 라우팅 테이블을 바탕으로(정적 경로)/라우팅 프로토콜을 바탕으로(동적 경로) 어떤 루트를 경유할지 선택한다. 레이어3스위치는 라우팅을 하드웨어로 처리하기 때문에 고속으로 작동한다. 연결할 수 있는 이더넷 포트의 수가 많다.
'클라우드 > IT 기초' 카테고리의 다른 글
Linux 기초 지식 (0) | 2021.09.18 |
---|