이번엔 VM 인스턴스에 VS Code-server를 설치해 보자. 로컬 PC에 설치된 VS Code처럼 서버상에 VS Code를 설치하는 건데, 뒤에 Server가 붙는 이유는 외부에서 접속이 가능하기 때문. 웹 브라우저로 어디서나 클라우드 서버 인스턴스에 접속할 수 있고 SSH, FTP를 대체해서 사용할 수도 있다.
우선 링크는 아래 참조.
https://github.com/coder/code-server
설치 방법은 간단하다. 아래처럼 curl 명령어를 이용해 파일을 다운받고 실행시킨다.
curl -fsSL https://code-server.dev/install.sh | sh
설치까지 완료되었으면, 간단한 설정을 해줘야 되는데,
vim ~/.config/code-server/config.yaml
위 경로에 있는 config.yaml 파일을 vim 명령어로 수정할거다. 아래처럼 작성해 주자. password는 VS Code-server를 접속할 때 사용할 비밀번호니 쓰기 편한 비번으로 수정해 주자. port를 다른 걸 쓰고 싶으면 8080 외 다른 걸로 지정해도 무리는 없다. 단, 앞의 ip 주소는 0.0.0.0으로 해야 한다.
아래 화면이 뜬 후에 i를 누르면 INSERT모드로 바뀌고 수정할 수 있게 된다. 수정 후에는 esc 키를 누른 후 ':wq'를 쳐서 저장하고 종료한다.
그다음에는 8080 포트를 열어줘야 한다. 앞서 VCN 설정할 때도 열려 있어야 하고 연 다음에는 인스턴스부터 재시작 해줘라. 리눅스 상에서 포트 개방은 iptable을 이용할 거다.
sudo iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
그 다음에는 iptable을 재시작해준다.
service iptables restart
이제 VS Code-Server 서비스를 올려보자. systemctl 명령어를 이용하는데 'enable'을 넣어줄 경우, 서버가 부팅될 때 자동으로 시작된다는 거다. @뒤에 root를 넣고 sudo로 실행해 주면 vs code-server로 들어갔을 경우, root 권한으로 디렉터리나 ssh를 사용할 수 있다. ssh야 su root가 있지만 explorer의 디렉터리 권한을 바꾸는 방법은 root로 실행하는 방법 밖에 없는 듯.
systemctl은 start/stop/restart 그리고 enable/disable 을 넣어줄 수 있는데 경우에 맞게 사용하면 된다.
sudo systemctl enable --now code-server@root
이제 서버 공용 ip에 :8080을 붙여서 웹브라우저에 쳐보자. 주의할 점은 https가 아니라 http다. https는 ssl 인증서를 받아서 적용해야 한다고 함.
정상적으로 실행됐으면 아래처럼 비밀번호를 치는 화면이 나오는데 이건 아까 config.yaml에서 설정한 비밀번호를 넣어주면 된다.
아래처럼 화면이 뜨면 성공. 왼쪽 explorer에서 파일을 업로드/다운로드 할 수 있고, 메뉴 -> terminal에 가면 ssh 프롬프트 창을 띄워 작업할 수도 있다.
※ 혹시나 이후 잘 안되면 ufw로 방화벽을 추가로 열어보자.
ufw allow 8080/tcp
※ 아니면 VCN설정이나 config.yaml을 다시 확인하고, vs code-server를 재시작해보던지.
sudo systemctl restart code-server@root