- 인터넷 정보 서비스(IIS) 설치
- ASP.NET Core 번들 설치
- 구글 도메인 (Google Domains) 를 사용해서 동적 DNS 설정
- 무료 LetsEncrypt SSL 인증서 셋업과 자동 갱신
인터넷 정보 서비스 (IIS) 설치
우선, IIS를 설치해야죠. IIS는 윈도우 10 프로페셔널에 포함되어 있지만, 기본으로 설치되어 있지 않아 추가로 설치해 주어야 합니다. 윈도우 시작 메뉴에서 'windows features' 라고 입력하면 아래와 같은 화면이 나옵니다.
![](https://miro.medium.com/max/1973/1*R7yf4BdnS7cov6HWQLC1oA.png)
'Turn Windows features on or off' 를 선택하면, 아래와 같이 'Windows Features' 화면이 나옵니다. 거기서 'Internet Information Services'를 선택합니다.
![](https://miro.medium.com/max/595/1*ajtTP4YxYA-Gi5-XyFWtLQ.png)
여러가지 부가기능은 설치하지 말고, 위에서 선택한 것 처럼 기본 기능만 설치해도 됩니다. 'OK'를 눌러 설치를 시작합니다.
IIS Manager 웹사이트 셋업
자, 이제 나만의 웹사이트를 IIS에 셋업합니다. IIS에서 ASP.NET Core를 사용하는 방식을 표현한 그림이 다음과 같습니다.
- IIS Manager 를 실행, 'Sites' 를 클릭한 후, 'Default Web Site'를 중지합니다. 이 작업을 하지 않으면, 내 컴퓨터의 IP주소를 웹브라우저에 직접 입력하면, 의미없는 마이크로소프트 IIS 기본 화면이 보이게 됩니다.
- 아래 화면과 같이 내 웹 사이트 이름을 입력하고 'OK' 를 클릭합니다.
- ASP.NET Core Hosting Bundle을 마이크로소프트에서 다운로드 받아 설치합니다. 현재 최신버전은 3.1 이지만, 더 업그레이드 된 버전이 나오면 최신 버전을 설치해 주세요.
- 설치를 마치고, 'Modules'를 선택하면, 아래와 같이 'AspNetCoreModuleV2' 가 추가 되어 있음을 확인합니다.
![](https://miro.medium.com/max/451/1*kkZ-0Ilj99_FpRqQjnsUzg.png)
- 이제, 내 웹 사이트를 화면의 오른쪽에 있는 초록색 'Play' 버튼을 눌러 웹사이트를 실행합니다.
공유기 포트 전달 (Port Forwarding) 셋업
웹사이트 폴더 권한 및 공유 설정
![](https://miro.medium.com/max/486/1*-wVtYpGJm6dvL0I50VhlVw.png)
![](https://miro.medium.com/max/499/1*4HBYp-1F07nd5-snDQjLmQ.png)
구글 도메인을 사용한 동적 DNS 설정
- 우선, 내 컴퓨터의 네트워크 장치에서 IP version 6를 사용하지 않고 IP version 4 만을 사용하도록 설정합니다. 간단히 이유를 설명하자면, (몰라도 됨) 글을 작성하는 시점에, 구글 도메인은 IP version 6를 통해 들어온 IP 주소 변경 요청은 AAAA type 도메인 레코드로 갱신됩니다. 이렇게 되면 대부분의 공유기에서 포트 전달 설정에서 사용하는 IP version 4 방식과 혼동을 일으키게 됩니다.
- 구글 도메인 (Google Domains) 에 등록된 내 도메인이 있다면, 로그인해서, DNS관련 메뉴에서, 다음과 같이 설정해 줍니다.
![](https://miro.medium.com/max/621/1*4VH321qHM6I6wpkVBu87zA.png)
- 새로 동적 DNS 레코드를 생성하고 나면 구글에서 내 도메인 이름에 대한 사용자이름과 패스워드를 정해서 표시해 줍니다. 이 정보는 다음 단계에서 사용하게 됩니다.
- 'Dynamic DNS Updater for Google Domains' 라는 프로그램을 다운로드해서 원하는 위치에 압축을 풀고 'build' 폴더를 선택합니다.
![](https://miro.medium.com/max/801/1*Mg7ddYjuy9LwTn0drvWmrA.png)
- 그안에 ‘GoogleDomainsDdnsSvc.exe.config’ 파일을 노트패드로 열어 내 도메인에 맞도록 수정해 주고, 저장합니다. (hostname, username, password 변경)
![](https://miro.medium.com/max/1419/1*hbAG2CYPGYa6H0trTG8fJg.png)
- 이제, 변경한 내용이 구글 도메인에 전달되도록 실행합니다. 관리자 모드로 명령 프롬프트를 열고,
![](https://miro.medium.com/max/465/1*qdIiT1-zYz0GoPihCflu8w.png)
- 'GoogleDomainsDdnsSvc.exe' 파일이 있는 폴더로 이동하여 다음 명령을 실행합니다.
![](https://miro.medium.com/max/920/1*w4jlfnmivZl2W0m0iClv_w.png)
- 프로그램이 설치되어 제대로 실행되고 있는지 확인하려면, 윈도우 시작메뉴에서 'Service' 라고 입력해서
- ‘Dynamic DNS Updater for Google Domains’ 이라는 서비스가 실행중인지 확인합니다.
![](https://miro.medium.com/max/549/1*ltbLtoCXLqB_mPoHcnSB6g.png)
- 이제 http://bigwolf.io 라고 브라우저에서 입력하면 내 컴퓨터에 있는 홈페이지로 연결되는지 확인합니다. 구글 도메인에 IP주소가 업데이트 되는데 5분까지 걸릴 수 있습니다.
무료 LetsEncrypt SSL 인증서 셋업
WACS 프로그램은 다음과 같은 작업을 자동으로 실행하게 됩니다.
우선 LetsEncrypt SSL 인증서를 생성하고, 인증서를 내 컴퓨터의 키 저장소 (Key Store)에 저징합니다. 제대로 인증서가 저장되었는지 확인하려면 다음과 같이 IIS Manager 에서 ‘Server Certificates’를 선택합니다.
![](https://miro.medium.com/max/569/1*DrKSWpMAOOmt1YPGVo0bNg.png)
또 하나는 하루에 한번 인증서를 갱신할 때가 되었는지 자동으로 체크해 줍니다. 윈도우의 Task Scheduler 를 실행하면 다음과 같이 정해진 시간 (9:00 AM)에 인증서 갱신을 확인하는 명령을 자동실행하도록 설정되어 있는 걸 볼 수 있습니다.
다 끝났네요!
자, 지금까지 몇가지 프로그램 설치를 마치고 나면, 무제한, 다목적, 웹서버, API 서버, 데이타베이스 서버, 기타등등, 무궁무진하게 활용이 가능한 나만의 서버를 운영할 수 있습니다. (게다가 인증서까지 공짜라는 ...)
인터넷 업체에 따라, 가정용 인터넷에서 서버를 돌리는 걸 허용하지 않는 업체도 있는지는 잘 모르겠네요.
'개발 > 네트워크' 카테고리의 다른 글
무제한 공짜 서버 (홈 서버) 호스팅 (0) | 2019.12.27 |
---|