정환타 개발노트

[AWS 웹서비스 구축] 1. 네트워크 구축(VPC, Subnet, Route Table, IGW) 본문

Dev-AWS

[AWS 웹서비스 구축] 1. 네트워크 구축(VPC, Subnet, Route Table, IGW)

JungHwanTa 2020. 1. 16. 20:11

 

 

이전에 포스팅을 한 Spring을 공부하며 만든 웹 서버를 AWS에 올려 아래와 같은 서비스 구조로 서비스를 배포하려 한다.

(https://junghwanta.tistory.com/7)

AWS EC2와 RDS를 이용하려 하지만, 가장 먼저 선행되야 할 것은 VPC 서비스를 이용하는 것이다.

 

 

AWS VPC(Virtual Private Cloud)란?

 

AWS Cloud 내부에서 구성되는 사용자의 AWS 계정 전용 가상네트워크이다. 이렇게 생성된 가상 네트워크에서 AWS의 리소스를 사용할 수 있다. 

기본적으로 AWS에서는 default VPC를 제공하지만, 사용자는 새롭게 VPC를 생성해서 IP주소 범위와 VPC범위를 정하고, 서브넷을 추가할 수 있으며 라우트 테이블을 구성할 수 있다.

 

따라서 이번에는 default VPC를 사용하지 않고 사용자 VPC를 만들어 웹서비스에 활용하려 한다.

 

Subnet?

 

서브넷은 쉽게 VPC 내부에서 나누어 가진 영역들이라고 할 수 있다. VPC는 Public 과 Private 두가지가 존재하는다.

 

Public 서브넷은 인터넷 게이트웨이를 통해 외부로 접속이 가능하고 Public IP와 Elastic IP를 보유한 인스턴스를 가질 수 있다.

 

Private 서브넷은 외부와 차단되어 있으며, Private 서브넷 내부의 인스턴스들은 오직 다른 서브넷과만 연결이 가능하다.

 

 + Public 서브넷은 Nat instance를 통해서 Private 내부의 인스턴스들이 인터넷을 가능하게 만들 수 있다.

 

따라서 웹서버를 배포할 EC2 생성에 앞서, 먼저 VPC를 구축해보겠다.

 

VPC 생성

 

1. [Service]에서 VPC를 검색하여 들어간 후 [VPC 생성]을 클릭한다.

 

 

2. 아래와 같이 작성 후 VPC를 생성한다.

 

 

다음으로는 VPC 내부에 2개의 서브넷을 생성하여 아래의 그림과 같은 아키텍처를 구상하려한다.

첫번째로는 public 서브넷을 생성하고 두번째로는 private 서브넷을 생성한다.

 

 

 

서브넷 구축

 

1. 좌측 탭의 서브넷으로 이동 후 [서브넷 생성] 버튼 클릭

 

 

2. 아래와 같이 먼저 public 서브넷에 대한 정보를 작성한 후 생성한다.

(VPC는 이전에 생성한 VPC를 선택한다.)

 

3. 위의 방식과 동일하게 private 서브넷을 작성한다.

이름 태그 : jungstagram-private

IPv4 CIDR 블록 : 172.16.1.0/24

 -> 아래와 같이 Public,Private 두가지 서브넷이 추가로 생성 되었다.

 

 

인터넷 게이트웨이

다음으로는 인터넷 게이트웨이를 생성한다.

인터넷 게이트웨이를 생성하는 이유로는 인터넷 라우팅이 가능한 트래픽에 대한 VPC 라우팅 테이블에 대상을 제공하기 위해서와,

퍼블릭 IPv4 주소가 할당 된 인스턴스에 대해 NAT를 수행하기 위해서이다.

 

1. 좌측 탭의 인터넷 게이트웨이에 들어간 후, [인터넷 게이트웨이 생성]을 클릭한 후, 'Name tag'에 게이트웨이 이름을 작성한다.

 

 

2. 게이트웨이 생성 후 'detached' 상태를 'attached'로 변경(활성화)하기 위해,

방금 생성한 게이트웨이를 선택한 후 [작업] 탭의 [VPC에 연결]을 클릭한다.

 

 

3. 이전에 생성한 VPC를 선택한 후 [연결] 버튼을 눌러 연결을 완료해준다.

 

Route Table 

다음으로 Route Table을 생성해 ip address에 routing 경로를 정의하여 subnet에서 밖으로 나가는 트래픽에 대한 경로를 설정해준다.

생성한 Route Table으로 Public 서브넷을 위한 설정과 Private를 위한 설정 두가지를 한다.

 

1. 좌측의 탭에서 라우팅 테이블 선택후 [라우팅 테이블 생성] 버튼을 누른다.

 

 

2. 아래와 같이 이름을 작성하고 VPC를 연결한 뒤 [생성] 버튼을 누른다.

 

3. 생성된 라우팅 테이블 선택 후 하단의 [서브넷 연결]에 들어가 [서브넷 연결 편집] 을 클릭하여, public 서브넷과의 연결을 설정한다.

 

 

4. 저장 후 하단의 [라우팅]에서 [라우팅 편집]으로 들어가 모든 네트워크를 인터넷과 연결해준다.

 

5. [라우팅 추가] 버튼을 눌러 대상에 0.0.0.0/0을 작성하고 대상은 internet gateway 선택 후, 이전에 만든 igw를 선택해 준다.

 

 

6. 다음으로 private에 대한 라우팅 테이블 설정을 진행한다. 위의 1~2방식을 동일하게 진행(이름은 변경)한 후 3의 과정에서 private 서브넷을 연결한다.

 

 

이렇게 진행 하게 되면 아래의 그림에서 VPC와 서브넷(subnet)을 생성하고 Intetnet gatway, Router 설정과 Route table(라우팅 테이블) 설정까지 하였다. 다음 포스팅에서 NAT 게이트웨이를 생성하도록 해보겠다.

 

 

이상 무!

Comments