본문 바로가기

AWS/파워쉘로 배우는 AWS

#7 [VPC] Route Tables 알아보기

네트워크 CIDR 디자인을 끝낸 다음에는 무엇이 생각나나요? 바로 Routing 생각 나실 겁니다. 논리 네트워크이니까 라우팅도 생성해서 통신 설정을 주어야 Subnet끼리 혹은 LAN이나 WAN 통신이 되겠죠?

역시나 망설이지 말고 cmdlet부터 실행하여 Route 확인해 봅시다.


PS> Get-EC2RouteTable

 




확인되는 Route Table 개가 있네요. 일단 속성 들을 간단하게 살펴봅시다.

 

Tag: 태그 정보입니다.

Associations: 라우팅이 적용된 Subnet 정보

PropagatingVgws: Viretual Private Gateway(VPG)와의 정보

Routes: 라우팅 정보입니다.

RouteTableId: Route Table ID 입니다.

Tags: 태그 정보입니다.

VpcId: VPC ID입니다.

 

VPC ID 매핑 되어 있고, 라우팅 정보와 Subnet 정보, VPG 정보도 있네요. VPG 나중에 VPN관련 설명 자세하게 다루도록 하겠습니다. 먼저, VPC 연결이 되어있다는 것을 확인하였으니, 제작한 VPC Route Table 연관이 있는 것을 확인할 있습니다.

값들을 보면 {} 사용하고 제공하는 정보가 적은데, 해당 부분은 Powershell에서 object 값으로 가질 그렇습니다. 자세한 내용은 Powershell 찾아보시면 나옵니다. 나중에 포스팅 해야겠네요.

 

어찌됐든, 값들을 보려면 속성값을 직접 접근해야 합니다. 그럼 Routes 값을 먼저 보시죠


PS> (Get-EC2RouteTable -RouteTableId rtb-449c9121).Routes


 

 


값을 확인해 보시면 VPC CIDR값인 10.20.0.0/16 목적지 하는 내부(Local)통신이 Active 되어있다는 것을 확인하실 있습니다. 풀어서 설명한다면 목적지가 10.20.0.0/16 포함되는 통신은 내부 통신으로 전송된다는 의미입니다.

우리는 글보다 그림이 익숙하니 그림을 보시죠


 

 


여러분들 허접한 그림 보시느랴 수고가 많으십니다. 이해가 되시나요? Subnet VPC 속해 있기 때문에 Subnet끼리의 Routing 통신이 가능하도록 설정이 되어 있습니다. 어찌 보면 당연한 소리 같지만, Subnet AZ별로 별도로 있다는 것을 생각하면 논리 네트워킹이라 가능하다는 사실도 생각해 있습니다.

위의 그림에서 언급한 내용 외에 가지를 이해하셨다면 눈치가 굉장히 빠르신 분입니다.

  1. Route Table VPC 리소스 입니다. 그렇기 때문에 AZ 종속된 리소스가 아닙니다.
  2. 동일한 CIDR값을 가지는 VPC끼리 통신이 되지 않는 이유는 VPC별로 Route Table 별도로 있고, 하나의 VPC 할당 있는 모든 IP Route Table Gateway 통신하기 때문에 다른 VPC 같은 IP 가지고 있어도 통신이 되지 않습니다

동일한 CIDR값을 가진 VPC끼리 통신시킬 수도 없지만, 억지로 통신망을 연결 시켰다고 하여도 Route Table에서 정의된 설정 때문에 다른 VPC 네트워크와 통신할 없게 됩니다.

그럼 지우면 되지 않느냐? 하실 텐데… 일단 위험을 무릅쓰고 지워 봅시다.


PS> Remove-EC2RouteTable -RouteTableId rtb-449c9121


 

 


다행히(?) 지워 지네요. 이처럼 VPC 에서 통신하는 기본 Route Table 수정이 불가능합니다.

 

다음으로는 Route Table 적용된 Subnet 정보였던 Associations에 대해 살펴 보겠습니다. 확인부터 해보죠.


PS> (Get-EC2RouteTable -RouteTableId rtb-449c9121).Associations


 

 


? 확인해 보니 Subnet ID 연결된 정보가 하나도 없네요?? 어떻게 거지?????

라고 당황 한번 해봤습니다… 그냥 계속 설명 할께요…

왠지 모르게 Main이라는 속성 값을 설명하고 싶어집니다. Main 무엇이냐? VPC Main Route Table이라는 것을 의미 합니다. 좋게 말해서 Main이지 쉽게 설명하면 Default Route Table이라고 생각 하시는 것이 이해가 쉬우실 겁니다.

 

사용하시는 분마다 성향이 다르시겠지만, 개인적으로 Default 별로 좋아하지 않기 때문에…(그것도 공부하는 중이니) 기본설정은 두고 새로 Route Table 만들어 봅시다.


PS> New-EC2RouteTable -VpcId vpc-21e2df44


 

 


가볍게 만들어 졌습니다. 그럼 위에서 확인 값들을 확인해 볼까요?


PS> (Get-EC2RouteTable -RouteTableId rtb-3b929e5e).Associations

PS> (Get-EC2RouteTable -RouteTableId rtb-3b929e5e).Routes


 


 

예상과 다르게 Associations 할당이 되어있지 않고, Routes 정보만 있네요. Route 정보는 예상한 대로 적용되었네요. 그럼 Subnet Route Table 연결해 봅시다


PS> Register-EC2RouteTable -RouteTableId rtb-3b929e5e -SubnetId subnet-b75374c0


 

 


연결이 되었는지 확인 볼까요?


PS> (Get-EC2RouteTable -RouteTableId rtb-3b929e5e).Associations


 

 


하나의 Subnet 연결해 봅시다


PS> Register-EC2RouteTable -RouteTableId rtb-3b929e5e -SubnetId subnet-b2c2beeb

PS> (Get-EC2RouteTable -RouteTableId rtb-3b929e5e).Associations


 

 


Route Table Associations 값은 설정이 있을 시에만 적용이 됩니다.


글이 엄청 길어졌네요. 다음부터는 주제를 좀 더 나눠서 올려야겠습니다.

Route Table 대해서는 Internet Gateway 설정과 NAT 설정,  VPN 연결 설명할 부분이 많으니 기본이 되는 Route Table 내용을 기억하시기 바랍니다.

 

참고 자료 : http://docs.aws.amazon.com/ko_kr/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html