본문 바로가기

Linux

[Linux & Windows] 가상머신을 이용한 서버 & 클라이언트 구축

공통

- Local PC: Windows 10 / Server PC: CentOS 6 / Client PC: Windows 10

 

- 가상머신 (Oracle VM VirtualBox)를 이용해 서버, 클라이언트로 이용할 각각의 호스트 생성

- 중요) 네트워크 설정시 "어댑터에 브리지" 선택 

- 기지국 DNS를 통해 클라이언트, 서버가 통신하므로 DNS 서버 주소는 같고, IP 주소는 달라야함

- 가상머신으로 호스트 생성시 호스트명은 식별하기 쉽도록 "IP주소-프로젝트명-Server 또는 Client-개발('test' 또는 '운영')"으로 작성

- 가상 호스트에 네트워크 연결

주의) 네트워크 연결시 "어댑터에 브리지" 선택
스냅샷을 설정해두면 이 기점으로 돌아갈 수 있어 매번 같은 작업을 하는 수고를 덜 수 있다.

 

- 소프트웨어 버전을 선택할 수 있는데, 그 중 최소설치 버전은 cmd / GNOME 데스크탑 버전은 GUI로 PC를 관리할 수 있다.

- 이때, GNOME 데스크탑 버전으로 설치시 java 파일이 자동으로 설치된다.

  (최소 설치시 java 파일이 자동으로 설치되지 않기 때문에 수동으로 명령어를 입력해 설치해야한다.)

- jdk 파일은 있지만 javac 파일이 없는데, intelliJ 구동시에는 javac 파일이 없어도 된다고 함


- 위의 과정을 통해 서버용, 클라이언트용 PC를 구축했다. 이때는 둘의 IP 주소가 달라야 한다고 했다.

  (두 사람이 전화 통화를 하려면 두 사람의 전화번호가 달라야하는 것과 같은 이치다.)

- 구축된 서버용 PC에 Web 서버, DB 서버를 각각 설치하는데

- 이때 Web 서버와 DB 서버는 같은 PC에 설치하므로 동일한 IP 주소를 공유하고 있다.

- Web 과 DB 는 서로 요청을 주고받는다.

 

- 편의상 이 둘을 모두 Web 서버, DB 서버라고 부르지만 Web 이 DB 에게 요청할 때는 DB 입장에서 Web은 클라이언트이고, 반대 상황도 마찬가지다.

- 그렇다면 이 둘은 IP 주소가 같은데, 어떻게 서로 통신하는 걸까?

-> 바로 port  번호가 다르기 때문이다! 두 서버의 IP 주소는 같지만 TCP 주소인 port 번호가 다르다. 

    (같은 아파트라도, 호수가 다르면 다른 집으로 택배가 배송되는 것과 같은 이치다.)

 

cf)

- 그렇다면 위의 상황처럼 (같은 PC 내에서 서버, 클라이언트의 IP가 같고, TCP가 다른 상황처럼)

- 서버용 PC 와 클라이언트용 PC도 같은 PC 내에 설치해도 되는 것 아닐까?

- 물론 서버와 클라이언트 PC의 운영체제가 같다면 그렇게도 한다. 

- 보통 <서버: 리눅스 OS / 클라이언트: 윈도우 OS> 를 사용하기 때문에 편의상 서버용 컴퓨터, 클라이언트용 컴퓨터를 각각 따로 생성하는 것이다.

 

 

 


 

서버 구축

Linux OS인 CentOS 7 설치

시스템 설정-> 마더보드: 기본 메모리 - 2048 MB / 프로세서: CPU - 2개

[Termius] 특정 IP의 Host 원격 제어 화면
[Termius] SFTP 화면

Termius: Local PC 에서 가상머신을 이용해 구축한 Server PC로 파일 이식 기능(SFTP), 터미널 원격 제어 기능(SSH)을 제공하는 애플리케이션으로 PuTTY 와 FileZilla 의 기능이 합쳐졌다고 보면 된다.

 cf 1) SFTP (Secure File Transfer Protocol): 보안이 강화된 파일 전송 방식

         SSH (Secure Shell): 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜

 cf 2) PuTTY: SSH 프로그램

         FileZilla: SFTP 프로그램

         

[VirtualBox] 설치 후 구동한 서버 PC 화면 (Termius 로 원격제어 중인 host PC 이다. Termius SFTP 오른쪽 영역에 정렬된 폴더가 마찬가지로 보인다.)

cf) 소프트웨어를 GNOME 데스크탑 버전으로 설치했기 때문에 위와 같은 GUI 화면이 보인다.

     최소 설치 버전으로 설치하는 경우 터미널 명령어로만 제어 가능

 

Server & DB start


클라이언트 구축

  • 가상머신에 클라이언트 호스트를 설치하는 이유?

: 회사 업무에 따라 회사 컴퓨터인 개인 PC에 클라이언트를 구축할 경우 개발 Test 시 개인 PC에 있는 파일들에 영향을 미칠 수 있다.

  ex) PC 에 존재하는 특정 파일을 암호화, 복호화 기능을 개발하여 test 한다고 할 때, 로컬 PC에서 test시 로컬 호스트의 파일이 암호화 되는 경우 발생

 

Windows OS 설치

시스템 설정-> 마더보드: 기본 메모리 - 3072 MB / 프로세서: CPU - 2개 / Hard disk size : 100 GB

 

DVD: Windows 10 ISO 디스크 파일 선택 후 설치

 

제품 키가 없음 - Windows 10 Pro - 동의함 - 사용자 지정: Windows만 설치(고급) - 새로 만들기 - 적용

 

 

* 윈도우 설치 후 네트워크 연결

네트워크 및 인터넷 - 이더넷 - 어댑터 옵션 변경 - 이더넷 속성 - 인터넷 프로토콜 버전 4(TCP/IPv4) - IP 주소, 서브넷 마스크, 기본 게이트웨이(IP주소의 맨 끝자리만 1로 변경), DNS 서버 주소 기입

 

 

* 네트워크 연결 후 윈도우 업데이트

* 윈도우 업데이트 완료 후 게스트 확장 프로그램 설치

  -> 부가 기능 사용을 위해 / ex) 클립보드 복사, 파일 드래그 앤 드랍 등 

가상머신 윈도우 화면 상단 '장치' - 게스트 확장 CD 이미지 삽입 - 게스트 확장 파일 CD 디스크에 추가 (삽입 버튼) - CD 드라이브 열기 -  VBoxWindowsAdditions 더블 클릭 후 설치 

 cf) Local PC(Windows)에서 Server PC(Linux)로 파일들을 옮길 때는 Termius 를 이용했지만 Client PC(Windows)의 경우 해당 확장 프로그램을 설치하여 파일 드래그 앤 드랍 기능을 이용해 파일을 옮긴다. (물론 Termius 를 사용해도 가능하다. 편한 방법을 취사선택하면 된다.)

'Linux' 카테고리의 다른 글

리눅스 명령어: cat  (0) 2023.03.08
리눅스 명령어: 자주 사용되는 명령어  (0) 2023.03.07
리눅스 명령어: find, grep, awk  (0) 2023.03.07
CentOS 란?  (0) 2023.03.06