이번 포스팅에서는 ipTIME에서 무료로 제공해주는 DDNS를 활용하여
운영서버를 구축해보려고 한다.
고정IP를 구매하려고 하시는 분들이나
경제적으로 앱 서버나 웹 운영서버를 운영하고자 하시는 분들이 보면 도움이 될 것이다.
혹시 DNS나 DDNS개념에 대해 잘 모른다면 아래 글을 참고해보기를 바란다.
DNS(Domain Name System)과 DDNS의 개념
1. ipTIME 관리자 페이지 접속하기
ipTIME공유기를 초기화 하였다면 먼저 브라우저에 192.168.0.1 을 입력하면 아래와 같이 관리자 페이지가 나온다.
공유기 초기화 때 설정해놓은 아이디와 비밀번호를 입력하자.
(별도로 설정을 안했다면 아이디 admin,비밀번호 admin으로 등록이 되어있을것이다)
관리자 페이지에 들어왔다면 아래와 같은 페이지가 뜬다.
여기서 외부 ip주소라 되어있는 것이 외부 사람들이 내 공유기를 찾아올 수 있는 주소이고
내부 ip주소라 되어있는 것은 공유기에 연결된 많은 컴퓨터 중에
내가 현재 사용중인 컴퓨터에 할당된 내부 ip주소값이다.
이 때 여기서 cmd창에 들어가서
ipconfig로 찾은 ip값이 내 컴퓨터의 내부 ip와 일치하는지 확인해보자.
필자의 경우 계속 DDNS가 세팅이 안되서 며칠동안 원인찾느라 고생했는데
ipTIME에서 나오는 내부 IP값과 내 컴퓨터의 IP값이 달랐던게 원인이였다.
ipTIME 공유기를 다시 기기 초기화해주고 연결하니 이 문제가 해결되었다.
*참고- 내부 IP 외부 IP??
이 개념이 헷갈린다면 이런 상황을 생각하면 된다.
만약 자신의 집 주소가 서울 xx시 xx동 xx건물 3층 301호라고 쳐보자.
만약 택배 기사님에게 다짜고짜 3층 301호(내부 IP)로 와주세요 라고 한다면?
당연히 어디에 있는 건물 3층이냐고 물어볼 것이다.
그러면 이번에는 서울 xx시 xx동 xx건물(외부 IP) 이라고만 알려주면
기사님이 내 집 건물에 택배를 놓고갈 수 있다.
놓고간 택배중에 3층 301호(포트포워딩 개념)이라고 표시를 해놓은게 있다면
그 택배는 내 집에 온 것이니 가져갈 수 있게 된다.
2. DDNS설정 등록하기
고급설정- 특수기능- DDNS설정 을 들어간다.
여기서 호스트 이름은 본인이 설정하고자 하는 도메인 이름이고
사용자 ID는 이메일 주소를 적으면 된다.
정상적으로 등록이 된 모습이다.
호스트 이름 옆에 정상 등록이라 표시가 되어야 잘 등록이 된 것이다.
(등록중이라 뜨면 조금 기다리면 정상 등록으로 바뀐다)
3. 포트포워드 등록하기
포트포워드는 포트 번호를 통해 내부IP와 외부IP값을 연결해주는 작업이라고 보면 된다.
고급설정- NAT/라우터 관리- 포트포워드 설정에 들어간다.
위 이미지 부분에서 새 규칙추가를 누른 뒤
내 컴퓨터에 연결되어 있는 내부 IP주소(옆의 체크박스 누르면 된다)와
연결할 외부 포트, 내 컴퓨터에서 서버가 있는 포트를 내부포트로 적으면 된다.
이게 무슨 의미냐면
내가 만약 공유기 도메인을 chung.iptime.org라고 등록하고
포트포워드를 내부Ip: 192.168.0.6, 외부포트: 8080, 내부포트 8082 라고 정의하였다면
외부에서 사람들이 chung.iptime.org:8080 으로 접속을 하면
내 컴퓨터(192.168.0.6)의 8082 포트로 접속이 된다는 뜻이다.
4. 서버 포트 설정 후 띄우기
여기서부터는 본인이 띄울 서버 언어에 맞게 설정해주면 된다.
필자는 Spring을 이용하여 서버를 띄워보았다.
띄울 서버 프로젝트의 설정파일(properties 또는 yml)로 가서 포트를 3번에서 설정한 내부포트와 맞게 설정해준다.
server:
port: 8080
그리고 서버를 구동시키면 된다.
무사히 구동 완료된 모습이다.
5. 접속 테스트 해보기
필자의 경우 /home으로 접속하면 index.html이라는 메인 페이지가 뜨도록 설정해 놓았고
xxxx.iptime.org:8080/home 으로 접속하니 아래와 같이 잘 뜨며 접속이 되었다.
이 방법으로 서버를 띄워서 운영한다면
굳이 고정 IP를 구매하거나 AWS와 같은 클라우드 컴퓨팅 서비스를 사용하지 않아도 되니 경제적일 것이다.
다만 이런 방식으로 서버를 띄웠을 때 현재까지는 별 문제가 없지만
트래픽 문제를 어디까지 처리할 수 있는지, 예상치 못한 다른 문제점들이 있을지는 더 고민해봐야 할 것 같다.
(혹시 뭔가 문제점을 알고계신 분 계시면 알려주시면 댓글로 감사드리겠습니다)
'Backend > Spring' 카테고리의 다른 글
[Spring]싱글톤 빈 VS 프로토 타입 빈 차이점 (0) | 2020.11.11 |
---|---|
[Spring]스프링에서 공통 Response처리 하기(@ControllerAdvice 이용) (0) | 2020.11.04 |
[Spring]빈 스코프(Bean Scope)의 종류 및 개념 (0) | 2020.10.27 |
[Spring]스프링 빈(Bean)을 초기화 및 종료하는 3가지 방법(Bean 생명주기 콜백) (0) | 2020.10.27 |
[Spring] 스프링의 빈(Bean) 생명주기 콜백의 개념 및 예제 (0) | 2020.10.24 |