AWS - VPC & Subnet 간단 정리

seeh_h·2021년 1월 22일
5
post-thumbnail

들어가기 앞서

포스팅 내용은 따라하며 배우는 AWS 네트워크 입문책을 기반으로 작성되었습니다.
책정보는 여기에서 확인하실 수 있습니다.

스터디 내용 간단 요약

💡 AWS VPC - 독립된 가상의 클라우드 네트워크
💡 AWS VPC에 퍼블릭 & 프라이빗 서브넷을 직접 생성 및 차이점 확인하기

이번 주는 VPC 및 퍼블릭 & 프라이빗 서브넷에 대해 배우고 직접 VPC를 만들어 보는 실습을 진행해 보았다!

개념 정리

VPC란?

Virtual Private Cloud의 약자로 AWS에서 논리적으로 생성하는 독립적인 네트워크이다.

사용자는 VPC 내에서 IP대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, ACL등을 생성하고 제어할 수 있다.

AWS는 VPC 안에서 다른 가용영역(AZ)에 같은 서브넷 대역을 사용할 수 없다. 예를 들어, 서브넷 A에서 10.0.0.0/24 대역을 사용했다면 서브넷 B에서 10.0.0.0/24 대역을 사용할 수 없다.

즉, 서브넷은 하나의 가용영역(AZ) 안에 종속되어야 한다.


퍼블릭 서브넷 & 프라이빗 서브넷

VPC안에 구성할 수 있는 서브넷 구성으로는 퍼블릿 서브넷과 프라이빗 서브넷이 있다.

퍼블릭 서브넷은 외부와의 자유로운 통신이 가능한, 외부 인터넷 구간과 직접적으로 통신을 할 수 있는 공공 네트워크 이다.

프라이빗 서브넷은 이름에서 유추할 수 있듯, 외부에서 직접 접근할 수 없고 NAT Gateway를 이용하면 외부로 단방향 통신(내부 -> 외부 방향)만 가능하다.

실습

이번주는 VPC를 생성하고, 퍼블릭 서브넷과 프라이빗 서브넷을 생성해 주는 두가지 실습을 진행하여 보았다.

중요한 부분이라고 생각되어서, 실습 과정을 조금 자세히 정리해 보았다. 😊
(이번 실습은 MobaXterm을 사용해서 진행하였는데, Putty는 바로 내 머리속에서 잊혀졌다.😂)

[실습1] 퍼블릭 서브넷 VPC 구성

첫번째 실습은 퍼블릭 서브넷 VPC을 단계별로 구성하여, 단일 퍼블릭 서브넷에 속한 EC2 인스턴스가 외부 인터넷 구간으로 통신하는 것을 해보는 실습이다.

실습은 VPC 생성 -> 퍼블릭 서브넷 생성 -> 인터넷 게이트웨이 생성 -> 라우팅 테이블 생성-> EC2 인스턴스 연결의 순서로 진행됩니다.

모든 단계가 끝나면 위와 같은 네트워크 구성이 완성된다😎

그러면 지금부터 차근차근 진행해보자!


1. VPC 생성

먼저 10.0.0.0/16 대역의 private 네트웍을 하나 생성한다.


2. 퍼블릭 서브넷 생성

VPC 생성 후, VPC 내부에서 10.0.0.0/24 대역을 갖는 새로운 서브넷을 하나 생성해 준다.


3. 인터넷 게이트웨이 생성

이제 생성한 VPC가 인터넷 통신, 즉 외부 통신을 할 수 있도록 인터넷 게이트웨이를 만든다!

생성한 디폴트 게이트웨이를 VPC에 연결해 주는 작업도 같이 진행해 준다😁

이제 VPC 내부의 EC2에서 외부 통신이 가능해졌다!

4. 라우팅 테이블 연결하기

먼저 새로운 라우팅 테이블을 생성하고, 생성한 서브넷에 라우팅 테이블을 연결해 주어야 한다.

그 이후, 아래와 같이 로컬대역(10.0.0.0/16) 말고 외부 인터넷 통신이 가능하도록 디폴트 스태틱 라우팅을 추가한다.


