본문 바로가기
프로젝트/Django - How Dimt?

Django poj.c E0) AWS 대신 NAS - 30일차

by Fola 2022. 5. 18.

Code E - Server 0번 글, 프로젝트 30일차 (화)

 

 

(캡쳐) nas ssh 터미널, root 권한으로 docker 명령어 실행

 

 

 

1.

지금부터는 코딩보다는 서버 호스팅에 도전하는 시간.

리눅스, 도커, 네트워크 지식의 부족함을 여실히 느끼고 있다.

 

검색하고 배워서 적용하고 익히자 ⭐️

 

 

 

2.

AWS와 같은 클라우드 인스턴스는 비용 발생 위험이 있고

나는 Docker 컨테이너를 띄울 수 있는 시놀로지 NAS를 가지고 있기 때문에

웹 개발을 하게 된다면 내 서버에 직접 띄울 생각이었다.

 

웹 서버는 아니어도 지난 프로젝트를 거치며

사용하고 있는 모든 데이터베이스는 NAS 위에 도커 컨테이너로 사용하고 있다.

 

 

 

3.

웹 서버도 DB 서버를 구축하듯 간단하게 서버를 올리고 코드를 복사하면 될 것이라 생각했는데

만만치가 않았다.

 

계획은 이러했다.

일단 마치 AWS나 구글 클라우드 VM 인스턴스를 사용하는 것과 유사한 환경을 만들기를 원했다.

위의 환경을 이용한 웹 호스팅 정보가 매우 많기 때문이다.

 

리눅스 기반의 도커 컨테이너를 하나 올려놓고

도커 인 도커 방식으로 DB, Nginx, Gunicorn 등을 도커 컨테이너로 엮을 계획이었다.

 

하지만 NAS 위에서 도커 인 도커 환경을 구축하기가 쉽지 않았다.

시놀로지 NAS가 제공하는 도커는 GUI 환경이고

CLI 가 아닌 GUI 환경이 제공하는 기능은 한계가 있었다.

 

대표적으로 --privileged 옵션을 추가할 방법이 없다.

 

 

 

4.

현재 진행 상황

 

NAS 위에서 CLI 환경에서 도커를 사용하기 위해

NAS 자체 ssh를 열고 접속, root 권한 획득 이후

도커 명령어 사용이 가능함을 확인했다.

 

도커 CLI 환경에서 dind(Docker In Docker) 이미지로 컨테이너를 생성한 다음

dind 안에서 다시 필요한 컨테이너를 내부 브릿지 네트워크로 엮을 계획이다.

포트 포워딩은 dind 컨테이너로 접근하는 모든 포트를 열어두고

dind 내부에서 컨테이너 생성 시 필요에 따라 웹 서버로 접근하는 포트 정도만 개방하면 

동작하지 않을까 기대하고 있다.

 

 

 

5.

ssh 터미널 개방이 보안적인 측면에서 조금 부담스러웠지만,

공유기에서 22번 포트(실제로는 덜 알려진 다른 포트로 변경) 로 포워딩만 하지 않는다면

홈 네트워크 바깥에서 NAS ssh 접속은 불가능하지 않으리라 생각하고 있다.

 

실제로는 어떻지 모르겠다.

네트워크 지식이 더 있었다면 좋았을 텐데.

 

이런 순간마다 주변에 물어볼 사람이 주위에 한 명도 없어서 슬프다.

 

이런 궁금증을 여쭤 볼 수 있는 선배가 존재할 것이라는 기대만으로도 

취업이 하고 싶어지는 날이다. 

 

 

 

댓글