elmitash의 모든 글

일본에서 일하고 있는 자바 웹 어플리케이션 개발자.

윈도우에서 golang 1.14 개발 환경 구축

구글이 개발한 go라는 언어를 알고부터 항상 해 보고 싶었는데 VPS 서버도 생겼겠다 다시 한번 뭔가 만들어 봐야겠다는 생각이 들어서 다시 손을 대봤다.

go 와 vscode 를 포터블판으로 설치해서 개발환경 구축하는 방법에 대해 새로 글을 썼다.
윈도우10 golang vscode 개발환경 구축

go 설치

고 자체는 공식 사이트(https://golang.org/)에서 (윈도우의 경우는) MSI 버전으로 설치하면 PATH 설정도 전부 해 주니, 인스톨만 하면 간단.
수동으로 설치할 경우에는 PATH에 go/bin 디렉토리를 넣어주고, GOROOT는 go 디렉토리, GOPATH는 다운받은 팩키지 소스등을 넣어줄 곳이니 마음대로 지정하면 된다.
셋 다 중요하니 처음 고를 설치할 경우에는 그냥 MSI 인스톨러로 설치하자.

IDE 설치

IDE는 이클립스에 goclipse 플러그인을 설치 해 봤는데 현재 고버전(1.14)에서는 자동완성 기능이 더이상 작동하지 않는다.
아래 IDE 투표에서 1위를 자랑하는 비주얼 스튜디오 코드(VSCode) 를 설치하자.

2019 스택오버플로 개발 환경 투표
2019 스택오버플로 개발 환경 투표 결과. 출처:https://insights.stackoverflow.com/survey/2019#technology-_-most-popular-development-environments

https://code.visualstudio.com/
설치 버전이든 포터블 버전이든 아무거나 쓰면 된다.
설치 후 VSCode 디렉토리에 Code.exe 파일을 실행하자.

VSCode go 확장기능 설치

이미 설치 후라 인스톨 버튼 대신 언인스톨 버튼이 보인다.

빨간 박스로 표시한 왼쪽 아이콘을 누르고, 검색에 go 를 넣고, 아래에 go 0.13.1 Rich Go language… 를 선택하면, 오른쪽에 자세한 내용이 보이는데 인스톨 버튼을 누르자.

설치 후에 Ctrl + Shift + P 를 누르고 go install 로 검색하면, 나오는 모든 내용을 체크한 후에 OK 버튼을 누른다.
다 설치하는데 시간이 좀 걸린다…

Language Server

코딩할 때 꼭 필요한 자동완성 기능을 도와주는 것인데, 처음에는 무효화 되어 있다.
File -> Preferences -> Settings 에 들어가서 검색 gopls 을 하면 나오는 Go: Use Language Server 에 체크하면 사용할 수 있는데, 이걸 사용할 경우에 메소드 후보들이 빨리 표시 되는 반면에 그닥 정확히 필요한게 나오지는 않는 것 같다.
끄면 느린 대신에 딱 필요한것만 나오는 것 같고. 끈 경우와 켠 경우 다 써 봐야 할듯.

이상 Go 개발 환경 구축 끝.

DB서버 외부에서 안전하게 접속하는 방법. DBeaver로 SSH 터널링 접속

2022/10/14 Update. 우분투 22.04 LTS 시대 기준 DBeaver 22.2.2버전에서는 암호화 알고리즘 ed25519을 사용할 때 SSH 터널 설정 화면 아래에 Advanced Setting -> Implementation를 SSHJ로 선택해야 한다.
그리고, Putty접속용의 .ppk파일이 아니라 오리지널 개인키를 써도 된다.

보통 유동 IP를 사용하는 집에서는 mysql/mariadb나 Postgresql 서버에 접속하기 위해서 외부 접속 설정을 모든 IP에 대해서 허용해야한다.
SSH 같은 경우는 공개키 접속 방식으로 개인키 파일이 털리지 않는한은 절대로 접속이 불가능하게 되지만, DB 서버의 경우는 아이디/패스워드가 전부이기 떄문에 외부 접속을 열어두기가 아무래도 꺼림칙하다.

그래서 공개키 접속을 사용한 SSH 터널링으로 DB 서버에 접속하면 훨씬 안전하게 접속 할 수 있는데, 이미 공개키 방식으로 SSH 접속을 하고 있다면 설정은 별로 어려울 것도 없다.
DBeaver 등의 SSH 터널링을 지원하는 DB 툴로
DB 접속 호스트는 localhost 를 지정하고
포트, 아이디/패스워드등 나머지는 그대로.

SSH 터널링 설정을 들어가서 DB 서버의 IP 주소, SSH 유저 아이디, SSH 인증 방식을 공개키 방식으로 하고 개인키 파일을 지정하면 끝.

문제 해결

ssh-keygen으로 생성한 파일을 넣으면 이런 에러가…

DBeaver에서는 개인키 파일을 ssh-keygen으로 만든걸 썼더니 에러를 뿜어서 Putty 접속용으로 변환된 .ppk 파일을 등록하니 잘 접속 된다.
접속이 안되서 또 애꿋은 방화벽 탓을 하다가 발견… 메시지가 방화벽과 전혀 관계가 없는데도 방화벽 탓을 하게 된다.

그리고, 마지막으로.
SSH 터널링으로 접속이 잘 될 경우에는 잊지 말고 반드시 DB의 외부 접속 허용 설정을 끌 것.

ssh 공개키/개인키 접속하는 방법 참고 https://storycompiler.tistory.com/112

Postgresql 12 버젼을 우분투 18.04 에 설치 설정

Postgresql 12 설치

참고 : Postgresql의 우분투용 설치 가이드

아래 명령으로 /etc/apt/sources.list.d 디렉토리에 pgdg.list 파일을 만들어 Postgresql 저장소를 추가한다.

우분투 버전이 18.04가 아닐 경우에는 ‘bionic’ 을 해당 우분투 버전이름으로 변경할것.

우분투 버전별 이름 (Postgresql 저장소에 존재하는 것만)
12.04 LTS precise
14.04 LTS trusty
16.04 LTS xenial
18.04 bionic
18.10 cosmic
19.04 disco
19.10 eoan

저장소 인증키를 추가

apt update / Postgres-12를 인스톨

유저 추가

아래 커맨드 중 elmitash 부분을 사용하고 싶은 아이디로 바꿀것.
postgres 유저로 바꾼 후, 새로운 유저를 추가
패스워드를 두번 입력

y를 입력해 관리자 권한을 준다

접속 테스트

외부 접속

postgresql.conf 파일을 수정

아래 부분을 찾아 주석 해제하고 localhost 를 * 로 바꾼다. 특정 IP에서만 접속할 경우엔 IP 주소를 쓰면 된다.

pg_hba.conf 파일을 수정

접속 인증을 할 IP 범위를 설정하기 위해서 아래 내용을 추가한다. 내부 네트웍일 경우 아래 내용에서 아이피 정도만 바꾸면 될듯.

설정을 마쳤으면 Postgresql 서비스 재시작

문제 해결

이놈의 방화벽… 진짜…
iptables 의 경우 숫자 6은 sudo iptables -L 로 확인해서 수정할 것.

ufw 의 경우는 간단.

오라클 클라우드는 인스턴스의 보안 목록에 수신 규칙을 추가해야한다. TCP의 5432번 포트를 개방.

관련 글: DB서버 외부에서 안전하게 접속하는 방법. DBeaver로 SSH 터널링 접속

오라클 클라우드 무료 유료 인스턴스 속도 테스트

프리티어는 무료니까 그렇다치고 그럼 유료는 얼마나 빠를까하는 궁금증이 생겼다.
체험 30일동안 3.3만엔의 크레딧을 주는데 거의 쓰지도 못해서 잔뜩 남았고 해서 만들 수 있는 제일 비싼 인스턴스로 만들어 봤다.

VM.Standard.E2.2는 16기가 메모리에 최고 속도는 초당 메가바이트로 환산하면 175MB/s 의 놀라운 속도!

인스턴스 생성 후에 콘솔 접속해서 버릇처럼 apt update, apt upgrade… 속도가 다르구만.
speedtest-cli 설치해서 실행!

결과는…

쿠궁…
다운로드는 초당 15MB/s 에 업로드는… 똑같잖아? 초당 500KB/s 수준.
업로드 속도는 프리티어에서 무료로 쓸수 있는 VM.Standard.E2.1.Micro 와 같은 속도다.

뭐 상용으로 쓰는데 이런 속도일리는 없고 결론은 그냥 무료체험에서 사용할 수 있는 인스턴스들은 다 속도 제한을 걸어뒀다…가 맞겠지.
아무리 그래도 500KB/s 는 너무한것 같은데… ㅠㅠ

그래도 공짜니까… 그냥 쓰는거다.

번외로 한달에 4.5만원쯤 내는 우리집 VDSL 속도…
윈도우10에 설치한 우분투에서 해 봤다.

다운로드 7.25MB/s, 업로드 476KB/s
그냥 다 비슷비슷한거 같다. 업로드 속도는 다 같은 수준이고.

관련글: 오라클 클라우드 프리티어 사용기
오라클 클라우드 프리티어로 이사

오라클 클라우드 프리티어 사용기

한국이나 일본이나 아직 오라클 클라우드 프리티어는 정보가 많지 않아서 직접 써 본다.
기준은 서울 리전

무료 인스턴스 생성이 안됨

이것 때문에 쓰기도 전부터 꽤 고생했는데 인스턴스를 생성하려고 하면 out of host capacity 라는 에러 메시지(지금은 다른 메시지로 바뀜)로 생성이 안된다.
무료인 경우에 총 생성량이 제한 되어있어서 그렇다는데 문제는 꽤 오랫동안 이런 상태가 유지 된다는 것.
나는 매일 시도해서 8일(2020/02/18-2020/02/26간 시도)만에 인스턴스가 생성 되었다.
생성한건 오전이었는데 그날 오후 7시 정도까지는 생성이 되었으니 인스턴스 생성이 안될 때는 하루 한두번 오전 오후 시도해 보면 될듯하다.

네트워크 속도가 느림 특히 업로드는 최악


평일 오전 10시경 speedtest 로 체크.
다운로드가 49.65Mbit/s, 업로드가 4.06Mbit/s로 메가바이트/초로 환산하면 다운로드 6.2M, 업로드 500K라는 속도가 나온다. 우리집 VDSL속도랑 똑같아서 소름.
프리티어의 아웃바운드 트래픽 제한이 월 10테라인데 저 속도로 한달 내내 업로드 대역폭을 다 써도 13%정도 밖에 못 쓴다.
실질적으로 아웃바운드 제한 1테라라고 봐도 되는데 문제는 그냥 느리다는거. 제한을 1테라로 두고 업로드 속도가 제대로 나오는게 낫지.

윈도우에서 공개키, 개인키 생성 방법

인스턴스를 생성할때는 SSH 접속에 사용할 공개키를 넣어야 한다.
무설치판 git 클라이언트 -> https://git-scm.com/download/win
설치해서 공개기/개인키 만드는게 제일 쉬운 방법인듯.

VPN으로 넷플릭스

서울 리전에서 만든 이유는 블로그 속도 문제도 있지만 VPN으로 한국판 넷플릭스를 볼 수 있을까하는 이유도 있었는데 결과는 꽝.
속도가 너무 느려서 정상적으로 뭔가 볼 수는 없었다. 어떤것들이 있나 구경만 잔뜩 했는데 확실히 일본 넷플릭스보다는 한국쪽이 볼만한건 많은듯 했다.

프리티어 사용해 본 느낌

그래도 VPS 두대에 각 50기가 용량, 트래픽 걱정도 없고, CPU와 램도 좋은 편이라 홈서버에서 블로그 돌리던 때에 비하면 많이 좋다.
전기세는 일단 안들고 말이지.
다른 블로그에서 확인하기에 저 업로드 속도는 예전에는 안그랬던거 같은데 조금은 좀 올려줬으면 좋겠네.
평생 무료라고 광고 했으니 5년 정도는 서비스를 유지했으면 좋겠는데 오라클 사정이 어떨지 좀 걱정이 되긴 한다.

어쨋은 공짜에 여러 나라에 리전이 있으니, 한국에서라면 일본에 리전 만들어서 VPN용으로써도 좋을듯. 속도는 느리니까 웹서핑 정도 밖에 못하겠지만.

오라클 클라우드 프리티어