우리가 자주 사용하는 URL은 사용자가 알아보기 쉽게 하는 등의 이유로 IP 주소를 알파벳으로 바꾼 것
--> 이렇게 변환해주는 시스템을 DNS 라고 함
컴퓨터가 통신할 수 있도록 컴퓨터마다 가지는 고유한 주소
--> 정확히는 네트워크가 가능한 모든 기기가 통신할 수 있도록 가지고 있는 특수한 번호
--> 서버도 하나의 주소를 가지고 있음
하나의 IP에 여러 포트가 있음
--> 하나의 포트에 하나의 프로그램을 실행시킬 수 있음
이전 장에서 EC2 인스턴스에 옮긴 프로젝트를 실행시켰어도, 현재 접속 할 수 없습니다.
그 이유는
"집 내부는 정리를 끝냈지만, 대문을 열지 않았기 때문에 사람들을 초대할 수 없다"
라는 한 줄로 정리 할 수 있을것 같습니다.
즉, 서버를 외부에 공개하려면 대문 == 포트(Port)를 열어야 합니다.
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선택하면 자동으로 설정될 것임)
[인바운드 규칙이 아래와 같이 완성됨]
이렇게 하면 포트를 외부에 여는 작업이 완료된 것
--> 아직 우리는 Node.js 서버엔 접속 할 수 없음
--> 그 이유는 대문은 80포트로 열어놨지만, 우린 내부적으로 3000포트를 운영해서 Node.js 서버를 돌리고 있기 때문
--> 즉, 서버 코드로는 3000번 포트를 사용하고, EC2 서버는 80번 포트를 열어놨으니 그 둘을 연결 시키는 작업이 필요한 것이다.
--> Node.js 서버 포트를 80으로 바꾸면 해결되지만,
보안을 생각하며 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포트가 숨겨져 있는 것
도메인을 구매한다는 것은, 네임서버를 운영해주는 업체에, IP와 도메인 매칭 유지비를 내는 것
--> 한국 또는 글로벌 업체 어디든 상관 없지만, 우리는 한국의 '가비아'라는 회사에서 구입
가비아 링크 : https://my.gabia.com/service#/
--> 이후 10분 정도 기다리면 완료!
( 네임서버에 내 도메인-IP가 매칭되는 시간이 필요 )
내 IP주소로 지금 node 서버가 잘 돌고 있나 먼저 확인
약간의 시간을 가진 후, 내 도메인으로 접근하면, 접속이 됨