AWS VPC

J-USER·2023년 2월 19일
0

DevOps

목록 보기
6/10
post-thumbnail

VPC란 무엇인가?

AWS 공식문서
1. 사용자의 AWS 계정 전용 가상 네트워크입니다.
2. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있습니다.
3. EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있다.

공식 문서를 요약하자면, VPC는 가상 네트워크다. 라고 요약할 수 있다. 가상 네트워크를 많이 들어봤는데.. 정확히 그게 뭔데?! 라고 말하면 잘 생각이 나지 않는다.

그러다 ( 출처 ) Harry 님의 미디엄에서 아주 Git똥찬 예시를 발견하였는데..

회사에 인터넷이 이렇게 깔려있다고 치자. 층은 A , B로 나뉘어져 있지만, 주황회사와 파란회사는 사실상 다른 회사라고 가정하자.

그렇다면 아래와 같이 네트워크를 분리 시켜야한다.

그럼 어떻게 분리할 수 있을까? 기존의 인터넷선을 다 뜯어내고, 각각의 회사마다 전용선을 다시 깔아야할까?

이를 해결하기 위해 나온게 VPN(가상사설망) 이다. 사실상 같은 네트워크상에 있지만, 논리적으로 서로를 분리시킨 상태를 의미한다.

🙋 근데 그게 VPC는 아니잖아요
🤖 VPN을 클라우드에 적용하면 VPC겠지
🙋 뭔가 더 쉽게 설명해줘
🤖 공홈 설명 3을 보면 이해가 쉽다.

설명 3을 보면 EC2 인스턴스 같은 AWS 리소스를 VPC에서 실행할 수 있다. 라고 정의했다. 왜 이런 기능을 VPC의 정의에 넣었을까? 반대로 생각해보자.

만약 vpc없이 aws리소스를 사용하면 어떤 문제가 생길까?

위와 같이 한 계정에서 만든 모든 aws 리소스들이 한 클라우드 위에 떠있을 것 이다.

그렇게 된다면, 파란색 회사가 새로운 직원을 뽑아서 컴퓨터를 추가할때, 주황색 회사에게도 알려줘야하는 엄청난 복잡도를 높이게 될것이다.

그래서 아래와 같이 VPC를 서로 나눠, 각자 필요한 자원들만 그 안에 위치시켜 사용하도록 하는 것이다.

요약하자면, VPC는 클라우드에서 사설 네트워크를 만들어줌으로써 보안성을 향상시키고, 네트워크 관리를 쉽게 할 수 있도록 도와준다.

VPC 구축 과정

VPC는 한마디로 "마을" 을 구축하는 과정과 유사하다.

사설 IP 대역 설정

먼저 어디까지 "마을"로 지정할건지 설정해야한다.

🙋 이걸 왜 하는데?
🤖 놀이터 가자고 친구가 그러면 당연히 "동네" 놀이터를 의미하지, 3시간 걸리는 곳의 놀이터를 가지는 않을꺼잖아?
🙋 당연하지..?
🤖 그러니까 내부적으로 놀이터의 위치(사설IP)를 사설 IP 대역에서 할당 받는거지
🙋 그럼 다른 VPC에서는 내 VPC를 접근 못하는거야? 촌장이 쇄국정책 펼치냐?
🤖 그럴땐 마을 주소 (공용IP) 를 알려주면 우리 동네 놀이터로 올 수 있겠지

서브넷

서브넷은 VPC를 잘게 쪼개는 과정이다. 거대한 "VPC 마을" 에서 존재하는 "우리집", "놀이터" 라는 서브넷을 의미한다. VPC 보다 작은 단위기 때문에 IP의 범위도 더 작은 값을 가지게 된다.

🙋 왜 이렇게 잘게 나눔..?
🤖 마을 내에서 더 많은 네트워크망을 만들기 위해서야

라우팅 테이블, 라우터

네트워크 요청이 발생되면 어디로 가야할지 우선 라우터로 향하게 됩니다. 이 라우터는 목적지를 알려주는 "VPC 마을"의 가이드입니다. 이 가이드는 각각 정의된 라우팅 테이블을 보고 목적지를 알려줍니다.

만약 서브넷A에 대한 요청이 있다면, 이 서브넷A의 라우팅 테이블을 보고 VPC 네트워크 범위를 갖는 요청은 로컬에서 찾도록 되어있다. 하지만 외부로 통하는 다른 트래픽은 인터넷 게이트 웨이를 통해 처리하게 된다.

게이트웨이 및 엔드포인트

VPC와 인터넷을 연결해주는 하나의 관문이다. 서브넷B의 라우팅테이블을 잘보면 0.0.0.0/0으로 정의되어있습니다. 이뜻은 모든 트래픽에 대하여 IGA(인터넷 게이트웨이) A로 향하라는뜻이다.

인터넷과 연결되어있는 서브넷을 퍼블릭서브넷, 인터넷과연결되어있지않는 서브넷을 프라이빗서브넷이라고한다.

네트워크 ACL과 보안그룹

  • 보안그룹 : 모든 허용을 차단하도로록 기본 설정 되고 필요한 설정은 따로 허용해줘야한다. 각각의 보안 그룹별로, 서브넷, 인스턴스에도 따로 설정할 수 있다

  • 네트워크 ACL : 모든 허용을 허용하고 불필요한 트래픽을 막는 용도이다. 서브넷 단위로 적용되고 보안 그룹과 충돌이 있을시 보안 그룹을 우선 순위로 한다.

NAT 게이트웨이

프라이빗서브넷이 인터넷과 통신하기위한 아웃바운드 인스턴스이다.

profile
호기심많은 개발자

0개의 댓글