2023년 졸업과제 캡스톤디자인 프로젝트 회고 - (3) 서버 인프라 구축
업데이트:
프로젝트 소개
- 프로젝트 이름 : 어바웃 송담
- 프로젝트 인원 : 2명
- 기술 스택
- FE : HTML5/CSS3/JS, JQuery, BootStrap
- BE : SpringBoot 3.2.0, JAVA 17, Mustache, JPA, Lombok, mySQL
- 인프라 : Cafe24 가상서버, 우분투 리눅스 20.04.6 LTS CLI/GUI, XRDP, SSH, FTP
- 개발내용
- 이전 이야기 : (2) 시작을 위한 고민과 선택
- 다음 이야기 :
(4) 어바웃송담 프로젝트
자 이제 시작이야
사용 할 수 있는 서버와 터미널이 생겼으니 이제 다시 서버 구성을 어떻게 해야하는지 고민해야 했다.
교수님의 요구사항을 이해해보려고 노력했던 초기 기획안을 다시 한 번 확인해보자. 초기에는 CLI 환경만 구축하는 경우와 원격 데스크톱 접속이 가능한 GUI환경을 구축하는 경우를 감안하였으나 서버를 대여하니 CLI 환경은 이미 만들어져 있는것이나 다름 없었다.
그래서 우리는 CLI 환경과 GUI 환경을 모두 대응하며 리눅스/macOS/윈도우 어느 운영체제의 PC에서도 접속 할 수 있는 원격 접속 서비스를 구축하기로 하였다.
물론 전공 필수 과목으로 리눅스를 이수했기 때문에 CLI환경도 사용할 수는 있었다. 그러나 그 숙련도는 모두가 제각각일 것이며 학과에서 서버 사용을 원하는 모든 팀이 사용 할 수 있어야 하기 때문에 우리에게 더 익숙한 GUI 환경이 필요하다고 생각했고, 관리 측면에서도 더 낫다고 보았다.
SSH 설정하기
cafe24에서 제공하는 가상 서버는 기본적으로 모든 포트가 차단 되어 있는 상태로 생성된다. 따라서 cafe24 서버 호스팅 콘솔에서 방화벽 설정을 수정하여 22번 포트 연결을 개방하면 외부에서 SSH 접속이 가능하다.
cafe24 매뉴얼 내용 중 SSH 접속방법에서는 키페어를 사용하여 보안 접속 할 것을 권장하고있다.
카페24 클라우드는 고객의 데이터 보호와 보안 강화를 위해 ID/PW를 직접 고객님께 제공하지 않고, 다음과 같은 방법으로 SSH 키페어를 사용한 접속 방식을 사용합니다.
지금은 ssh접속을 위한 아이디와 패스워드를 제공하고 있지 않다고 하고 있으나, 23년 당시에는 보안 키페어 없이도 ssh에 연결 할 수 있었다.
이미 개발 일정이 너무 딜레이 되어 있었기 때문에 ssh 관련으로는 딥하게 다뤄볼 시간은 없다고 판단하였고 아쉽지만 ssh 관련 보안을 생략하게 되었다.
XRDP 설정하기
윈도우에는 ‘원격 데스크톱’이라는 프로그램이 있다. 접속하고자 하는 서버나 PC의 IP나 도메인 이름을 입력하고 접속을 위한 계정으로 로그인을 하면 원격으로 접속 할 수 있는 시스템인데, 우리는 이게 멋져보였고 마침 학교에서는 윈도우를 주로 사용하기에 원격 데스크톱 프로그램으로 서버에 접속 하는것이 편리해보였다.
리눅스에서 동작하며 윈도우에서 사용가능한 원격 데스크톱을 구축하기 위해 자료조사를 시작하니 원격 데스크톱 프로토콜은 크게 VNC계통(RFB프로토콜)과 XDP계통이 있다는것을 알게되었다.
조금 더 찾아보니 VNC계통은 윈도우 환경에서 접속하려면 별도의 프로그램 설치가 필요하였고, RDP는 마이크로소프트의 프로그램이며 윈도우 시스템에 기본 탑재되어있어 편리하게 사용 가능하였다.
따라서 사용하는 입장에서 더 편리한 RDP를 이용하기로 결정하게되었다. 리눅스에서 RDP를 호스팅하기 위해서는 XRDP를 사용해야했다.
리눅스의 XRDP는 마이크로소프트의 RDP(Remote Desktop Protocol)를 비 윈도우 환경에서도 사용할 수 있도록 만든 오픈소스 RDP 프로토콜이다.
현재 서버는 리눅스 20.X LTS 버전이지만 GUI 환경이 아니기 때문에 ubuntu-desktop-minimal
을 apt install 명령어로 설치하여 최소한의 데스크톱 환경을 먼저 만들어 XRDP에 대응할 수 있도록 하였다.
그 다음 apt install 명령을 통해 XRDP를 설치하고 service 명령어를 통해 활성화시켰다. 또한 cafe24 콘솔에서 XRDP의 포트인 3389번 포트를 인바운드 개방하여 외부 접속을 허용하도록 만들었다.
마무리
이렇게 서버 인프라 구축이 마무리되었다. 프로젝트 소개 글을 잘 읽었다면 FTP에 대한 설명이 빠진것을 알 수 있을것이다.
이는 처음 서버 인프라를 구성할 당시에는 너무 서두른 탓에 FTP를 생각하지 않았기 때문이다. 나중에 서버를 배포할때 FTP의 필요성을 깨닫고 속성으로 FTP를 구성하여 서버 배포 파일을 서버로 전송하였기 때문이다.
다음 네번째 글에서는 어바웃 송담 커뮤니티 프로젝트를 소개할것이다. 어바웃 송담은 할 이야기가 많다..