* On-Premises (온프레미스)

- 자사에서 데이터센터나 서버룸을 보유하고 시스템 구축부터 운용까지를 모두 수행하는 형태
- 장점 : 보안이 중요시 되거나, 시스템의 성능, 시간 등이 매우 중요할 때 사용
- 단점 : 구축을 위한 시간도 수개월 이상 걸리며 초기 도입 비용, 운영 및 관리를 위한 유지보수 등 비용이 많이 듦


* Off-Premises (오프프레미스) = Public Cloud

- 온프레미스와 반대로 인터넷 네트워크에 연결된 서버팜이나 클라우드의 원격 실행환경을 의미

- 장점 : 하드웨어 구매, 소프트웨어 설치 없이 필요한 소프트웨어를 필요한 만큼 쓰고 비용을 지불하면 되므로 구축이나 유지보수를 위한 비용이 절감

- 단점 : 보안이 비교적 취약하며, 외부 네트워크 단절이 시스템이 제대로 운영될 수 없음


* AngularJS

- Java Script 기반의 Open Source Front-end Web-App Framework


* NGINX

- Open Source Web Server SW


* Auto scaling

- 서비스의 부하량과 사용량에 맞게 탄력적으로 컴퓨팅 자원을 늘렸다가 줄였다 하는 기능


* GCP (Google Cloud Platform)
- 구글의 클라우드 컴퓨팅 서비스

* 서버장비

- CPU, Memory, Storage

- UPS (Uninterruptible Power Supply)

- KVM (Keyboard, Video, Mouse) Switch

: 하나의 키보드, 하나의 모니터, 하나의 마우스를 가지고 다수개의 서버 혹은 PC를 제어하는 하드웨어 장비


* MAC (Media Access Control) address

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

- 앞 24 비트는 제조업체를 식별하는 번호이며, 뒤 24비트는 각 제조업체가 중복되지 않도록 부여하는 번호

- OSI 2계층인 Data Link Layer 에서 사용


* OSI (Open Systems Interconnection) Reference Model

- 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것

- 1~4 계층을 하위 계층, 5~7 계층을 상위 계층이라고 함


- Layer 7 (Application Layer)

: Web 의 HTTP 나 메일 전송을 하는 SMTP 등과 같은 App 에 특화된 프로토콜을 규정

- Layer 6 (Presentation Layer)

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

- Layer 5 (Session Layer)

: Connection 확립 타이밍이나 데이터 전송 타이밍을 규정

- Layer 4 (Transport Layer)

: 데이터의 전송을 제어. 전송 오류의 검출이나 재전송을 규정

: 대표적인 프로토콜은 TCP와 UDP

- Layer 3 (Network Layer)

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

: 라우팅을 포함하여 패킷 포워딩을 담당

- Layer 2 (Data Link Layer)

: 동일한 네트워크 안에 있는 노드 간의 통신을 규정

: MAC 주소로 데이터를 전송

- Layer 1 (Physical Layer)

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


* Firewall

- 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템


- 패킷 필터형

: ACL (Access Control List) 를 이용하여 통과하는 패킷을 포트번호나 IP 주소를 바탕으로 필터링 하는 방법

- 애플리케이션 게이트웨이형

: 애플리케이션 프로토콜 레벨에서 외부와의 통신을 대체 제어하는 방법



* Shell

- 명령어와 프로그램을 실행할 때 사용하는 인터페이스


- bash : 명령 이력, 디렉토리 스택, 명령 변환 기능, 명령이나 파일명의 자동보완 기능 등을 지원하는 고기능 쉘.

- csh : C 언어와 배우 비슷한 쉘로, BSD 계열 OS 에서 주로 이동

(Berkely SW Distribution; 버클리에서 개발한 Unix)

- tcsh : csh 를 개선한 버전으로 명령이나 파일명 등의 자동보완 기능을 갖고 있다

- zsh : bash와 호환성이 있는 쉘로, 고속으로 작동하는 것이 특징




* VFS (Virtual File System)

- 실제 파일 시스템 위의 Abstract Layer 를 뜻함

- Linux 에서는 Device 를 File 로 관리하며, ext1 ~ ext4 순서로 발전했다. (Extended File System)


* FHS (File System Hierarchy Standard)

- Directory 구성 표준


* RDBMS 의 종류

- Oracle DB (상업용)

- MySQL (Open Source; Oracle)

- Postgre SQL (Open Source)


* NoSQL

- RDBMS 와는 다른 새로운 방식을 통틀어 일컫는 말

- 병렬 분산처리나 유연한 스키마 설정 등이 특징


- 분류

: KVS (Key-Value Store)

: Document DB

: XML DB


- 종류

: Redis (KVS 기반)

: Mongo DB (Document 기반)

: Apache Cassandra (OSS)


* 시스템 감시 툴

- Zabbix

: Zabbix SIA 가 개발한 통합운용 관리 툴

- Datalog

: Datalog 가 개발한 서버 통합감시용 SaaS.

- Mackerel

: Hatena 가 개발한 서버 통합감시용 SaaS.


* Immutable Infrastructure

- 한 번 구축한 인프라는 변경을 하지 않고 이미지, 컨테이너 등을 파기한 후 새로운 것을구축

- 인프라의 변경이력을 관리하는 것이 아니라 지금 현재 작동하고 있는 인프라의 상태를 관리


* 파리미터 시트

- 버전 정보와 설정 항목의 설정 값이 쓰여 있는 것

- 애플리케이션 개발의 '상세설계서'와 '프로그램 설계서'에 해당


* Bootstrapping Tool

- OS 시작을 자동화하는 툴

- KickStart, Vagrant 등이 있음


* Configuration Tool

- OS 나 미들웨어의 설정을 자동화하는 툴

- Chef, Ansible, Puppet, Itamae 등이 있음


* Orchestration Tool

- 여러 서버의 관리를 자동화하는툴

- Kubernetes 등이 있음


* CNCF (Cloud Native Computing Foundation)

- 클라우드 네이티브 컴퓨팅을 추진하는 조직

- 2016년 Linux Foundation 으로부터 정식 발족하여, Kubernetes, 모니터링을 하는 Prometheus, 로그 수집을하는 Fluetnd  등의 프로젝트를 관리

- Inception, Incubating, Graduated 3개의 성숙도 단계로 프로젝트를 분류 (Kubernetes 는 Graduated)

+ Recent posts