1. 에러 상황
⊙ 현재 상황 :
- Nat gateway용 subnet이 private 1개, public 1개 총 2개 있음.(nat- private, nat- public)
- Nat gateway(공인)는 Nat gateway용 public subnet에 연결되어 있음.
- 기존 Default Route Table(Private)에 [Routes 설정]을 통해 IP주소로 NATGW(Nat gateway, 공인)를 연결시키려고 함.
- IP주소는 전체 범위(0.0.0.0/0)로 생성까지는 완료하였으나, 확인을 누르니 위와 같은 창이 뜨며 에러가 발생함.
2. 문제 탐색
우선 에러 알림창의 내용이 이해가 가지 않았습니다. 'Route Table에서 NAT Gateway 용 Subnet이 연관된 경우' 이 말이 무슨 말인걸까요? 아직 NAT Gateway 를 연결시키지 않았는데 무엇이 어떻게 연관되었다는 걸까요? 그리고 언제 연관된 것일까요? '연관'의 의미는 정확히 무엇일까요?
우선은 'Route Table에서'라는 말에서 Route Table 창에서 해결해야하는 에러인 것 같습니다. ' NAT Gateway 용 Subnet이 연관된 경우'의 힌트를 찾기 위해 클릭하다보니 [연관 subnet]이 뭔가 연관있어 보입니다.
[연관 subnet] 을 클릭해보니 전 따로 연결을 한 적이 없는데 nat-private이 자동으로 붙어있습니다. 찾아보니 'Default Route Table'의 특징은 'Default'란 이름에 맞게 subnet이 자동으로 붙는다는 것을 알게되었습니다.
예를 들어 Default Route Table(Private)인 경우에는 Private subnet 이 전부 붙습니다. Default Route Table(Private) 생성 전에 만든 Private subnet 이든 생성 후에 만든 Private subnet 이든 상관 없이 모두 붙습니다. 심지어 nat-private subnet과 같은 nat 전용 subnet도 자동으로 붙습니다. 안에 NAT Gateway가 연결되어있지 않은 텅 빈 깡통같은 subnet이어도요. 저는 이 부분을 모르고 있어서 놀랐습니다.
(Default Route Table(Public)의 경우에도 마찬가지로 Default Route Table(Public) 생성 전에 만든 Public subnet 이든 생성 후에 만든 Public subnet 이든 상관 없이 모두 붙습니다.)
3. 해결방안
결론적으로 Default Route Table(Private)의 [연관 subnet]에 nat-private subnet(빈깡통)이 자동으로 이미 붙어있기 때문에, [Route]에서 nat-public subnet (NAT GATEWAY)를 IP로 붙이려고 해도 한 Route table에 중복이라 붙일 수가 없는 것이었습니다.
따라서 해결방안은 다음과 같습니다. [연관 subnet]이 붙어있는 경우에는 Routes에 IP주소로 [Routes]를 붙일 수 없기 때문에 nat-private subnet(빈깡통) 삭제 혹은 새로운 Route table로 subnet을 이동해서 Default Route Table(Private)에 nat-private subnet(빈깡통) 자체를 없애줘야지만 IP주소로 Routes 연동이 가능하게 됩니다.
해결방법 1) | Default Route Table(Private) 의 nat-private subnet(빈깡통)를 삭제 후에 Routes에 nat-public subnet (NAT GATEWAY)의 IP주소를 연동한다. |
해결방법 2) | 새로운 Route Table 을 생성 후 nat-private subnet(빈깡통)만 연관 subnet에서 옮겨주고, 그 후에 Default Route Table(Private)의 Routes에 nat-public subnet (NAT GATEWAY)의 IP주소를 연동한다. |
참고) [연관 subnet] 의 '연관'의 의미는 이미 연결이 완료된 상황이라는 뜻입니다. 저는 연결이 가능한 subnet 후보군 정도로 이해하고 있었는데요. 그게 아니라 이미 커넥션이 완료된 상태라는 뜻이었습니다.
4. 참고 상황 (비슷한 에러 상황)
같은 의미로 이미 Nat gateway용 public subnet에 연결된 Nat gateway(공인)과 Route table 연동이 완료되어 있는 상황이라면, Nat gateway용 private subnet은 생성할 수 없습니다. 아래는 private subnet을 생성하려는 와중에 뜬 에러 알림창입니다.
알림창의 내용 그대로 이미 라우팅테이블에 NAT Gateway가 연동되어있다면, NAT Gateway 용 Subnet을 생성할 수 없다는 의미입니다. 왜일까요?
만약 NAT Gateway 용 Private Subnet 생성이 된다면, 이것은 자동으로 Default Route Table(Private)에 붙을 것입니다. 하지만 이미 IP주소로 연결이 되어있으니, 두개를 동시에 진행할 수 없다는 뜻입니다. 만약 NAT Gateway 용 Private Subnet 생성을 원한다면, 기존의 IP주소 연결을 해제하라는 뜻이죠.
이제 에러가 생긴 전체적인 상황에 대해 이해가 되셨나요? 저는 에러 알림창의 의미가 뜻하는 바를 이해하지 못해 처음에 좀 헤맸었는데요.
Default Route Table엔 자동으로 Subnet이 붙는다는 사실, 그리고 Routing table의 [연관 subnet]과 [Routes]의 연관성(복수 불가능)만 알면 어렵지않게 해결 가능한 문제였습니다. 여러분도 잘 해결하셨으면 좋겠습니다.
이번 에러를 통해 저는 오늘도 한 발자국 성장했습니다. 🐾