0부터 시작하는 Linux 공부 - 서버 돌아보기

Jaehong Lee·2022년 7월 22일
0
post-thumbnail

1. 웹 서버와 외부 사용자

  • 물리 자원에 접근할 때는 SHELL을 통해 KERNEL에 요청하여, KERNEL 에서 해당 기능에 대한 코드가 있다면, 요청을 수락하고, 물리 자원에 접근하여, 요청한 기능을 수행해준다
  • 외부 사용자는 웹 서비스로만 접근이 가능하며, 아래의 OS / 애플리케이션 요소에는 접근 불가 하다
  • TCP는 3 HAND SHAKE 를 통해 세션을 형성하며, 4 HAND SHAKE 를 통해 세션을 종료한다
  • HTTP는 STATELESS 다
  • IP 는 BEST EFFORT 다. 최선을 다하지만, 보장은 하지 않는다. 따라서 통신시 TCP 를 같이 사용하여 이를 보완한다
  • BANDWIDTH 은 큰데, 서버의 Throughput ( 처리량 ) 이 적을 때, Scaling 을 한다. Scale up 은 서버의 성능을 증가시키며, Scale out 은 서버를 늘린다. 클라우드에서는 주로, Scale out 을 사용한다
    • STATEFUL PACKET INSPECTION ? 상태 기반 검사 방식으로 패킷 필터링(Packet Filtering) 방식과 어플리케이션 게이트웨이(Application Gateway) 방식의 완벽한 방화벽 기능을 수행하지 못하고, 속도가 저하되는 등의 여러 가지 단점을 극복하고 장정만을 구현한 새로운 개념의 방화벽 방식이다. 네트워크 계층(Network Layer)에서 패킷을 처리하면서도 프로토콜의 상태정보 테이블을 유지하여, 프로토콜 특성에 따른 변화를 동적으로 대응해 주는 기능으로 최근 거의 모든 방화벽 시스템에서 사용

2. Storage 와 FT

  • 로컬 스토리지가 아닌, 외부 스토리지와 MOUNT 하여, 사용자가 어느 서버에 접근하든, 자신의 정보를 확인할 수 있게 한다
  • 스토리지에 이상이 생길 경우, DATA 가 사라질 수 있기에, 우리는 FT 를 허용해줘야 한다. 이렇게 FT 를 허용하고, 다수의 Disk 를 묶는 기술에는 RAID 가 있다

3. 백업 과 Cluster

  • 클라우드에서는 백업 센터를 두고, 떨어져 있는 디스크를 pool로 묶어서 마치 하나의 디스크 처럼 사용할 수 있게 하여 분산 처리가 가능하게 해주는 Cluster 를 해야 한다
  • DB 는 로컬 백업 DB 혹은 클라우드의 백업 DB 와 연결하여, sync 를 시켜서 안에 저장된 DATA가 동일하게 해줘야 한다
  • DB 역시 떨어져 있는 ZONE 의 DB와 pool 로 묶어서 사용하는 DB Cluster 가 가능하다

4. LB ( 로드 밸런서 ) 와 Proxy

  • 로드 밸런서 ( 부하 분산기 ) 는 L4 / L7 에서 작동한다
    • L4 는 TCP / UDP 와 같은 PORT 를 확인하고, 부하 분산 한다 ( NLB )
    • L7 은 URL 을 확인하고, 부하 분산 한다 ( ALB )

  • 두 서버는 하나의 공유 스토리지에 연결되어 공유 스토리지의 index.html 파일을 가져오기에, 로드 밸런서가 각 사용자들 다른 서버에 접속하게 해도, 동일한 index.html 을 제공해준다

  • 로드 밸런서에는 proxy 기능이 있다. 따라서 이 proxy 가 대신 전달을 해주므로, 서버와 DB 는 외부와 직접 접속을 하지 않아도 된다
  • 사용자는 로드 밸런서에만 접근하면 되고, 로드 밸런서에서 proxy 가 대신 웹서버에 접근하여 요청을 전달하고, 요청에 대한 결과를 받아와서 전달해준다
  • 반대로, 내부의 요청도 proxy 가 대신 전달해준다
  • proxy를 통해 전송시간도 절약할 수 있음은 물론 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점이 있으며, 서버 내부의 정보를 숨길 수 있는 보안적 장점도 있다

5. Cloud 는 가상화다?

  • 아니다. 물리 자원을 제공해 주는 것 도 Cloud 이다. 허나, Cloud 는 가상화를 포함해야 효율성을 극대화 할 수 있다
    • 사용자는 on-demand 서비스를 필요로 한다 -> 가상화를 통해 해결
    • 동작중인 애플리케이션, 서버는 무중단 상태여야 한다 -> live migration 을 통해 해결
profile
멋진 엔지니어가 될 때까지

0개의 댓글