[주의사항]
해당 방법(termux)은 PID 1을 사용하지 않습니다.
때문에 도커를 구동할 예정이시거나, 시스템 관리자 권한이 필요한 일을 하실 경우 다른 방법을 추천드립니다.
*개인적인 일로 서버 관리를 할 시간이 없어 더 알아보지 못할 것 같아 저도 해당 방법을 사용하지 않기로 결정 했습니다.
서버가 돌아갈 때 아마존 웹 서버의 경우 이번 년에 정책이 바뀌어서 Ipv6를 사용할 경우 시간당 과금이 되었다.
현재 내가 필요한 서버는 정말 조그만, 테스트 서버일 뿐인데 과금되지 않을 방법을 찾아보던 중 가장 괜찮았던 방법이 집에 있는 공기계 활용하기였다.
이번에 친구에게 좋은 기회로 라즈베리 파이를 선물 받으면서 미루고 미루던 자체 홈 서버를 만들자 생각해서 실행에 옮겼다.
안드로이드에 자체 서버를 구축하는 글은 과거에 벨로그에서 봐뒀던 글이 있어서 아래의 글을 참고 했다.
자체 서버 구축기 with Termux (대학생, 취준생이 EC2 프리티어를 쓰면 안되는 이유) [#01]
해당 글을 보면 어떻게 하면 만들어지는지 자세하게 설명되어있어 수월하게 진행했었다.
하지만 게시글을 참고하며 만들 경우 몇 가지 문제가 있을 수 있는데, 나의 경우 아래의 문제가 있었다.
1. IP가 충돌 했어요.
증상
- 잘 되던 접속이 갑자기 안 됨
- 휴대폰에서 잘 되던 와이파이가 연결이 끊겨 있음
MAC 주소 유형을 랜덤 MAC 주소에서 휴대전화 MAC 주소로 변경 과정에서 IP가 중복으로 들어가게 설정되어 IP 충돌이 생겼고,
이 때문에 서버가 동작을 하지 않았다.
이 때는 그냥 고정한 ip를 변경만 해주면 된다.
2. 저는 다른 종류의 공유기를 사용 했어요.
공유기 ip의 외부 주소의 경우 시간이 지나거나 재부팅시 자동으로 재할당받기 때문에 DDNS를 이용해서 동적으로 바뀌는 ip 주소를 갱신 해줄 필요가 있다.
나는 iptime을 사용하고 있었고,
iptime의 경우 자체 DDNS 서비스를 제공하고 있기 때문에 참고 했던 게시글에서 사용하는 no-ip를 사용할 필요가 없어 편리했다.
서버를 다 구축 했으면 스프링 서버를 실행할 차례다.
나의 경우 서버에 깃을 설치 하고, 해당 코드를 clone 하여 빌드 및 실행 해 두었다.
이렇게만 하면 외부에서 접속이 되지 않는 모습을 볼 수 있는데, 무선 공유기에서 포트를 열어주지 않았기 때문이다.
무선 공유기 설정에서 서버가 사용하고 있는 포트를 포트포워딩 해주면 된다.
그러면 외부에서 잘 들어가지는 모습을 볼 수 있다.
예시 - swagger 페이지
만들어 둔 서버 URL 부분에는 서버 접속할 때 그 URL을 넣으면 된다.
현재는 8080포트이지만, 보안 부분을 생각해서 다른 포트로 수정하면 좋을 것 같다.