프로그래밍

안드로이드 폰/태블릿에서 프로그래밍 하기(AWS, android phone, GUI, Ubuntu, VNC)

*%$@$#@ 2023. 2. 1.
728x90
반응형

목표 : AWS에서 ubuntu기반의 리눅스 서버를 생성한 뒤 이를 안드로이드 폰에서 GUI 환경으로 접속

 

시작하면서

취미로 프로그래밍을 하는 직장인의 경우 집 밖에서 프로그래밍을 하기 힘든 환경인 경우가 많습니다. 회사의 컴퓨터에서는 아무래도 업무 외적으로 사용하는 상황이 되어버리기 때문에 쉽지 않기도 하고 집에서 사용하던 환경과 달라져 버리니 연속성을 갖기도 쉽지 않습니다. 그래서 집에서나 혹은 그 외 밖에서도 끊기지 않고 지속적인 환경을 만들 수 있는 방법이 없을까 고민을 했고 결국에는 AWS 서버를 이용하기로 하였습니다. 

 

AWS 

아마존에서 제공하는 클라우드 서비스인 AWS는 1년간 프리티어로 가장 기본 사양의 컴퓨터를 대여할 수 있습니다. 말 그대로 서버를 일부 떼어다 가상의 컴퓨터를 생성하는 것이기 때문에 웹을 통해서 접속이 가능합니다. 기본적으로 CLI(Command Line Interface)를 제공하는데 물론 이를 가지고도 많은 일을 할 수 있으나 vsCode 등의 IDE를 사용할 수 없다는 단점이 있죠. 그런데 AWS 인스턴스에 GUI 환경을 구축하여 사용할 수 있는 방법이 있어 소개하고자 합니다. 

 

시스템 구성 

서버는 AWS에 구축하고 다른 컴퓨터나 태블릿, 심지어 핸드폰에서는 vnc viewer라는 프로그램을 통해 AWS GUI 환경에 접속합니다. 일종의 원격접속 환경입니다. 

 

먼저 AWS에 가입한 뒤 EC2 인스턴스를 생성합니다. 과정은 다음 포스트에 기술하였습니다. 

https://pitching-gap.tistory.com/m/78

 

[AWS] 무료로 사용하는 아마존 AWS 서비스(EC2 인스턴스 생성)

AWS 서비스에 가입을 했으니 이제 컴퓨터를 빌려봅시다. 우리가 빌리는 컴퓨터(정확히 이야기하면 클라우드 컴퓨팅 서비스)를 AWS에서는 인스턴스라는 이름으로 불립니다. AWS 인스턴스를 생성하

pitching-gap.tistory.com

 

 

 

EC2 서비스에 접속한 뒤 '인스턴스(실행중)'을 선택해서 현재 생성한 인스턴스 목록을 확인합니다. 

 

인스턴스 목록을 선택하여 세부 정보 화면으로 이동합니다. 

 

 

세부정보 중 스크롤을 내려 '보안'탭으로 이동하면 현재 설정된 보안그룹을 볼 수 있고 이를 클릭하여 세부 사항을 살펴보도록 하겠습니다. 

 

 

'인바운드 규칙 편집'을 클릭합니다. 

 

 

vnc 서버 연결을 위한 새로운 인바운드 규칙을 추가하기 위해서 '규칙 추가'를 클릭합니다. 

 

 

포트는 5901, 소스는 모든 소스를 허용하는 0.0.0.0/0 을 선택한 뒤 '규칙 저장'을 클릭합니다. 

 

이로써 EC2 인스턴스의 기본 세팅이 마무리 되었습니다. 이제 EC2 인스턴스에 접속하여 접속에 필요한 vnc 서버를 설치하고 설정을 하도록 하겠습니다. 

 

 

인스턴스 목록을 클릭하면 다음의 '연결' 버튼을 클릭하여 터미널 환경으로 접속이 가능합니다. 터미널 환경에서 다음 명령어를 순차적으로 실행합니다. 

 

 

sudo apt update
sudo apt install ubuntu-desktop
sudo apt install tightvncserver
sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

 

vncserver를 실행합니다. 처음 실행하게되면 패스워드를 설정하는 화면이 나옵니다. 패스워드를 설정하고 잘 기억하도록 합니다. 이 패스워드는 나중에 vnc viewer를 통해 접속 시 사용합니다. 또한 view-only password를 설정할지를 마지막에 묻는데 'n'라고 입력하여 설정하지 않습니다. 

 

vncserver

 

vnc 설정 파일을 수정해야 합니다. 다음의 명령어로 config 파일인 xstartup을 nano라는 편집기로 실행합니다. 

 

nano .vnc/xstartup

 

기존의 내용을 지우고 다음의 내용을 복사 붙여넣기 합니다. Ctrl+S로 저장하시고 Ctrl-X를 입력하여 편집기를 종료합니다. 

 

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 

기존에 실행되고 있던 vncserver를 종료합니다. 

vncserver -kill :1

 

vncserver를 다시 실행합니다. 

 

vncserver

 

 

리눅스의 설정이 모두 마무리되었습니다.

 

다음으로는 핸드폰을 통해 AWS EC2 인스턴스에 접속해 보겠습니다. 

 

먼저 플레이스토어에서 VNC Viewer를 검색하여 설치합니다. 두개 중 어느거여도 상관은 없으나 첫번째 앱이 인터페이스가 조금 더 깔끔하여 저는 위의 앱을 사용합니다. 

 

 

 

 

설치 후 실행한 뒤 오른쪽 하단의 플러스 아이콘을 클릭합니다. 

 

 

 

커넥션 정보를 포트번호와 함께 입력합니다. 예를 들어 IPv4의 주소가 1.1.1.1인 경우 1.1.1.1:5901 을 입력합니다. 이름은 임의로 지정한 뒤 'CREATE'를 클릭합니다. 

 

 

 

'OK'를 입력합니다. 

 

 

앞서 설정한 비밀번호를 입력한 뒤 'CONTINUE'를 클릭합니다. 

 

 

드디어 GUI 연결이 완료되었습니다!!!

 

* 이후 우분투에 플러터 개발환경을 만들어 프로그래밍을 진행해 보도록 하겠습니다. 

728x90
반응형

댓글