서버배포를 위한 네트워크

oune·2022년 8월 20일
0
post-thumbnail

발표일시: August 18, 2022
분야: 네트워크, 배포, 서버
유튜브: https://youtu.be/wFRE107XsT8

내용 요약

간단한 네트워크 기초를 기반으로 교내 혹은 사설망에서 서버를 배포하는 방법들과, 발생가능한 문제점과, 해결방법을 제시함

네트워크 기초

인터넷 에서는 계층적으로 구성되어있다. ISP 가 제공하는 통신 회선을 라우터와 스위치를 이용하여 최종적으로 종단시스템에 위치한 우리가 사용하는 장치나, 서버로 연결되게 된다.

네트워크에 대해서 더 전체적으로 기술하는 것도 가능하지만. 서버를 어떻게 구축하여 배포하는것에 대한 부분에서 필요한 내용으로 정리해보려 한다.

라우터의 경우 규모가 있는 경우에서만 사용하게 되기 때문에 이번 글에서는 생략하도록 한다.

스위치에 연결된 LAN 케이블로 장치를 연결한다면 해당 장치는 공인아이피를 통하여 외부네트워크에 접속할수 있다. 또한 같은 스위치를 통해 접속한 장치끼리는 인터넷을 거치지 않고 직접적으로 통신이 가능하다.

Gateway 는 네트워크에서 다른 네트워크로 이동하기 위해 거쳐야 하는 지점을 뜻한다. 네트워크 스위치에서 연결된 회선중 외부 인터넷으로 접속 할 수 있는 IP회선을 게이트웨이로 설정하면 인터넷에 접속할 수 있다.

공유기를 통해 장치를 연결한 경우에는 PAT 기술을 통해 사설 IP 가 할당된다. 사설아이피를 사용하여 서버를 배포한 경우에는 인터넷에서는 사설IP 로 접속이 불가능 하므로 같은 공유기에 연결된 경우가 아니라면 접속이 불가능하다.


공유기의 공인IP 를 이용하여 배포 하였다 하더라도, 공유기까지 데이터가 도착할수 있지만. 추후 공유기에 연결된 장치까지는 라우팅이 불가능 하므로 공유기에 연결된 장치로 서버를 배포 하고자 한다면, 포트포워딩 설정을 이용하는 것이 좋다. 이외의 방식으로는 하마치를 이용하거나, 다른 기술을 활용할 수 있다.

인터넷 설정


윈도우와 리눅스의 ip 설정

DNS 설정의 경우 통신사에 제공된 DNS 사용한다, 네트워크를 테스팅 할 경우 구글 DNS 8.8.8.8 를 이용하면 최대한 인터넷 접속이 가능하도록 시도한다.

방화벽

방화벽은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템을 의미한다. 서버를 구축할때 처음 문제로 만나는 경우가 많다. 배포를 위해 설정한 포트가 방화벽에 의해 차단된다면 정상적인 접속이 불가능하다. 따라서 서버를 배포하기위해서 특정포트의 방화벽을 설정하는 것은 필수 적이다.
리눅스에서의 방화벽 설정은 초기에는 사용법이 비교적 간단한 UFW 나 Firewalld 를 추천한다

sudo ufw enable
sudo ufw allow 80/tcp
yum install firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp

IP 바인딩


MariaDB의 bind-address , jupyter notebook 의 c.NotebookApp.ip 의 속성은 어떤 아이피로 온 요청에 응답 할지를 결정한다. 따라서 공인 ip 로 할당하거나, 0.0.0.0 처럼 모든 아이피로 설정해야 올바르게 접속이 가능하다.

HTTP/HTTPS 문제


브라우저가 HTTPS 가 적용된 사이트에서 HTTP 로의 접속을 제한함.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

HTML 의 Head 에 위의 코드를 추가하여 해결되는 경우도 존재하지만. 해결이 안되는 경우도 존재 하므로 SSL인증서를 미리 발급하거나, 미리 프로토콜을 하나로 통일할 필요가 존재함.

서버리스

개발자가 서버의 구성, 유지관리, 업데이트를 더이상 고려하지 않아도 되는 비용 효율적이고 확장가능한 솔루션.

물리적 서버구축이 원활하게 불가능 한 경우도 존재하므로, 구글 클라우드 플랫폼 이나 아마존 웹 서비스를 활용하는 것도 장점이 존재함.

대상

  • 백엔드분야에 관심있으신 분
  • 앞으로 서버배포 작업을 할 가능성이 있는 분
  • 대학교 1~2학년
profile
어느새 신입 개발자

0개의 댓글