[GCP] Cloud 개요: 시스템 운영

서경·2024년 9월 9일
post-thumbnail

시스템 운영

AI 모델 개발 후 접근 가능한 유저 인터페이스를 생성해야 한다.
유저 인터페이스와 AI 모델이 연결되게 해야 요청을 보내고 응답을 받을 수 있다.

예를들어, chatGPT에서도 질문을 입력하면 chatGPT AI 모델 서버로 전달이 된다.
내용을 통해 결과를 내고 그 결과는 다시 서버를 타고 우리 컴퓨터로 응답된다.

서버를 통해 요청을 보내고 받는 동작은 운영 환경에서 이뤄진다.
따라서, 클라이언트가 요청했을 때 응답할 수 있는 서버를 구성하는 infrastruture를 구성해야 한다.
시스템 운영의 기본은 네트워크이며, 단독형은 클라우드에서 사용하기 어렵다.






1. 시스템 구성 형태

1.1. 단독형 시스템 구성

단독형 시스템은 컴퓨터 또는 노트북 등이 될 수 있다.
단독형은 사용한 가능한 특정 일부에서만 사용하거나 나만 사용할 수 있다.

요즘에는 단독형 시스템을 거의 사용하지 않고 네트워크형이 사용된다.
하지만, 보안이 중요 시 되는 곳에서 사용할 수 있다.
예를 들어, 외부와 차단되어 자재 관리만 하는 공장 같은 곳에서 사용할 수 있다.


○ 네트워크에 연결되지 않는 시스템

○ 단독 시스템에 Application 실행 환경 구성



1.2. 네트워크형 시스템 구성

네트워크형 시스템은 Server와 Client로 구성되어있다.


○ 요청 정보에 대한 서비스 제공 역할의 Server 환경 구성

○ Server에 대한 네트워크 환경 구성



1.3. Server

요청 정보에 대한 처리(응답, response) 를 수행하는 컴퓨터 또는 프로그램, 항상 요청 대기 상태를 유지


서버의 예시로 1인 커피숍이 있다. 바리스타가 주문도 받고 음료를 만들면, 이 바리스타는 서버로 볼 수 있다. 고객이 주문할 때까지 대기하다가 주문 시 바리스타가 응답(역할)한다.

서버는 항상 요청 대기 상태이며, 사용자(Client) 요청 시 응답하고 다시 대기하는 과정을 반복한다.

개발이나 테스트를 구성한다는 것은 서버를 구성하는 것이다.



1.4. Client

Server에게 요청을 수행(요청, request) 하는 컴퓨터 또는 프로그램, 필요시에 Server에 연결하여 요청하거나 항상 Server에 연결 상태를 유지


클라이언트는 항상 서버에게 요청만 한다. 서버에 요청하면 서버는 클라이언트에게 응답하고 응답 결과로 나머지 처리를 한다.

서버 한 대가 백명의 클라이언트를 대응할 수도 있는데,
로드 밸런서(분산)을 사용하여 서버 세대로 백면의 클라이언트 요청을 대응할 수도 있다.

서버는 확장 가능성 품질을 유지하기 위해 단일 서버로 할 것인지 아니면 로드 밸런서를 이용한 다중서버를 할 것인지, 로드 밸런서 뒤에 오토 스케일을 붙일 것인지 고민할 수 있다.

클라이언트는 웹 서버를 제공하는 경우가 많아 웹 브라우저를 사용하는 경우가 많다.






2. 서비스 제공을 위한 시스템 구성 요소

2.1. Server 프로그램이 동작할 컴퓨터

다수의 client 접속시에도 제대로 동작할 수 있는 환경으로 구성



2.2. Server 프로그램 (백엔드 프로그램)

○ 서비스 유형에 따라 프로그램 결정

  1. 웹 서비스 - 웹 서버

  2. 데이터베이스 서비스 - 데이터베이스 서버

  3. 파일 서비스 - FTP 서버, 파일 서버

  4. 메일 서비스 - 메일(SMTP) 서버

  5. 기타 서비스 - 기타 서비스를 제공하는 Server 프로그램


서비스 제공 시 프론트엔드와 백엔드라는 2가지 유형이 필요하다.
프론트 엔드는 클라이언트 웹 브라우저 상에서 동작하는 프로그램이고
백엔드는 서버 환경에서 동작하고 클라이언트 요청에 의해 응답한다.

실제 서비스를 제공하기 위한 인프라, 서버 환경을 구성하고 백엔드 프로그램을 작성하게 된다.



2.3. 서비스 제공을 위한 기타 Server 프로그램

○ Transaction 처리

○ 로그 관리 - 관찰

○ 방화벽 - 보안



2.4. 네트워크 구성

○ 공용 네트워크

  • 인터넷에 연결된 네트워크
    서버 생성을 위해서는 네트워크에 연결되어야 한다.

서버를 만드려면 네트워크에 연결되어 있어야 함


○ 사설 네트워크

  • 인터넷에 연결되지 않은 네트워크






3. 계산기 프로그램 배포 시스템

3.1. 구성 요건

○ Web server 프로그램

Apache/NginX web server 프로그램


○ Web server 동작 컴퓨터

동시 접속 1000명까지 가능하게 구성


○ Web server 동작 네트워크 구성

단독으로 인터넷에 연결


○ 일반 Client 와 개발자 접속 방식

  • 일반 client 접속 domain

  • 개발자( 관리자 ) 접속 domain



3.2. 설계

구름 그림은 인터넷에 연결된 공용 네트워크를 표현한 것이다.
인터넷 연결이 되어있지 않다면 사설 네트워크가 된다.
클라이언트가 요청하면 인터넷에 연결된 공용 네트워크를 통해 웹 서버에서 응답하고 전달된다.


TIP!

서버를 구성하기 위해서는 서버가 설치되어야 하는 환경을 준비해야 한다.
이 환경에서는 하드웨어, 운영체제, 네트워크 설정 등이 포함된다.
요즘 애플리케이션과 웹 서비스는 웹 브라우저를 통해 접근되므로 웹 서버는 필수적으로 설치되어야 한다.

웹 브라우저는 사용자 인터페이스를 제공하고, 사용자가 입력한 URL을 통해 웹 서버에 요청을 보낸다.
웹 서버는 요청을 처리하고, 웹 페이지나 데이터를 반환하여 브라우저에 표시한다.
따라서, 웹 브라우저로 웹 페이지를 접속하려면 웹 서버가 필요하다.



3.3. 구축

○ Apache/NginX web server 프로그램 설치

○ 일반 user와 개발자용 domain 등록



3.4. 운영

○ 모니터링( monitoring )

○ 로그 정보 확인

0개의 댓글