5. 생성한 서브넷에 EC2 인스턴스 추가해서 통신해보기

이제 실제로 EC2 인스턴스를 만들어서 제대로 외부 통신이 되는지 확인해보자.

위와 같이 생성한 VPC와 서브넷 안에 EC2 하나를 생성한다.

이제 생성한 EC2 인스턴스에 들어간 후,
www.google.com으로 ping을 쏴보면❓❓

정상적으로 ping이 가는 것을 확인해 볼 수 있다. 😎😎


[실습2] 프라이빗 서브넷 추가

두번째 실습은 [실습1]에서 만든 VPC 네트워크에 프라이빗 서브넷을 추가하는 과정이다.

두번째 실습도 동일한 과정으로 진행 되는데, 프라이빗 서브넷은 기본적으로 외부와의 통신이 불가하기 때문에 통신을 하기 위해 NAT Gateway를 하나 추가해 주어야 한다.

동일한 과정은 생략하고 NAT GateWay를 추가하는 부분만 살펴보자.😊

주의점
NAT GateWay는 앞에 생성한 퍼블릭 서브넷에 생성 해 주어야 한다.

프라이빗 서브넷에 존재하는 인스턴스가 외부 통신을 하기 위해서는 퍼블릿 서브넷에 있는 NAT 게이트웨이를 거쳐서 한번 NAT되고, 인터넷 게이트웨이를 거치면서 한번 더 NAT된 후 공인 IP를 달고 나가게 된다.

NAT GateWay를 생성한 후, NAT Gateway로의 디폴트 라우팅을 추가한다.

그리고 생성한 프라이빗 서브넷에 EC2 인스턴스를 하나 생성하자.

드디어 퍼블릿 서브넷과 프라이빗 서브넷으로 구성된 하나의 VPC를 완성했다!😎
간단한 네트워크 구성도는 아래와 같다.

그러면, 이제 생성한 EC2 인스턴스로 접근해보자.

프라이빗 서브넷은 외부에서 접속이 불가하기 때문에(애초에 외부에서 접근 가능한 공인 ip가 없다😂😂), 앞서 생성한 퍼블릭 서브넷에 있는 인스턴스를 통해 접근하여야 한다!

먼저 앞서 생성한 퍼블릭 대역에 있는 인스턴스에 접근 한 후,
ssh 접속(root@private-ip)으로 프라이빗 서브넷에 생성한 인스턴스로 접근할 수 있다.

이렇게 프라이빗 서브넷에 존재한 EC2 인스턴스로 접근해서 통신해 보는 과정까지 완료 해보았다😁

후기

저번주 까지는 VPC가 뭔지도 잘 몰랐는데, VPC를 만들고 퍼블릭 서브넷과 프라이빗 서브넷을 구성하고 안에 인스턴스를 추가해 통신하는 과정에서 AWS 네트워크 구성에 대한 큰 그림을 어느정도 경험 해 볼 수 있었던것 같아서 굉장히 유익한 실습이었다!

또한 실습을 진행해보며 든 생각인데, 클라우드를 잘 사용하려면 기본적인 네트워크 지식은 필수라고 느꼈다.😂😂

NAT, 라우팅 테이블, 인터넷 게이트웨이등을 만들고 연결하는 과정이 네트워크 기초지식을 공부하지 않은 상태에서는 이해하기 쉽지 않을 것 같다. (책 안에는 내용을 잘 따라올 수 있도록 필요한 기초지식이 잘 설명되어 있으므로 구매를 추천드린다😁😁)

이번 실습 역시 재미있었다! 최근에 인프라 관련 지식이 많이 늘어나고 있는 것 같아 굉장히 뿌듯하다. 👍👍

profile
주니어 개발자 성장기😎

2개의 댓글

comment-user-thumbnail
2021년 1월 25일

우헤헤~ 모임장 가시다입니다. 우연히 구글링하다가 들어왔는데 역시나 저희 스터디였군요.
스터디 내용도 깔끔하게 잘 정리해주시고 있네요. 그럼 자주 찾아와서 보겠습니다 :)

1개의 답글