서버 : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치
클라이언트 : 네트워크를 통하여 서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치
2-1) 서버의 종류
1) 웹 서버
- 정적 콘텐츠를 클라이언트에 전달
2) 웹 애플리케이션 서버
- 동적 콘텐츠를 클라이언트에 전달
3) DB 서버
- 애플리케이션의 정보를 저장해서 운영, 관리할 수 있는 데이터를 구동하는 서버
4) 리버스 프록시 서버
- 클라이언트의 요청을 처리할 수 있는 애플리케이션 서버 선택 후 전달
5) 캐시 서버
- 미리 데이터를 저장해 뒀다가 요청이 오면 데이터 전달
- 클라이언트의 요청을 수행하기 위해 다양한 서버들끼리 통신한 후 결과를 클라이언트에 전달
- Net + Work, 그물을 짜는 행위 -> 그물처럼 연결된 상태를 뜻함
- 회선 교환 방식 : 데이터를 교환하기 위해 1:1로 연결된 데이터 통로(회선)을 만들고 데이터 교환이 완료될 때까지 회선을 계속 사용하는 방식
- 연결된 동안 회선을 점유한다.
- 패킷 교환 방식 : 데이터를 패킷이라는 작은 단위로 나누고, 헤더라는 정보를 붙여 데이터를 교환하는 방식
- 헤더에는 송수신 포트번호, 패킷 순서 번호, 데이터 시작 위치, 한번에 전송할 수 있는 데이터의 양 등이 포함됨
- 필요한 만큼만 회선을 이용하며 같은 회선을 다른 사용자도 함께 사용할 수 있음. 패킷이 손상될 경우 데이터 전체를 다시 보내지 않고 손상된 패킷만 보내면 됨
- 계층 : 송신 기기과 수신 기기 사이에서 주고 받는 데이터는 각 계층 별로 처리됨
- 계층 별로 처리 : 한 계층에서 처리가 완료되면 임무를 다음 계층으로 전달
- 대표적인 2가지 계층 : TCP/IP 참조 모델, OSI 참조 모델
- TCP/IP 참조 모델 : 4계층으로 구성
- OSI 7 참조 모델 : 7계층으로 구성
- 업계에서 주로 사용하는 계층은 5계층 모델
- 네트워크 기기 : 계층 별로 존재하는 프로토콜에 따라 데이터를 전송하는 기기
- 각 계층 별로 동작하는 네트워크 기기가 다름
L1 네트워크 기기
- NIC : PC나 서버를 네트워크에 연결해주는 하드웨어
- PC나 서버의 슬롯에 장착형, USB 포트형, 메인보드의 슬롯에 장착하거나 온보드로 부착된 형태가 있음.
- 허브 : 전달받은 패킷의 복사본을 포트에 연결된 다른 모든 기기로 전송
- 연결된 기기들이 네트워크 대역폭을 나눠서 쓰기 때문에 데이터 전송 성능이 떨어짐
AP(Access Point) : 패킷을 전파로 바꿔서 송출하는 기기, 무선과 유선 사이의 다리 역할
- 무선 WIFI 네트워크 환경에 반드시 필요한 네트워크 기기(공유기)
L2 네트워크 기기
- MAC address(Media Access Control Address) : 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC에 내장되어 있음. 그 기기 만의 고유 번호, 식별번호 등 기기를 구분하기 위한 주소로 사용
이더넷 : 네트워크 환경에서 데이터를 주고 받기 위한 가장 대표적인 기술 규격
- UTP 케이블로 단말기와 네트워크 기기를 연결
- L2 스위치 : 단말기가 보낸 패킷의 헤더에 있는 MAC Address를 보고 같은 네트워크의 다른 단말기로 패킷을 전송, 이더넷 규격을 사용하기에 이더넷 스위치라고 부름.
L3 네트워크 기기
- IP Address : 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를 전송하기 위해 사용하는 논리적 주소로 OS상에서 설정한 주소
- Public IP Address : 공인 IP 주소, 네트워크와 외부의 네트워크가 통신하기 위해 사용(아파트 이름)
- Private IP Address : 사설 IP 주소, 같은 네트워크 안에서 통신하기 위해 사용(아파트 동 호수)
- 라우터 : 단말기가 보낸 패킷의 헤더에 있는 IP 주소를 보고 다른 네트워크의 다른 단말기로 패킷을 전송(라우팅)
L4 네트워크 기기
- L4 스위치 : IP 주소와 포트 번호를 참조하여 트래픽을 분산해 서버로 전송하는 로드 밸런싱 기기
- 로드 밸런싱 : 들어오는 트래픽을 둘 이상의 서버로 분산해서 전송하여 부하를 분산하는 것
- 트래픽 : 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
- 방화벽 : IP주소와 포트 번호를 참조하여 통신을 허가하거나 차단하는 기기
- 미리 정의된 보안 규칙에 따라 들어오고 나가는 트래픽을 제어할 수 있음
- 수행할 작업(IP와 포트번호 참조)과 다른 통신 차단
L7 네트워크 기기
- L7 스위치 : IP주소와 포트 번호 + 애플리케이션 콘텐츠 정보들을 참조해서 로드 밸런싱하는 기기
- 애플리케이션 콘텐츠 정보 : URL, 파일명, 콘텐츠의 문자열 등
- 웹방화벽(Web Application Firewall) : 웹 애플리케이션 서버를 안전하게 보호하는 기기
- 클라이언트와 서버 사이에서 교환되는 데이터를 애플리케이션 레벨에서 상세히 검사하고 조치함
- 블랙리스트, 화이트리스트, 웹 트래픽 분산 등 다양한 보안 기능 제공
- 블랙리스트 : 리스트에 있는 IP를 제외하고 모두 통신 허용
- 화이트리스트 : 리스트에 있는 IP만 통신 허용
- LAN(Local Area Network) : 근거리통신망, 가정이나 기업 내부등 한정된 범위의 네트워크
- 클라이언트 기기와 L2 스위치로 구성
- WAN : 원거리 통신망, 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결
- 인터넷 : 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 International Network
- LAN 환경에 L3 스위치를 추가해서 구성
- VPN : 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술
- 특정 네트워크들만을 위한 전용 WAN으로 Peer to Peer, 1:1로 연결하고 이 구간의 통신은 암호화함
- 기업 본사 LAN과 지사 LAN을 연결할 때 인터넷을 거치지 않고 이 두 네트워크만의 전용 WAN을 VPN으로 구성
- DMZ : 비무장지대, 외부 네트워크(외부망)와 내부 네트워크(내부망)의 중간 지점
- 내부망에는 존재하나 외부망에서 접근할 수 없는 영역
- 일반적인 LAN, WAN, DMZ 구성도
- 스토리지 : 저장장치를 다수 장착한 대용량 고속 저장 장비로 서버 및 클라이언트와 네트워크로 연결해서 사용
- 스토리지는 데이터 저장 뿐만 아니라 데이터 공유 목적으로 주로 사용됨
- 서버에 장착된 디스크 용량이 부족할 경우, 다수의 사람들과 데이터를 공유할 필요가 있을 경우 스토리지를 활용
- 데이터 관리 및 보호를 위한 별도의 소프트웨어 탑재
- 저장장치 : 컴퓨터의 데이터를 저장하기 위한 비 휘발성의 기억 장치
- 스토리지 데이터 저장 방식: RAID, Redundant Array of Independent Disk
- 여러 개의 디스크 중 일부에 데이터를 중복 저장하는 기술
- 여러 개의 디스크를 하나의 디스크 모듈로 사용, 디스크 읽기/쓰기 성능 향상, 장애 발생 시 원활한 복구를 위해 사용
- 대표적인 RAID 방식 #1 : RAID 0, RAID 1
- RAID 0 : 데이터를 여러 디스크에 분산 저장하여 하나의 디스크처럼 사용, 성능이 좋지만 장애 시 데이터는 모두 손실
- RAID 1 : 데이터를 다른 디스크에 동일하게 중복 저장, 최소 2개의 디스크 필요 = 필요한 용량의 2배 준비, 장애 대비에 유리하나 비용이 비쌈.
- 대표적인 RAID 방식 #2 : RAID 5, RAID 6
- RAID 5 : 디스크에 패러티 정보를 저장해 장애시 패러티를 토대로 복구할 수 있음, 일정수준의 성능과 안정성 확보
- RAID 6 : RAID 5 방식에 패러티를 하나 더 추가하여 안정성을 더욱 향상시킨 방법
- 대표적인 RAID 방식 #3 : RAID 1+0
- RAID 1+0 : RAID 0의 높은 성능과 RAID 1의 뛰어난 안정성을 합친 형태
- 백업(Backup) : 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구(Recovery)할 수 있도록 준비해 두는 것
- Full Backup : 백업 주기 마다 데이터 전체를 백업
- Incremental Backup : 첫째 날에 데이터 전체를 백업하고, 그 다음부터는 증가된 데이터만 백업
- 스냅샷 : Snapshot, 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
- Copy-on-write 스냅샷 : 쓰기(Write) 작업 발생 시 복제(Copy) 후 해당 복제본을 새로운 공간에 덮어씀
- Redirect-on-write 스냅샷 : 쓰기(Write) 작업 발생 시 새로운 공간으로 쓰기 위치를 재지정(Redirect)
- 데이터베이스 : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합. 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음.
- DBMS :Database Management System, 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어
- 관계형DBMS : Relational DBMS, RDBMS / 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐
1) 온프레미스 개념과 3 Tier 아키텍처
- 온프레미스 : 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터
- 3 Tier 아키텍처: 애플리케이션 운영 환경이 컴퓨팅(서버), 네트워크, 스토리지로 구성된 전통적인 아키텍처
- 클라우드 : IT 인프라 자원을 직접 보유해서 사용하는 것이 아닌, 다른 기업의 IT 인프라 자원을 빌려서 쓰는 것
- 클라우드 비용 : 자원을 빌려 쓴 것 만큼의 사용료를 월 과금 형태로 지불
- IaaS : Infra as a Service / IT인프라 자원 전체를 빌려다 씀, OS 및 각종 소프트웨어 설치 필요
- PaaS : Platform as a Service / 이미 설치된 OS(플랫폼)을 빌려다씀, 애플리케이션 설치 필요
- SaaS : Software as a Service / 소프트웨어를 빌려다씀
- 온프레미스 : 기업이 직접 IT인프라를 운영
- 퍼블릭 클라우드 : 다른 기업의 IT인프라를 빌려다 씀
- 프라이빗 클라우드 : 기업이 보유한 IT 인프라를 클라우드 서비스처럼 기업 내에서 활용
- 컨테이너 : 리눅스 기반 애플리케이션 운영을 위한 프로세스 격리 기술
- 컨테이너 런타임 : 컨테이너를 다루는 도구
- 도커 : 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트
컨테이너 vs 가상 머신 : 컨테이너는 앱 별로 가상화 VS VM은 OS 별로 가상화
쿠버네티스 : 다수의 컨테이너를 효율적으로 운영, 관리하기 위한 도구