[서버]
1. 서버와 클라이언트
서버 | 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치 |
클라이언트 | 네트워크를 통하여서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치 |
2. 서버의 역할 및 종류
웹 애플리케이션을 구성하는 서버의 종류
종류 | 역할 |
웹 서버 | 동적 콘텐츠(소스코드, 텍스트,이미지 등)을 클라이언트에 전달 |
애플리케이션 서버 | 동적 콘텐츠(소스코드, 텍스트,이미지 등)을 클라이언트에 전달 |
데이터베이스(DB) 서버 | 애플리케이션의 정보를 저장해서 운영, 관리할수 있는 데이터베이스를 구동하는 서버 |
리버스 프록시 서버 | 클라이언트와 서버가 서로 데이터를 주고받을 수 있도록 전달 |
포워드 프록시(캐시) 서버 | 미리 데이터를 저장해 뒀다가 요청이 오면 데이터 전달 |
서버의 역할: 클라이언트의 요청을 수행하기 위해 다양한 서버들끼리 통신한 후 결과를 클라이언트에 전달
3. 서버 하드웨어와 소프트웨어
종류 | 예시 |
서버 하드웨어 폼팩터 | 랙마운트형 서버, 블레이드형 서버, 타워형 서버 |
서버 하드웨어 유형 | Main Frame, UNIX, x86, |
서버 하드웨어 제조사 | HPE, Dell Technologies, Inspur, Lenovo, IBM, Asus 등 |
서버 소프트웨어 | 오픈소스, 상용 |
서버 소프트웨어(서버 OS) | z/OS, UNIX, 오픈소스 Linux, 상용 Linux, MS Windows Server |
서버 소프트웨어(웹서버) | APACHE, NGINX, MS IIS |
서버 소프트웨어(기타 서버 소프트웨어) | FileZilla, MS Exchange |
[네트워크]
1. 네트워크 개념
개념 | 설명 |
네트워크(NetWork) | Net + Work (그물처럼 연결된 상태) |
IT 네트워크 시작 | 1960년대, 미국에서 하나의 거대한 메인 프레임이 처리하는 것을 여러 대의 단말기로 나누어 처리하기 위한 메인 프레임과 단말기들을 전화선으로 연결 |
ARPANET (Advanced Research Projects Agency Network) |
미국 DARPA(Defense Advanced Research Projects Agency, 미국 국방성의 연구, 개발 부분을 담당한 방위 고등 연구 계획국)에서 연구 목적으로 만든 네트워크, 패킷 교환 방식 처음 사용 네트워크, 현재 인터넷의 시초 |
회선 교환 방식(Ciruit Exchange Method) | 데이터를 교환하기 위해 1:1로 연결된 데이터 통로(회선)를 만들고 데이터 교환이 완료될 때까지 회선을 계속 사용하는 방식 |
패킷 교환 방식(Packet Exchage Method) | 데이터를 패킷이라는 작은 단위로 나누고, 헤더라는 정보를 붙여 데이터를 교환하는 방식 필요한 만큼만 회선을 이용하며 같은 회선을 다른 사용자도 함께 사용할 수 있음, 패킷이 손상될 경우 데이터 전체를 다시 보내지 않고 손상된 패킷만 보내면 됨 |
* DARPA: 미국 국방성의 연구, 개발 부문을 담당한 방위 고등 연구 계획국
* 패킷(Packet): 소포라는 뜻, 패킷이라는 택배 물품에 헤더라는 송장을 붙여 보내는 개
* 헤더: 송수신 포트번호, 패킷 순서 번호, 데이터 시작 위치, 한버에 전송할 수 있는 데이터의 양 등이 포함
2. 네트워크 프로토콜과 계층
개념 | 설명 |
프로토콜(Protocol) | 패킷을 전송하기 위한 규칙, 정해진 규칙을 따리기 때문에 통신이 가능해짐 |
HTTP(Hypertext Transfer Protocol) | 웹서버와 웹 브라우저가 패킷을 교환할 때 사용하는 프로토콜 |
계층(Layer) | 송신 기기와 수신 기기 사이에서 주고 받는 데이터는 각 계층 별로 처리됨 |
* 계층 별로 처리: 한 계층에서의 처리가 완료되면 임무를 다음 계층으로 전달
대표적인 2가지 계층: TCP/IP 참조 모델, OSI 참조 모델
TCP/IP 참조 모델 | 1970년대 미국 방위 고등 연구 계획국(DARPA)이 개발한 계층 구조 모델, 4계 계층으로 구성(링크, 인터넷, 트랜스포트, 애플리케이션) |
OSI 참조 모델 | 1984년 국제 표준화 기구(ISO)에서 개발한 계층 구조 모델, 7계 계층으로 구성(물리, 데이터, 네트워크, 트렌스포트, 세션, 프리젠테이션, 애플리케이션) |
업계에서 주로 사용하는 계층은 5계층 모델
PDU(Protocol Data Unit) | 네트워크 계층에서 처리하는 데이터 단위 데이터를 제어하기 위해 정보를 담은 헤더, 데이터 그 자체를 의미하는 페이로드(Payload)로 구분 각 계층 별로 PDU 명칭이 다름 |
네트워크 기기 | 계층 별로 존재하는 프로토콜에 따라 데이터를 전송하는 기기 각 계층 별로 동작하는 네트워크 기기가 다름 |
3. 네트워크 기기, 형태
계층별 기기
계층별 기기 | 설명 |
L1 | - NIC(Network Interface Card): PC나 서버를 네트워크에 연결해주는 하드웨어 - PC나 서버의 슬롯에 장착형, USB 포트형, 메인보드의 슬롯에 장착하거나 온보드로 부착된 형태가 있음 - 허브(Hub): 전달받은 패킷(비트)의 복사본을 포트에 연결된 다른 모든 기기로 전송 연결된 기기들이 네트워크 대역폭(Bandwidth)을 나눠서 쓰기 때문에 데이터 전송 성능이 떨어짐 - AP(Access Point): 패킷을 전파로 바꿔서 송출하는 기기, 무선과 유선 사이의 다리 역할을 수행, 무선 WiFi 네트워크 환경에 반드시 필요한 네트워크 기기 |
L2 | - MAC Address: Media Access Control Address, 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC 에 내장되어 있음, 그 기기만의 고유번호, 식별번호 등 기기를 구분하기 위한 주소로 사용됨 - 이더넷(Ethernet): 네트워크 환경에서 데이터를 주고 받기 위한 가장 대표적인 기술 규격, 1980년에 상용화됨 - UTP(Unshielded Twisted Pair) 케이블로 단말기와 네트워크 기기를 연결함 - L2 스위치(Switch): 단말기가 보낸 패킷(프레임)의 헤더에 있는 MAC Address를 보고 같은 네트워크의 다른 단말기로 패킷을 전송, 이더넷(Ethernet) 규격을 사용하기에 이더넷 스위치라고도 부름 |
L3 | - IP Address: Internet Protocol Address, 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를 전송하기 위해 사용하는 논리적 주소로 OS상에서 설정한 주소임 - Public IP Address: 공인 IP 주소, 네트워크와 외부의 네트워크가 통신하기 위해 사용(아파트 이름) - Private IP Address: 사설 IP 주소, 같은 네트워크 안에서 통신하기 위해 사용(아파트 동 호수) - 라우터(Router): 단말기가 보낸 패킷(IP 패킷)의 헤더에 있는 IP Address를 보고 다른 네트워크의 다른 단말기로 패킷을 전송(라우팅) - FPGA(Field Programmable Gate Array): 프로그래밍이 가능한 집적 회로 반도체, 용도에 따라 프로그래밍을 통해 기능을 변경할 수 있음 - 프로토타입 용도 혹은 DAC, 데이터 센터 그래픽 가속기 등 시스템의 높은 처리 능력과 변화에 용이한 유연성이 요구되는 분야를 위해 소량 생산하는 반도체 - ASIC(Application-Specific Integrated Circuit): 특정 용도를 위해 설계또니 주문형 집적회로 반도체 - 한번 용도에 맞게 제작하면 다시 기능을 프로그래밍하거나 수정할 수 없음 산업용 설비, 자동차 ECU(Electronic Control Unit), 의료장비, 비트코인 채굴기, 데이터센터 TPU(TensorFlow Processor Unit), AMP(Amplifier)등 특정 목적을 위해 대량 생산하는 반도체 - L3 스위치(Switch): 라우터에 L2스위치를 추가한 네트워크 기기, 다수의 포트가 있어 여러 단말기를 연결할 수 있으며 IP패킷 라우팅도 가능 - MAC Address Table과 Routing Table을 조합한 정보를 FPGA, ASIC과 같은 패킷 전송 처리 전용 하드웨어에 기록한 다음 스위칭 혹은 라우팅함 |
L4 | -L4 스위치(Switch): IP주소와 포트 번호를 참조하여 트래픽을 분산해 서버로 전송하는 로드 밸런싱 기기 - 로드 밸런싱(Load Balancing): 들어오는 트래픽을 둘 이상의 서버로 분산해서 전송하여 부하르 ㄹ분산하는 것 - 트래픽(Traffic): 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의양 - 방화벽(Firewall): IP주소와 포트 번호를 참조하여 통신을 허가하거나 차단하는 기기 미리 정의된 보안 규칙에 따라 들어오고 나가는 트래픽을 제어할 수 있음 |
L7 | - L7 스위치(Switch): IP 주소와 포트 번호 + 애플리케이션 콘텐츠 정보들을 참조해서 로드 밸런싱 하는 기기 애플리케이션 콘텐츠 정보: URL, 파일명, 콘텐츠의 문자열 등 - 웹 방화벽(WAF: Web Application Firewall): 웹 어플리케이션 서버를 안전하게 보호하는 기기 클라이언트와 서버 사이에서 교화되는 데이트를 애플리케이션 레벨(7계층)에서 상세히 검사하고 조치함 블랙리스트, 화이트리스트, 웹 트래픽 분석 등 다양한 보안 기능 제공 - 블랙리스트: 리스트에 있는 IP는 제외하고 모두 통신 허용 - 화이트리스트: 리스트에 있는 IP만 통시 허용 - 웹 트래픽 분석: 사용자가 서버로 보내는 트래픽을 분석하여 정책에 따라 조치함 - XXS(Cross-Site Scripting): 애플리케이션에 악성 스크립트를 심어두고 사용자가 접속하면 공객해서 정보 갈취 - SQL Injection: 악성 SQL을 실행하여 데이터베이스 정보를 조작(데이터 수정 혹은 삭제) |
네트워크 형태
형태 | 설명 |
WAN(Wide Area Network) | 원거리 통신망, 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결 LAN환경에 L3 스위치를 추가해서 구성 |
인터넷(Internet) | 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 Interneational Network(다수의 WAN) |
월드와이드웹 (World Wide Web) |
인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간 |
VPN (Virtual Private Network) |
인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술 특정 네트워크만을 위한 전용 WAN으로 Peer to Peer, 1:1로 연결하고 이 구간의 통신은 암호화함 기업 본사 LAN과 지사 LAN을 연결할 때 인터넷을 거치지 않고 이 두 네트워크만의 전용 WAN을 VPN으로 구성 ex) 터널베어 VPN, 기업 외부에서 기업 내부 애플리케이션 접속 |
DMZ(DeMilitarized Zone) | 비무장지대, 외부 네트워크(외부망)와 내부 네트워크(내부망)의 중간 지점 내부망에는 존재하나 외부망에서 접근할 수 없는 영역으로, 외부망에 있는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용 |
[3. 스토리지]
1. 스토리지 개념 및 종류
스토리지 | 저장장치를 다수 장착한 대용량 고속 저장장비로 서버 및 클라이언트와 네트워크로 연결해서 사용 |
저장장치 | 컴퓨터의 데이터를 저장하기 위한 비 휘발성의 기억 장치 |
스토리지는 데이터 저장 뿐만 아니라 데이터 공유 목적으로 주로 사용됨
서버에 장착된 디스크 용량이 부족할 경우, 다수의 사람들과 데이터를 공유할 필요가 있을 경우 스토리지를 활용
데이터 관리 및 보호를 위한 별도의 소프트웨어 탑재
스토리지 데이터 저장 방식: RAID(Redundant Array of Independent Disk)
여러 개의 디스크 중 일부에 데이터를 중복 저장하는 기술
여러 개의 디스크를 하나의 디스크 모듈로 사용, 디스크 읽기/쓰기 성능 향상, 장애 발생 시 원활한 복구를 위해 사용
대표적인 RAID방식
방식 | 설명 |
RAID 0 | 데이터를 여러 디스크에 분산 저정하여 하나의 디스크처럼 사용, 성능이 좋지만 장애 시 데이터는 모두 손실됨 |
RAID 1 | 데이터를 다른 디스크에 동일하게 중복 저장하여 안정성이 높지만 비용이 많이 듬 |
RAID 5 | 디스크에 패러티 정보를 저장해 장애 시 패러티를 토대로 복구할 수 있음, 일정 수준의 성능과 안정성 확보 |
RAID 6 | RAID 5 방식에 패러티를 하나 추가하여 안정성을 더욱 향상시킨 방법 |
RAID 1+0 | RAID 0의 높은 성능과 RAID 1의 뛰어난 안정성을 합친 상태 |
Non-RAID방식
방식 | 설명 |
JBOD | Just a Brunch of Disks(Drives) 2개 이상의 디스크를 하나의 디스크처럼 만들어 주는 것(Non-RAID) |
여러 디스크의 용량을 단순히 이어 붙인 것으로, RAID 0과 같이 다수의 디스크를 사용한다고 성능이 향상되지 않음 과거 디스크 용량이 작았을 때 개별 디스크 용량보다 더 큰 용량의 데이터를 저장하기 위해 사용함 구성된 디스크의 데이터가 가득차면 다음 디스크에 데이터를 기록하는 형태 기존에 사용하던 스토리지의 용량을 늘리기 위해 디스크를 더 꽂을 수 없을 경우, 스토리지 하드웨어를 추가해 기존의 스토리지와 연결하는 용도로 주로 사용됨 |
|
JBOD로 연결하는 디스크의 용량이 같지 않아도 됨 디스크에 동시에 접근하지 않기 때문에 성능이 향상되지 않음 최초 구성한 스토리지 성능은 변하지 않으며, 용량만 늘어나는 형태 RAID 0 과는 달리, 디스크 장애 시 일부 복구 가능(최대 50%) |
스토리지 종류
종류 | 설명 |
DAS(Direct Attached Storage) | 직접 연결한 스토리지 서버와 클라이언트가 전용 케이블로 연결한 스토리지 전송 속도가 빠르고, 스토리지와 연결된 서버에서 개별적인 파일 시스템을 사용해 관리 |
NAS(Network Attached Storage) | 데이터 공유를 위한 파일 서버 용도로 주로 사용되며 파일 스토리지라고도 불림 스토리지 전용 OS로 데이터를 관리하는 독립적 다기능 스토리지 NAS 자체가 메인보드, CPU, RAM, 스토리지를 갖춘 하나의 서버 역할을 수행하기에 파일 공유 뿐만 아니라 다양한 서버 용도로 사용할 수 있음(멀티미디어 파일 재생, 웹사이트 운영 등) 스토리지가 하나의 네트워크 공유 드라이브로 독립적으로 동작 클라이언트가 데이터에 접근하기 위해서는 반드시 네트워크 스위치를 거쳐 NAS에 접근해야 하기에 DAS보다 데이터 전송 속도가 느림 서버 역시 데이터에 접근하기 위해서는 반드시 네트워크 스위치를 거쳐 NAS에 접근해야 하기에 DAS보다 데이터 전송 속도가 느림 클라이언트가 서버에서 구동되는 애플리케이션의 데이터에 접근할 경우, 서버는 네트워크 스위치를 통해 NAS에 접근해서 데이터를 찾아 클라이언트에게 전달함 |
SAN(Storage Area Network) | 대용량의 데이터를 네트워크를 통해 빠른 속도로 전송할 수 있는 고성능 스토리지 일반적인 이더넷 네트워크(UTP 케이블, LAN)가 아닌 FC(Fiber Channel 광케이블)을 사용해 SAN으로 연결하며, 고성능을 요구하는 시스템의 전용 스토리지로 사용 스토리지 단독으로는 데이터 저장만 가능하며 읽기/쓰기 작업을 할 수 없음 반드시 서버와 연결해야 읽기/쓰기 작업이 가능한 서버 종속성 스토리지로 블록 스토리지라고도 불림 마치 PC에 디스크를 하나 더 꽂은 것처럼, 블록 스토리지가 서버의 자체 디스크처럼 동작 클라이언트에서 스토리지에 데이터를 읽거나 쓰기 위해서는 반드시 서버가 필요(서버 종속성 스토리지) FC 네트워크는 이더넷 네트워크보다 성능이 뛰어남 -> NAS보다 데이터 전송 속도가 빠름 이더넷 스위치 성능 1Gbps, 10Gbps vs SAN 스위치 성능 8Gbps, 16Gbps, 32Gbps |
스토리지 유형
스토리지 유형 | 설명 |
파일 스토리지 | 데이터를 파일과 폴더로 이루어진 계층 구조에 저장 전통적인 방식, 오랫동안 사용되어 온 익숙한 방식으로 꾸준히 발전해 옴 데이터 양이 늘어날 수록 성능이 떨어짐 활용 사례 : NAS |
블록 스토리지 | 데이터를 일정한 크기의 블록으로 나눠서 분산 저장 블록은 독립적으로 존재하여 파티션 분할 가능, 다른 OS에 접근 가능, 대규모 트랜잭션이 필요한 환경에 주로 활용 비용이 많이 들고 메타데이터 처리에 한계가 있어 비정형 데이터 처리에 불리 활용 사례 : SA |
오브젝트 스토리 | 오브젝트라는 개별 데이터 단위(객체)로 분산 저장 오브젝트에 메타데이터가 포함되어 있어 신속한 검색 가능, 비정형 데이터 저장에 알맞음, 퍼블릭 클라우드에서 주로 활용 오브젝트 수정이 불가능해 잦은 수정이 필요한 정형 데이터는 맞지 않음 활용 사례 : AWS S3 |
데이터 유형
데이터 유형 | 설명 |
정형(Structured) 데이터 | 미리 정해 놓은 형식과 구조에 따라 고정된 필드에 저장된 텍스트 형태의 데이터 |
비정형(Unstructured) 데이터 | 식별 가능한, 미리 정의된 구조가 없는 사진, 음성, 동영상, PDF파일 등의 데이터 |
2. 백업 개념 및 종류
백업(Backup) : 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구(Recovery)할 수 있도록 준비해 두는 것
백업 하드웨어: 백업을 위한 전용 스토리지
백업 종류 | 설명 |
Full Backup | 백업 주기 마다 데이터 전체를 백업 |
Incremental Backup | 첫째 날에 데이터 전체를 백업하고, 그 다음부터는 증가된 데이터만 백업 |
스냅샷 | Snapshot, 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술 |
Copy-on-write 스냅샷 | 쓰기(Write) 작업 발생 시 복제(Copy) 후 해당 복제본 새로운 공간에 덮어씀 데이터가 변경될 때 한번 복제 후 데이터 쓰기 수행 |
[4. 데이터베이스]
1. 데이터베이스 개념 및 주요 용어
데이터베이스 개념 | 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음 |
DBMS | Database Management System, 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어 |
관계형 DBMS | Relational DBMS, RDBMS / 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐 |
SQL | Structured Query Language / 구조적 데이터 질의 언어, 데이터베이스에서 데이터를 조회하기 위한 언어 |
데이터베이스 주요 용어: OLTP, DW, DM, OLAP
데이터 베이스 주요 용어 | 설명 |
OLTP | Online Transaction Processing 온라인 트랜잭션(거래) 처리 |
DW | Data Warehouse 거대한 데이터 저장소 |
Data Mart | 용도별로 구분하여 저장한 데이터 저장소 |
OLAP | Online Analytical Processing 온라인 분석 처리 |
2. 오픈소스 DB vs 상용 DB
오픈 소스 DB: MySQL, PostgreSQL, MariaDB
상용 DB: ORACLE, MS SQLServer, IBM DB2
NoSQL | 대용량 데이터를 분산 처리하기 위한, SQL이 아닌 또 다른 기술을 채택한 오픈소스 데이터베이스 |
DB IDE | IDE(Integrated Development Environment), DB 엔지니어, DBA, 개발자가 사용하는 DB 개발 도구 |
상용 DB IDE | GUI 지원, 다중 DB 지원, Query 자동완성, 관리자를 위한 기본 모니터링 도구 제공 |
[5. 온프레미스]
1. 온프레미스 개념과 3 Tier 아키텍처
온프레미스 | 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터 |
3 Tier 아키텍처 | 애플리케이션 운영 환경이 컴퓨팅(서버), 네트워크, 스토리지로 구성된 전통적인 아키텍처 |
2. 가상화 기술: 서버, 데스크탑, 네트워크, 스토리지
가상화 | Virtualization, 물리적인 하드웨어가 보유한 자원 효율성을 향상시키기 위해 사용하는 기술 |
대표적인 가상화 기술 | 서버 가상화, 데스크탑 가상화, 네트워크 가상화, 스토리지 가상화 |
대표적인 가상화 기술 종류 | 설명 |
서버 가상화 | 하이퍼바이저(Hypervisor)를 통해 가상머신을 생성, 여러개의 OS를 운영하는 기술 |
데스크탑 가상화 | 데이터는 서버에 저장하고, 서버에서 클라이언트에 업무 환경만 제공해 주는 기술 |
네트워크 가상화 | 다수의 물리적 네트워크를 하나의 가상 네트워크로 구성해 사용하는 기술 |
스토리지 가상화 | 물리서버의 디스크와 스토리지를 하나의 가상 스토리지 풀로 묶어 사용하는 기술 |
HCI | Hyper Converged Infrastructure / 컴퓨팅, 스토리지, 네트워크를 가상화시켜 단일 시스템으로 운영 HCI는 기존 3-Tier 대비 병목 구간을 제거하여 자원 확장 시 성능이 선형적으로 늘어남 |
SDDC | 가상화 : Software Defined Data Center, 데이터 센터 구성 요소의 모든 것을 소프트웨어로 통합 관리 SDC + SDS + SDN + Management Platform 4가지가 모두 포함되어야 진정한 SDDC라고 할 수 있음 |
[6. 클라우드]
1. 클라우드 개념 및 종류
클라우드 | IT인프라 자원을 직접 보유해서 사용하는 것이 아닌, 다른 기업의 IT인프라 자원을 빌려서 쓰는 것 |
클라우드 비용 | 자원을 빌려 쓴 것 만큼의 사용료를 월 과금 형태로 지불 |
클라우드 종류1 : 호스팅/코로케이션/클라우드
호스팅 | 코로케이션 | 클라우드 | |
개념 | IDC의 특정 서버 자원을 빌려 씀 | IDC의 특정 서버 자체를 빌려 씀 | IDC의 특정 서버 자원 혹은 서버 자체를 빌려 쓸 수 있 고, 이 두가지 혼합도 가능 |
특징 | 자원 변경(확장 혹은 축소) 시 OS 설치 등 세팅 시간이 필요함, 빠른 대응이 어려움 | 자원 변경(확장 혹은 축소) 시 유연하게 원하는 만큼 빠르게 변경 가능 → Elastic하다는 것이 특징 |
클라우드 종류2: IaaS / PaaS / SaaS
종류 | 설명 |
IaaS | Infra as a Service / IT인프라 자원 전체를 빌려다 씀, OS 및 각종 소프트웨어 설치 필요 AWS, Azure, GCP, NCP, KT Cloud, NHN Cloud 등 |
PaaS | Platform as a Service / 이미 설치된 OS(플랫폼)을 빌려다 씀, 애플리케이션 설치 필요 AWS Elastic Beanstalk, Azure SQL DB, Google BigQuery 등 |
SaaS | Software as a Service / 소프트웨어를 빌려다 씀 Microsoft 365, Google Workspace, Adobe CC, Zoom, Groupware 등 |
2. 클라우드 형태
클라우드 형태 | 설명 |
온프레미스 | 기업이 직접 IT인프라를 운영 |
퍼블릭 클라우드 | 다른 기업의 IT인프라를 빌려다 씀 |
프라이빗 클라우드 | 기업이 보유한 IT인프라를 클라우드 서비스처럼 기업 내에서 활용 |
하이브리드 클라우드 | 프라이빗 클라우드 + 퍼블릭 클라우드 |
멀티 클라우드 | 퍼블릭 클라우드 + 퍼블릭 클라우드 |
3. 개발자가 알아야 할 클라우드 기술 및 용어
컨테이너 | Container, 리눅스 기반 애플리케이션 운영을 위한 프로세스 격리 기술 |
컨테이너 런타임 | Container Runtime, 컨테이너를 다루는 도구 |
도커 | Docker, 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트 |
컨테이너 vs 가상머신 | 컨테이너는 앱 별로 가상화 vs VM은 OS 별로 가상화 |
쿠버네티스 | 다수의 컨테이너를 효율적으로 운영, 관리하기 위한 도구 구글이 오픈소스로 공개, 현재 기업 환경에 맞는 유료 쿠버네티스 서비스가 다수 존재(EKS, AKS, GKE 등) |
파드(Pod) | 앱이 운영되는 컨테이너들의 모음, 그룹 |
노드(Node) | 파드가 운영되는 물리 서버 또는 가상 머신, 워커 노드라고 부름 |
클러스터(Cluster) | 노드들의 집합 |
마스터(Master) | 다수의 워커 노드들 및 그 하위의 파드와 컨테이너를 관리하는 노드 |
====================================
개발자가 알아야 할 IT 인프라 운영 및 관리 기술
=====================================
[1. 개발 모델 및 방법론]
1. 개발 모델
모놀리식 아키텍처 | 애플리케이션 계획, 설계, 개발, 테스트, 배포 모든 과정을 한번에 수행하는 모델 |
마이크로서비스 아키텍처 | 애플리케이션의 각 요소(기능) 별로 계획, 설계, 개발, 테스트, 배포하는 모델 |
2. 개발 방법론
워터폴 | 요구사항 정의 -> 디자인 -> 개발 -> 테스트 -> 배포 과정이 순차적으로 진행됨 |
애자일 | 변화하는 고객의 요구 사항에 빠르게 대응하기 위한 민첩한(agile) 개발 방식으로, 작은 단위 별로 디자인 -> 개발 -> 테스트 과정을 반복 |
데브옵스(DevOps) | 개발 및 테스트부터 배포 및 운영까지의 업무를 통합해서 앱 개발 및 배포 속도를 높이려는 접근방식 |
CI/CD | Continuous Integration / Continuous Delivery, Deployment(연속적인 통합 / 연속적인 배포) 애플리케이션 개발 및 배포 단계를 자동화하여 보다 짧은 주기로 빠르게 애플리케이션을 제공하는 방법론 |
DevOps, CI/CD를 지원하는 대표적인 클라우드 서비스
No Code | 코딩 경험이 전혀 없는 사람을 위한 개발 접근 방식, 코딩을 완전히 건너뛰고 GUI 환경에서 앱 개발 가능 |
Low Code | No Code와 동일하게 GUI를 활용하나 커스텀 코딩 가능, 좀 더 수준이 높음, 개발자 대상 |
대표적인 No Code, Low Code 서비스
시민 개발자(Citizen Developer) | 개발자가 아니지만 업무용 소프트웨어를 직접 개발하는 임직원 |
[8. 앱 운영 관련 기술]
고가용성(HA, Hight Availability)
서버 하드웨어 구성요소 | 다양한 부품이 서로 유기적으로 연결되어 있음 |
서버 하드웨어 장애 | 서버의 모든 요소 마다 장애가 발생할 수 있음 |
서버 소프트웨어 구성요소 | OS, OS 기본 프로그램, 다양한 애플리케이션이 함께 동작함 |
서버 소프트웨어 장애 | OS 자체 버그, 보안 취약점, 애플리케이션 문제 등으로 인한 장애가 발생할 수 있음 |
SPOF(Single Point of Failure) | 단일 장애 지점, 장애가 발생하면 전체 시스템이 다운되는 지점 |
고가용성(HA, High Availability) | 시스템이 긴 시간동안 장애 없이 안정적으로 운영되도록 취하는 조치 |
이중화 | 서비스의 안정성을 위해 각종 자원(하드웨어, OS, 미들웨어, DB 등)을 이중 혹은 그 이상으로 구성하는 기술 각 요소 별로 이중화 하는 방법이 다르며, 2대로 이중화 한다 하더라도 장애 발상 가능성을 완벽하게 배제하기 어려움 두 서버를 모두 운영해야 하기에 비용 증가, 자원 낭비라는 단점이 있음 |
클러스터링 | 여러 대의 컴퓨터를 병렬로 연결한 시스템으로, 여러 대의 서버를 가상의 하나의 서버처럼 사용하는 기술 |
Failover | 실패(Fail)를 끝냄(Over), 장애 대비 기능, 실제 운영 시스템에 이상이 생겼을 때 예비 시스템으로 자동 전환 |
Failback | 실패(Fail)상태에서 정상으로 되돌림(Back), 실제 운영 시스템을 장애 발생 전 단계로 전환 |
모니터링(Monitoring)
모니터링 | 지속적인 감시, 감찰을 통해 대상의 상태나 가용성,변화 등을 확인하고 대비하는 것 시스템의 상태나 상황에 문제가 발생하면, 즉각 관리자에게 알림을 보내 빠르게 대처할 수 있도록 도와줌 |
서버 모니터링 | 서버 하드웨어 자원 보유 현황, 상태, 자원 사용 현황을 지표로 보여줌 |
애플리케이션 모니터링 | JAVA 애플리케이션의 사용자 수, 자원 사용 현황, 트랜잭션 상태 등을 지표로 보여줌 APM : Application Performance Monitoring 애플리케이션의 트랜잭션 상세보기를 통해 서버에서 처리된 시간, SQL 처리 시간, 쿼리 정보 등을 확인 가능 이 정보를 통해 애플리케이션 성능 분석 및 튜닝을 할 수 있 |
DBMS 모니터링 | 데이터베이스 성능을 향상 최상의 상태로 유지할 수 있도록 도와줌 |
네트워크 모니터링 | 네트워크의 전반적인 상태를 분석해 안정적인 네트워크를 제공할 수 있도록 도와줌 |
클라우드 모니터링 | 클라우드 자원 사용 현황 및 운영하는 애플리케이션 상태를 보여줌 클라우드 비용 모니터링 플랫폼 : 자원 사용량에 따라 과금되는 클라우드 서비스 비용을 상세히 보여줌 하나의 클라우드 뿐만 아니라 다수의 클라우드 사용 현황을 단일 화면에서 모니터링하고 관리할 수 있음 |
클라우드 비용 모니터링 플랫폼 | 자원 사용량에 따라 과금되는 클라우드 서비스 비용을 상세히 보여줌 • 비용 정보를 보여주는 것에 그치지 않고, 비용 최적화 방안 및 이상 비용을 탐지해서 알려줌 |
옵저버빌리티(Observability) | 관측가능성 혹은 관측능력, 전통적인 모니터링이 가진 한계를 극복한 가시성 확보 방안 옵저버빌리티가 필요한 이유 : 기존의 전통적인 포인트 모니터링 환경이 너무 복잡해짐 |
기존 모니터링과 옵저버빌리티의 차이
: 모니터링은 무엇이 잘못되었는지를 알려주지만 옵저버빌리티는 잘못된 이유를 이해할 수 있도록 함, 알려지지 않고 모르고 있던 문제를 빠르게 탐지, 조사, 해결하는데 도움을 줌
자동화(Automation)
자동화(Automation) | 정보 기술 서비스 및 솔루션을 제공하는 데 사용되는 하드웨어, 소프트웨어, 네트워킹 구성 요소, 운영 체제(OS), 데이터 스토리지 구성 요소를 제어하기 위해 사람의 개입을 줄이면서 임무를 수행하는 기술을 사용하는 것 |
IaC(Infra as a Code) | 개발자가 직접 코드를 만들어 IT인프라를 생성, 배치, 관리하는 기술 IaC를 통해 반복적인 작업을 코드로 처리함으로써 업무시간을 획기적으로 단축시키고 오류 사전 방지 가능 |
업무 구성 | Playbook이라는 템플릿을 제공해 어떤 업무를 자동화할 것인지 손쉽게 구성 가능 |
Job 워크플로우 생성 | 업무 Playbook을 구한 다음, 구체적으로 어떻게 실행될 것인지 워크플로우 생성 |
AIOps | AI + Ops(Operations), IT 운영의 자동화 및 관리를 위해 빅데이터 분석에 머신러닝을 적용하는 것 |
[9. 보안 관련 기술]
1. 엔드포인트 보안
악성코드(Malware) 종류 | 설명 |
바이러스(Virus) | 스스로 복제하여 컴퓨터를 감염시키는 프로그램 컴퓨터를 물리적으로 파괴하지 않으며 하드웨어 오작동을 유발하여 간접적으로 손상을 입힘 독립실행이 불가능하기 때문에 스스로를 복제 하여 다른 파일들을 감염시킴 |
웜(Worm) | 스스로 복제하는 것을 넘어 복제본을 네트워크를 토애 다른 컴퓨터로전파시키는 악성 프로그램 독립실행이 가능하며 네트워크 손상 유발 및 파일 암호화, 추가적인 악성프로그램 유포 |
트로이목마(Trojan) | 정상적인 프로그램으로 위장한 악성 프로그램 메모리에 상주하여 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램 메일, P2P, 파일 다운로드 등 간접경로로 전파됨 |
랜섬웨어(Ransomware) | 사용자 동의 없이 컴퓨터에 설치하고 무단으로 데이터를 암호화시켜 인질로 잡은 뒤 금품을 요구하는 악성 프로그램 웜의 특성도 가지고 있어 전파속도가 매우 빠르며 금품을 비트코인으로 요구하기 시작하면서 2015년 이후 기승 Crypt, Cerber, Magniber, Locker, Wannacry 등 아직도 해결되지 못한 다수의 랜섬웨어가 존 |
국내 대표 보안사고 사례
소프트웨어
Endpoint | 기업 네트워크에 연결된 최종 단계의 기기 / PC, 노트북, 스마트폰, 태블릿 등 |
AV(Anti Virus) | 컴퓨터의 악성코드를 찾아내고 치료, 방어하기 위한 소프트웨어 |
EDR(Endpoint Detection and Response) | AV에서 진화된 보안 솔루션, 악성코드를 실시간으로 감지하고 분석 및 대응해서 피해확산을 막는 솔루션 |
2. 네트워크 보안
방화벽(Firewall) | 네트워크 상의 패킷을 모니터링하고 허용되지 않은 접근은 차단하는 보안 장비 |
IDS/IPS (Intrusion Detection System / Intrusion Preventing System) |
네트워크 침입 탐지 및 방지 시스템 |
UTM(Unified Threat Management) | 방화벽, 침입탐지 및 방지, VPN, AV, 필터링 등 다양한 보안기능을 제공하는 통합위협관리 솔루션 |
NAC(Network Access Control) | 유무선 환경에서 내부 네트워크망으로 접근하는 다양한 단말기기를 통제하기 위한 보안 솔루션 |
3. 접근제어
DB 접근제어 | 보안을 위해 데이터베이스 접근을 통제하고 관리하는 솔루션 |
데이터 거버넌스 | 데이터의 보안, 개인정보 보호, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업 |
RBAC (Role-Based Access Control) |
권한이 있는 사용자들에게 한해 시스템 접속을 허용하는 접근제어 방법 |
4. IAM
IAM (Identity and Access Management) |
기업에서 오직 적합한 사람과 디바이스만 필요할 때 원하는 애플리케이션과 리소스 및 시스템에 접근할 수 있도록 허용하는 구조 |
IAM이 필요한 이유
1. 기업의 데이터를 안전하게 보호하기 위해
2. IT관리자의 업무 부담을 줄이고 실수를 방지하기 위해
3. 다수의 SaaS 및 서비스를 사용하는 사용자의 생산성 향상을 위해
IAM의 발전 방향
고객 Identity 관리 발전 방향 | 사용자가 직접 관리 -> 디바이스 별로 개별 관리 -> IAM 플랫폼으로 통합 관리 |
기업 Identity 관리 발전 방향 | 사용자가 직접 관리 -> 서비스 별로 개별 관리 -> IAM 플랫폼으로 통합 관 |
5. Zero Trust
Zero Trust | 신뢰가 없다, 아무도 믿지 않는다 라는 컨셉의 보안 모델 사용자 및 기기가 네트워크나 데이터에 접근할 때 기업에서 요구하는 보안 검증을 통과하기 전까지는 접속을 허용하지 않음 |
Zero Trust 필요성 | IT인프라 보안 환경이 너무 복잡해 짐, 관리 포인트가 너무 많아진 것이 가장 큰 원인 • 사용자 기기 증가, 다양한 접속 위치 및 시간대, 한번 관문을 통과하면 어떤 작업도 허용하는 전통적인 보안 방식의 한계 |
기존 보안 모델 vs Zero Trust 보안 모델
Zero Trust 보안 모델 구현을 위한 5가지 원칙
번외: 클라우드를 사용하는데, 보안을 챙겨야 할 필요가 있나요?
• 클라우드를 사용해도 보안에 신경을 써야 하는 이유 : 클라우드 책임공유모델
:내가 이해한 내용: 문제가 생겼을 때 누구한테 책임질 사람 정하기ㅎ
[4. 자주 발생하는 IT 인프라 장애 유형 및 대처 방안]
1. 404 Not Found
404 Not Found | ‘웹페이지를 표시할 수 없습니다’라는 뜻의 장애 서버 자체는 존재하나 해당 서버에 클라이언트가 요청한 데이터가 없을 때 나타남, 잘못된 정보를 요청해서 보여줄 게 없음 |
404 Not Found 발생 시 대처 방안 | 1. 호스팅하고 있는 서비스의 DNS 정보가 변경되었는지 확인 필요 2. DNS(도메인 네임서버) 및 URL 구성 확인 온프레미스 IT 인프라에서는 서버 관리자 메뉴에서 DNS 설정 변경 클라우드에서는 IP설정 관리자 메뉴에서 DNS 설정 변경 |
DNS | Domain Name Server |
2. 503 Service Temporarily Unavaliable
503 Service Temporarily Unavailable | “서비스를 일시적으로 이용할 수 없습니다"라는 뜻의 장애 서버에 있는 데이터에는 문제가 없으나 서버 과부하로 인해 서버의 데이터에 접속할 수 없는 상태 주로 웹서버가 몰려드는 트래픽을 감당하지 못해 발생하거나 웹서버와 WAS와의 설정 오류로 인해 발생 |
대처 방안 | 1. 웹서버 앞단에 로드밸런서를 두어 트래픽 분산 2. 웹서버와 애플리케이션 서버 사이의 설정 점검(통신 Port 번호 점검, host 주소 점검,Apache - Tomcat 사용시 AJP 프로토콜 점검) |
3. IT 인프라 장애유형 파악 프로세스
4. 주요 장애 원인 및 해결 방안 체크포인트
장애 상황 발생 시 커뮤니케이션 프로세스
에이블스쿨짱짱