code-server는 웹에서 VS-Code를 쓸 수 있도록 해주는 서비스다. 전역 후 아이패드로 코딩할 생각에 행복회로를 돌리던 나는 미리 구현해놓기로 했다. 어차피 사지방에서 코딩할 때도 필요해서.. 그런데 자료가 상당히 부족하고, nginxproxy에 관한 지식도 부족해 많이 헤맸다. 이 과정을 기록해둬 나중에 다시 환경을 구축해야 할 때 참고하고자 한다.

EC2 설정

AWS EC2에 올릴 예정이니, 인스턴스 생성을 가장 먼저 해야한다.

보안그룹에서 꼭 허용해줘야 하는 포트들

  1. 80: HTTP
  2. 22: SSH 접속
  3. 443: ssl 적용

나머지 포트들은 각자 필요하면 추가하기~

이대로 인스턴스를 만들어주기만 하면 AWS자체에서 할 설정은 없다. 이후 과정들은 ssh로 인스턴스에 접속한 상태에서 진행한다.

ssh -i ubuntu@<ec2 public domain>

code-server 설치

공식문서에서 제공하는 설치 명령어를 사용하면 된다. 이 경우 서비스가 systemctl --user단에 설정된다.

curl -fsSL <https://code-server.dev/install.sh> | sh

그 다음 systemctl --usercode-server를 활성화해야 한다. 이 명령어는 설치 명령어에서 마지막에 하라고 알려준다.

systemctl --user enable --now code-server

nginx를 활용한 proxy redirection 설정

code-serverlocalhost로만 서비스를 제공한다. 이를 외부로 보내줄 proxy가 필요하다. nginx로 이를 구현해보자. 먼저 nginx를 설치한다.

sudo apt install nginx

이후 code-server가 사용할 .conf파일을 만들어준다. 우린 certbot을 통해 ssl을 설정할거고, 테스트도 할 겸 http 연결로 만들어주자.

sudo vim /etc/nginx/sites-available/code-server.conf

server {
	listen 80;
	listen [::]:80;
	server_name <instance ip>;
	location / {
		proxy_pass <http://127.0.0.1:8080/;>           
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection upgrade;
		proxy_set_header Accept-Encoding gzip;
	}
}