AWS 대신 맥미니
DevOps

AWS 대신 맥미니

반응형

 

맥미니를 홈서버로 추천

프로젝트를 시작하면서 AWS를 사용하려했지만, 매달 나가는 비용이 만만치 않을 것으로 생각했습니다. 그래서 직접 서버를 구축해보자 라는 생각으로 시작하게 되었습니다. 라즈베리파이, 현재 사용하고있는 window 본체 등등 많은것을 생각해 보았지만 전력, 소음, 외관, 관리, 활용성을 생각하여 맥미니를 고르게 되었습니다.

맥미니 설치

 

새 제품으로 맥미니를 사게 된다면 돈이 많이 들테지만, 저는 당근을 이용했습니다. 맥을 판매하시는 분들 중에 적응을 못해 적게 사용하고 판매하시는 분들이 많기 때문입니다. 덕분에 M1 / 256GB / 16GB / 에플케어 25년 11월까지 제품을 65만원에 구매했습니다. (M1, M2 큰차이 없다는 의견을 듣고 M1으로 구매하고 16GB를 선택했습니다. 전력도 M1이 10W정도 낮습니다.) 

우분투 설치를 하지 않아도 되고, 소음이 없으며, 외관도 아주 만족스러워서 맥미니로 홈서버, 서버등 구축하는 것을 추천 할 것 같습니다.

 

 

공유기 설정 

저는 SKT 인터넷을 사용하고있고, skt에서 제공해주는 모뎀, 공유기를 사용하였습니다. (공유기 관리창 접속은 다 다르니 생략 하겠습니다.)


1. 인터넷 --- (WAN) --- [공유기1 / 모뎀 (브릿지 모드)] --- (LAN) --- [공유기2 (포트 포워딩)] --- (LAN) --- [홈서버]
2. 인터넷 --- (WAN) --- [공유기1 / 모뎀 (포트 포워딩)] --- (LAN) --- [공유기2 (브릿지 모드)] --- (LAN) --- [홈서버]

보통 두가지로 나뉘어서 설정을 하는데, 저는 1번 방법을 우선 채용했습니다. 참고글 (B에 해당)

 

또 공인IP를 얻기위해서는 브릿지모드가 필요하고, 브릿지모드로 변경하면 외부에서 접속 하는 IP가 변경되는 것을 확인 할 수 있습니다.


공인 IP란 실제 다른 컴퓨터와 통신할 때 쓰는 IP 주소로, 지역별로 쓸 수 있는 IP 주소의 범위가 있으며 자신이 특정한 아이피 주소를 쓰고 싶다고 마음대로 쓸 수 있는 것이 아니고, 아이피 주소를 관리하는 기관에 사용권을 요청하여 할당을 받아야지 사용할 수 있다고 하는데 SKT 모뎀기준으로 검색을 해보았는데, 브릿지 모드로 변경하면 자동으로 하나까지 할당 된다고 합니다. (정확하진 않습니다.) 

 

공유기에서 관리자 모드로 들어가게 되면 아래와 같이 확인 가능한데 WAN의 IP가 외부 IP, LAN은 내부(해당 공유기) IP 으로 생각하면 됩니다. 외부에서 접속하거나 연결을 시도할때 WAN의 IP를 통해 접속하면 됩니다.

운용모드 NAT / 연결방식 DHCP

 

맥미니 원격 접속 설정

그리고 포트 포워딩을 하기 위해서는 맥미니의 내부 IP를 알아야 합니다. 우선 저는 맥미니와 공유기간 무선으로 연결을 하였고

시스템설정 > 일반 > 공유 > 원격로그인

 

해당 설정창에서 현재 맥미니의 내부 IP를 확인할 수 있습니다. ssh macmini@(내부아이피) 를 입력하면 같은 내부 에서는 터미널로 ssh 접속이 가능합니다. 원격로그인 설정창에서, 원격로그인과 디스크 접근 허용을 설정 시킵니다. 해당 설정을 키는 이유는 AWS EC2 접속처럼 맥미니 내부로 접속 가능하게 만들기 위해서 입니다.

추가적으로 맥미니를 재부팅 시키면 IP가 변경되어있어 고정값으로 수정하려했지만, 인터넷이 안되는 현상과 맥미니를 계속 켜놓을 것이라 우선적으로는 고정시키지는 않았습니다. 그리고 아래 설정으로 하루종일 맥미니를 켜놓아도 IP가 변경되지 않음을 확인 할 수 있었습니다.
(고정 아이피로 변경하게 된다면 해당 글을 수정하겠습니다.)

 

 

포트포워드

그리고 포트포워드를 설정해 주겠습니다. 요청한 포트로 내부 포트에 이어주는 역할인 것인데, 내부IP는 원격설정에서 알아낸 맥미니의 IP 주소를 입력하고 외부포트 내부포트는 사용하고자 하는 포트로 동일하게 설정해 주면 됩니다.

 

마지막으로 ssh 접속을 하게되면 기본 22을 보안적으로 바꾸는게 좋다고 생각하여 변경하였습니다. (참고글)

그래서 ssh 접속 포트도 22번에서 다른 포트로 변경하면서 추가적으로 포트포워드를 설정해주었습니다.

 

SSH 포트 변경

/etc/services 파일 수정

아래 명령어로 22 포트로 변경하고자 하는 포트를 수정합니다.

sudo vi /etc/services

 

22/udp -> xxxxx/udp

22/tcp -> xxxxx/tcp

 

SSH 설정 변경

sudo vi /etc/ssh/sshd_config

 

주석처리되어있는 22포트를 변경하고자 하는 포트로 변경시켜 줍니다. (Port 22 -> Port xxxxx)

 

 

SSH 재시작

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

 

그리고 해당 명령어로 재실행을 시켜주면, 22포트는 더 이상 접속 할 수 없게됩니다.

원격 접속은 여기까지 설정해 주면 가능하고 설정한 포트로만 접속 가능하게 됩니다.

 

 

Nginx 설치

그리고 서버를 돌리기 위해서 원하는 포트로 통신을 위해 homebrew로 nginx를 설치하였고 경로는 /opt/homebrew/etc/nginx 이며 맥은 우분투와 설치경로가 다르니 확인이 필요합니다. 그리고 테스트 하기위해 WAN IP와 사용하고자 하는 서버 포트를 설정하여 설정합니다. 참고글

 

서버를 돌리고 외부 인터넷인 휴대폰으로 브라우저에 WAN IP주소로 해당 포트를 입력하면 통해 접속 가능합니다.

 


AWS EC2로만 서버를 배포를 했었는데, 직접 연결을 설정해 보면서 막연한 개념을 실체화 해서 본 느낌이고 서버비를 아낄 수 있는 것에 기분이 많이 좋았습니다. 거의 완성된 맥미니로 설정한 것이라 편의성에서는 아주 좋았고, 앞으로는 도메인을 연결하고 프로젝트를 띄울 수 있게 하려 합니다.

 

 

참고

https://sulmasulma.github.io/etc/2022/11/06/macmini-setting.html

http://www.codns.com/b/B05-231

https://kibbomi.tistory.com/219

 

 

반응형