* 공부하면서 스스로 이해하기 위해 정리한 글입니다. 사실이 아닌 정보가 있을 수 있습니다..(많을 것입니다....) *
✅Intranet 인트라넷 (사내망, Private Network)
대학, 연구기관, 집과 같이 갇힌 공간에 국한된 네트워크
인트라넷은 외부로 트래픽이 나가지 않아서 보안을 위해 혹인 개인/단체적 활용을 위해 사용된다.
인트라넷을 이해하기 위한 한가지 상황을 살펴보자.
중학교, 고등학교 때 컴퓨터실에서 실습한 경험을 떠올려 보자. 컴퓨터실에 가면 여러 대 컴퓨터가 하나의 장치(LAN)에 연결된 걸 볼 수 있다.
이렇게 LAN에 직접적으로 연결된 컴퓨터들이 인트라넷을 구성하고 있다.
동일한 LAN에 연결된 컴퓨터들은 온라인 서비스가 불가능해도 같이 게임을 진행할 수 있다고한다.
어떻게 진행할 수 있을까? 바로 친구가 ip주소를 알려주면 그 ip로 접속해서 lan-play가 가능하다. (원격 접속같은 개념으로 생각하면 될듯?)
여기서 의문인 점이 하나 생겼다.
그럼 프로젝트하면서 자주 보는 localhost란건 뭘까? 내 ip주소가 아닌가?
결론은 NO
일단 localhost와 내ip 주소의 차이점을 살펴보자
🔷localhost 와 내 IP
🔷localhost란
컴퓨터 내부에서 자기 자신을 가리키는 네트워크 주소이다. 보통 127.0.0.1인 ip주소와 연결된다.
localhost는 인터넷 연결없이도 로컬 테스트 및 개발에서 사용된다. 오직 내 컴퓨터 내에서만 접근할 수 있고, 다른 네트워크나 외부기기에서는 접근할 수 없다.
따라서 이것은 사설IP이다
🔷내 IP주소는?
IP주소는 네트워크 상에서 기기(컴퓨터, 스마트폰 등)을 식별하기 위한 고유 주소이다.
공인 IP(public IP)와 사설 IP(private IP)로 나뉘게 된다.
- 공인 IP(public IP): 인터넷에서 해당 기기를 식별하기 위한 주소로, 외부 네트워크에서도 접근할 수 있다.
- 인터넷에 직접 연결되는 라우터(혹은 컴퓨터)에 부여되는 주소이고, ISP에 의해 제공되는 주소로 흔히 sk브로드밴드, kt 등이 제공해주는 주소를 말한다. *ISP는 아래 gateway 설명할 때 다시 나오는 개념이다*
- 회사/가정의 LAN에 있는 컴퓨터는 사설 IP를 할당 받는다.
- 이 공인 IP로 다른 LAN으로 인트라넷을 이루고 있는 컴퓨터들과 통신할 수 있는 것이다.
- 사설 IP(private IP): 로컬 네트워크(예: 집이나 회사 네트워크 (인트라넷을 말하는 거 같다)) 내에서만 유효한 주소로, 외부에서는 접근할 수 없다.
내 IP주소의 용도는 외부 네트워크와 통신할 때 사용되며, 인터넷에 연결된 다른 기기와 통신하거나 서버에 접근할 때 필요하다.
공인 IP는 인터넷 어디서든 접근 가능하지만, 사설 IP는 해당 네트워크 내에서만 접근 가능하다고 한다.
위에서 설명한 lan-play역시 사설 IP로 로컬 네트워크 내에서만 유효한 주소로 볼 수 있겠지?
그럼 인트라넷은 동일한 공유기나 라우터에 연결되어 있는 컴퓨터들만이 이룰 수 있는 네트워크니까 멀리 있는 LAN에 속할 수 없겠네?
VPN을 사용하면 그게 가능하다.
✅VPN(Virtual Private Network)
가상의 인트라넷(사내망)을 구축.
공용 네트워크(예: 인터넷) 를 통해 프라이빗 네트워크에 안전하게 연결하기 위한 기술이다
내가 한국에 있지만, 미국 네트워크에 연결된 LAN의 일부에 속할 수 있다. 한국에 있는 사람이 미국의 라우터에 연결해서 private 네트워크가 돼서 접근할 수 있다는 것이다.
✅VPC(Virtual Private Cloud)
클라우드 제공자(예: AWS, Google Cloud, Azure)에서 제공하는 가상 네트워크 환경이다.
사용자가 정의한 IP범위와 서브넷을 가진 가상 네트워크를 생성할 수 있다.
2024년 초에 RDS와 EC2에 각각 Public IP를 할당해서 외부 접속으로 사용하고 있었다. 근데 AWS Public IP 정책이 바뀌면서 1개 이상의 Public IP를 사용하면 요금이 부과되는 문제가 발생했다. 그래서 일단 RDS를 외부 접속하지 못하게 바꾸고, EC2를 통해 RDS를 접속할 수 밖에 없었다.
이때 사용한게 VPC를 사용하였다.
그 당시에는 개념이 뭔지도 모르고 그냥 사용했는데 지금 정리해보고자 한다.
이 블로그를 보고 VPC를 구성해서 사용중이다. 한번 하나씩 분석해보자
CIDR(Classless inter-Domain Routing): 클래스 없는 도메인간 라우팅 기법이다. A,B,C,D,E 이런 클래스로 네트워크 영역, 호스트 영역을 나누지 않고 유연하게 나눌 수 있다. 나 같은 경우 10.0.0.0/16으로 16비트를 네트워크 영역으로 지정했고, 2^16개의 ip주소를 사용할 수 있다.
22포트는 외부에서 VPC에 있는 나의 EC2에 접근하도록 규칙을 설정한 것이고 3306 포트는 VPC 내부에서 EC2를 통해 RDS에 접근할 수 있도록 설정한 것이다. (3306포트에 적용된 소스를 보면 EC2 보안 규칙에 적용된 VPC 보안 그룹의 id이다. 즉 해당 보안그룹을 거쳐 들어온 트래픽만 3306 포트를 통해 받아주겠다는 말)
내 EC2의 private IP를 보면 VPC에서 지정한 CIDR 내에서 할당된걸 볼 수있다.
test-sg인바운드 규칙에서 3306포트도 VPC를 통해서 접속할 수 있도록 했는데... 앞서 배운것 처럼 외부에서 VPC를 접속하려면 게이트웨이가 필요할 듯 싶다. EC2같은 경우 외부 접속이 가능한 이유는 퍼블릭 ip가 할당되어 있으니까 가능한거고(아마도..?)
게이트웨이만 설정한다고해서 외부접속이 가능한 건 아니다. 외부 접속을 하려면 게이트웨이 + 라우팅 테이블이 필요하다
구조가
vpn - 라우팅테이블 - 게이트웨이 로 되어있어서
위 사진이 라우팅 테이블이 가지고 있는 정보이이다.
위 사진에서 destination, target이 있고, 각각 목적지 IP와 target 게이트웨이를 정의해둔 것이다. 특정 게이트웨이로 들어오는 특정 외부IP는 VPC 내에 있는 많은 사설 IP 중에 어떤 사설 IP로 가라고 명시해 둔 것이다.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/gateway-route-tables.html
공식 홈페이지 설명을 가져와보면
다음 게이트웨이 라우팅 테이블에서 172.31.0.0/20 CIDR 블록이 있는 서브넷으로 향하는 트래픽은 특정 네트워크 인터페이스로 라우팅됩니다. VPC의 다른 모든 서브넷으로 향하는 트래픽은 로컬 라우팅을 사용합니다.
나는 VPC안에서 EC2와 RDS에 사설 IP를 부여하여 사용하고 있으므로 라우팅 테이블과 게이트웨이를 설정하면 외부접속이 가능하다!
✅Internet
(외부와 연결되고자하는) 인트라넷을 외부로 모두 연결한 네트워크
외부 네트워크를 말한다. 라우터에 의해 권역을 정의한다.
사내 네트워크린 인트라넷이 내부 사용뿐만 아니라 외부와 연결되고 싶을 때 게이트웨이를 통해 연결할 수 있다.
✅Gateway
내부 네트워크와 외부 네트워크 연결 통로 (톨케이트라고 생각하면 쉽다)
게이트웨이가 내부에서 외부로 소통 가능하게 해준다. 위에서 말했던거 처럼 내부 네트워크는 사설 IP로 서로 소통하며 인트라넷을 이루고 있다고 했다. 이제 외부로 나가서 다른 컴퓨터들과 인터넷을 통해 소통해야하므로 공인 IP로 변환해서 나가야겠지?
그래서 나온게 NAT(Netword Address Translate)이다. private IP 를 public IP로 변환해서 외부와 연결하기 위한 것이다.
위에서 VPC를 사용하여 RDS와 EC2 서브넷을 구성했는데, RDS와 EC2를 외부 접속하기 위해서는 Gateway가 필요한 것이다. VPC만 구성하면 사설 네트워크만 구성된 것이고, 외부 네트워크는 구성되지 않은 것이다.
공인IP(public IP) 설명할 때 ISP에서 제공하는 주소로 외부 네트워크와 통신할 수 있다고 했는데? Gateway와 같은 거 아닌가?
✅ISP(Internet Service Provider)
ISP가 정확히 무엇인가 보면
Gateway와 같은 개념은 아니고, GW 에 연결되어 실제 인터넷과 연결해주는 서비스
인터넷 KT, SKT, LG와 같은 회사들이 자체 제공하는 회선(Fiber)과 이메일, DNS등의 서비스를 제공한다.
- DNS Resolver 서비스를 ISP에서 제공하는 것이다.
Gateway는 그냥 외부와 내부를 연결해주는 "통로"의 역할이고, ISP는 그 통로를 통해서 다양한 "서비스"를 제공해주는 것이라고 이해하면 되겠다..
'ASAC 웹 풀스택' 카테고리의 다른 글
[ASAC 6기] 웹 개발이란 무엇이며, 어떻게 동작하나? FE(2) - JS엔진, JS엔진 비동기 처리 (0) | 2024.08.20 |
---|---|
[ASAC 6기] 웹 개발이란 무엇이며, 어떻게 동작하나? FE(1) -jQuery, React (0) | 2024.08.20 |
[ASAC 6기] 프로그램, 프로세스와 스레드 (0) | 2024.08.19 |
[ASAC 6기] 웹 검색 엔진과 SEO (0) | 2024.08.18 |
[ASAC 6기] 웹 서버 주소 변환 DNS : IP 주소 ↔ 도메인 네임 (0) | 2024.08.18 |