본문 바로가기
DevOps/Architecture

3tier아키텍쳐구성2-네트워크 설정(3.IGW 4. NAT 5.라우팅테이블)

by 카프리썬 2020. 2. 10.
728x90

전체적인 3티어 아키텍쳐 목차 보고오기

https://pearlluck.tistory.com/78?category=830422

 

3tier아키텍쳐 전체적인 구성

1. 아키텍쳐구성도 2. 네트워크 구성 1. vpc생성 Ipv4 사이더주소 - 10.0.0.0/16 2. 서브넷 생성 3. 인터넷게이트웨이 생성 VPC와 외부인터넷을 연결해주는 하나의 관문으로 출발지가 ‘외부’ 외부인..

pearlluck.tistory.com

전체적인 3티어 아키텍쳐 1,2 보고오기

https://pearlluck.tistory.com/68?category=830422

 

3tier아키텍쳐 구성1-네트워크 설정(1.VPC 2.서브넷)

▼▼▼전체적인 3티어 아키텍쳐 목차 보고오기▼▼ https://pearlluck.tistory.com/78?category=830422 3tier아키텍쳐 전체적인 구성 1. 아키텍쳐구성도 2. 네트워크 구성 1. vpc생성 Ipv4 사이더주소 - 10.0.0.0/..

pearlluck.tistory.com

네트워크 설정

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

4. NAT게이트웨이 생성

5. 라우팅테이블생성

 

 

 

3. 인터넷게이트웨이

VPC와 인터넷을 연결해주는 하나의 관문 출발지가 외부일때

외부에서 들어온게 내부 VPC안으로 들어오도록 연결하는장치
ex)
외부인터넷에서 접속하면? ->인터넷게이트웨이를 타고-> VPC안으로들어와서-> ELB타고->웹서버 접속

웹서버가 외부로 나가려면? -> ELB타고 -> VPC밖으로 나가려고 ->인터넷게이트웨이 타고 -> 외부로 나감

 

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

3-2. 인터넷게이트웨이를 해당vpc에 attach

0.0.0.0/0 : 디폴트경로를 제외한 모든 주소는 인터넷 게이트웨이로 외부로 나가도록 보내라!

 

4. NAT게이트웨이

물리적으로 퍼블릭 서브넷에 위치

프라이빗 서브넷(내부)들이 외부랑 연결되는데 사용 출발지가 내부일때

외부에서 들어오는 경로가 아니라, 라이빗 서브넷들의 결과들을 외부로 내보내는데 사용

->왜 외부로 보내는지?

예를 들어 내부의 was서버가 업데이트할 상황이 발생했을때,

그러니까 출발지가 was서버고 안에서 변경한 내용을 밖으로 내보낼때

 

이때 퍼블릭 서브넷상에서 동작하는 NAT 게이트웨이

프라이빗서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이와 연결

하나의 AZ안에 하나의NAT게이트웨이 배치하는 것 권장

그래서 AZ단위 장애가 발생하면, 이 NAT를 쓰는 다른 AZ영역에서도 장애가 일어남 

 

4-1. NAT게이트웨이 생성

생성하는 위치는 퍼블릭 서브넷

4-2. 탄력적ip주소(공인ip주소)를 할당받음 -> 왜?  공인ip끼리 통신할 수 있도록  
(사설ip들은 사설ip끼리, 공인은ip끼리 통신할 수 잇음,
근데 private 인스턴스 안에서 업데이트한 내용을 밖이랑 통신하기 우해서 공인ip를 받음) 

ex) 외부인터넷에서 접속하면? ->인터넷게이트웨이를 타고-> VPC안으로들어와서-> ELB타고->웹서버 접속

웹서버가 외부로 나가려면? -> ELB타고 -> VPC밖으로 나가려고 ->인터넷게이트웨이 NAT게이트웨이 타고 -> 나감

 

->그럼 인터넷게이트웨이랑 다른점은?

인터넷 게이트웨이는 출발지가 외부기준, 외부에서 들어오고 외부로 나갈때 
나트게이트웨이는 출발지가 내부기준, 내부의 인스턴스들이 외부로 나갈때

그래서 외부로 나가서 통신할 수 있도록 공인ip를 할당받아서 연결하는거

->그럼 베스쳔 서버랑 다른점은?

베스쳔은 그냥 접속용, 처음에 운영자처럼 private 서브넷으로 들어가서 인스턴스를 만들기 위해 사용

그래서 다 만들고 나서 삭제하기도 함

 

*탄력적ip주소

인스턴스에 고정ip가 필요할때 사용->고정ip를 서버에 할당
기본적으로 리전당 5개 허용
근데 할당받아두고 안쓰면 과금(왜? 사용할 수 있는 Ip주소 부족해서)
온프라미스에 있는 주소를 가지고 오는것도 가능
핫백업으로 사용 사용자들은 주소변경 없이 시스템이 정상적으로 구동될 수 잇음

 

 

5.라우팅테이블

네트워크 요청이 발생하면 데이터는 우선 라우터로 감

들어오는 네트워크 트래픽을 연결된 내 VPC에 들어오도록 생성

라우터? 목적지

라우팅테이블? 각 목적지에 대한 이정표(들어온 요청이 어디로 가야할지 저정해둠)

즉, 네트워크 요청은 각각 정의된 라우팅테이블에따라 목적지를 찾아감 

 

5-1.퍼블릭 라우팅테이블 생성 -> 라우트 목적지 0.0.0.0/0추가

기본적으로 VPC안의 로컬로 가라는 이정표가 있음. 

그래서 가장먼저 VPC안에 해당하는 주소(10.0.0.0/16)인지 확인하고, 매칭되지 않으면 다음 이정표를 따라간다.

다음이정표 : 모든 트래픽에 대하여 IGA(인터넷 게이트웨이) 로 향하라! 라는 이정표를 추가한다.

외부에서 데이터 요청하면 인터넷으로 응답해야 되서
그리고 이 라우팅주소가 의미하는 타겟은 인터넷게이트웨이(igw- )다!

 

5-2.퍼블릭 라우팅테이블 -서브넷이랑 연결 

라우팅테이블로 어디로 가야할지 목적지를 알았으면, 진짜로 갈수 있는 길을 연결해주는거

퍼블릭 라우팅테이블들은 앞에서 만들었떤 퍼블릭 서브넷들이랑 연결

 

5-3. 프라이빗 라우팅 테이블 생성

다음이정표 : 모든 트래픽에 대하여 NAT(인터넷 게이트웨이) 로 향하라! 라는 이정표를 추가한다.

 

5-4.프라이빗 라우팅테이블 -서브넷이랑 연결 

라우팅테이블로 어디로 가야할지 목적지를 알았으면, 진짜로 갈수 있는 길을 연결해주는거

프라이빗 라우팅테이블들은 앞에서 만들었떤 프라이빗 서브넷들이랑 연결

*라우팅테이블 구성 결론*
public : 라우팅연결(IGW게이트웨이), Bastion Host를 넣을 서브넷 주소(Public 서브넷들)로 연결

Private : 라우팅연결(NAT게이트웨이), web/app/DB 를 넣을 서브넷 주소(Private 서브넷들)로 연결

이제 전체적인 네트워크 구성은 다했으니까

프라이빗 서브넷에 들어가서 web서버를 깔려고 했는데..

지금 내가(외부ip주소로) private 서브넷의 인스턴스에 접속할 수 가 없잖아?? bastion 호스트 필요!

출처 : 3티어 아키텍쳐실습 필기 

 

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });