AWS에 node.js 배포하기 - 04 - 서버의 대문 설정 --> 포트 설정, DNS(도메인) 설정

하이루·2021년 12월 17일
7
post-custom-banner

DNS, IP, port에 대한 정의

DNS --> ( Domain Name System )

우리가 자주 사용하는 URL은 사용자가 알아보기 쉽게 하는 등의 이유로 IP 주소를 알파벳으로 바꾼 것

--> 이렇게 변환해주는 시스템을 DNS 라고 함


IP 주소(줄여서 IP라고 부릅니다)

컴퓨터가 통신할 수 있도록 컴퓨터마다 가지는 고유한 주소

--> 정확히는 네트워크가 가능한 모든 기기가 통신할 수 있도록 가지고 있는 특수한 번호

--> 서버도 하나의 주소를 가지고 있음


포트(port)

하나의 IP에 여러 포트가 있음
--> 하나의 포트에 하나의 프로그램을 실행시킬 수 있음


EC2 인스턴스 포트 설정

이전 장에서 EC2 인스턴스에 옮긴 프로젝트를 실행시켰어도, 현재 접속 할 수 없습니다.

그 이유는

"집 내부는 정리를 끝냈지만, 대문을 열지 않았기 때문에 사람들을 초대할 수 없다"

라는 한 줄로 정리 할 수 있을것 같습니다.

즉, 서버를 외부에 공개하려면 대문 == 포트(Port)를 열어야 합니다.

EC2에서 포트 열기

1. EC2 콘솔로 가서 보안 탭 --> 보안 그룹 클릭


2. 인바운드 규칙 부분에서 인바운드 규칙 편집 버튼 클릭


3. 규칙 추가 버튼을 클릭한 후, 새로운 포트를 열어줄 규칙 설정

4가지 규칙을 추가 할 것

  • 아래 1, 2번의 경우, 브라우저에서 웹 서버에 접속하기 위한 기본 포트 설정이다.
    --> 따라서 홈페이지 같은 웹서버를 만든다고 한다면, 그냥 아래의 1,2번으로 설정해주면 된다.

1. 4버전 IP를 통해 브라우저에서 EC2서버에 접근하기 위한 포트

유형 : HTTP --> 사용자가 브라우저에서 접속할 것이므로
포트 --> HTTP일 경우 자동으로 80번 설정됨

소스 : IPv4   --> IP양식 : 0.0.0.0/0  
  (아마  IPv4선택하면 자동으로 설정될 것임)

2. 6버전 IP를 통해 브라우저에서 EC2서버에 접근하기 위한 포트

유형 : HTTP --> 사용자가 브라우저에서 접속할 것이므로
포트 --> HTTP일 경우 자동으로 80번 설정됨

소스 : IPv6   --> IP양식 : ::/0    
 (아마  IPv6선택하면 자동으로 설정될 것임)
 

3. 4버전 IP를 통해 Robo 3T를 통해 내 local 컴퓨터에서 EC2안의 mongoDB에 접속하기 위한 포트

유형 : 사용자 지정 TCP 
포트 --> 27017      --> Robo 3T가 27017포트를 사용하기 때문

소스 : IPv4   --> IP양식 : 0.0.0.0/0  
  (아마  IPv4선택하면 자동으로 설정될 것임)

4. 6버전 IP를 통해 Robo 3T를 통해 내 local 컴퓨터에서 EC2안의 mongoDB에 접속하기 위한 포트

유형 : 사용자 지정 TCP 
포트 --> 27017     --> Robo 3T가 27017포트를 사용하기 때문

소스 : IPv6   --> IP양식 : ::/0    
 (아마  IPv6선택하면 자동으로 설정될 것임)
 

[인바운드 규칙이 아래와 같이 완성됨]

이렇게 하면 포트를 외부에 여는 작업이 완료된 것

4. 우리가 만든 서버에 맞게 포트 재설정

--> 아직 우리는 Node.js 서버엔 접속 할 수 없음

--> 그 이유는 대문은 80포트로 열어놨지만, 우린 내부적으로 3000포트를 운영해서 Node.js 서버를 돌리고 있기 때문

--> 즉, 서버 코드로는 3000번 포트를 사용하고, EC2 서버는 80번 포트를 열어놨으니 그 둘을 연결 시키는 작업이 필요한 것이다.

--> Node.js 서버 포트를 80으로 바꾸면 해결되지만,
보안을 생각하며 80포트로 들어온 사람들을 3000 포트로 바꾸는 작업을 할 것이다.

80포트로 들어오는 방문객을 3000번 포트로 보내기

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

80번 포트

80포트란 것은 대표적인 공개 포트

www.naver.com:80

예를 들어 네이버 주소도 뒤에 80포트가 숨겨져 있는 것


서버와 도메인 연결하기

1. 도메인 구입/연결

도메인을 구매한다는 것은, 네임서버를 운영해주는 업체에, IP와 도메인 매칭 유지비를 내는 것

--> 한국 또는 글로벌 업체 어디든 상관 없지만, 우리는 한국의 '가비아'라는 회사에서 구입

2. 구입( 구입하는 부분은 다른 장에 있음 )후 해당 화면에서 연결

가비아 링크 : https://my.gabia.com/service#/

  1. DNS 관리 툴 버튼 클릭

  1. 도메인 연결 버튼 클릭

  1. DNS관리에 --> DNS 설정 버튼 클릭

  1. 호스트 이름에 @, IP주소에 서버의 IP주소를 입력

  1. 완료하면 이런 느낌

--> 이후 10분 정도 기다리면 완료!
( 네임서버에 내 도메인-IP가 매칭되는 시간이 필요 )

  1. IP주소로 접근해보기

내 IP주소로 지금 node 서버가 잘 돌고 있나 먼저 확인

http://내AWS아이피/

약간의 시간을 가진 후, 내 도메인으로 접근하면, 접속이 됨

http://내도메인/


profile
ㅎㅎ
post-custom-banner

0개의 댓글