Cloud/AWS
AWS Cloud WAN - Part 4
지기(ZIGI)
2021. 12. 17. 00:42
Today Keys : aws, cloud, wan, global, network, core, segment, policy, attachment
AWS Re:Invent 2021에서 소개된 AWS Cloud WAN에 대한 네 번째 포스팅입니다. 이번 포스팅은 Core Network 내에 있는 Segment에 Attachment를 연결하기 위한 Policy를 선언하고, Attachment를 생성하여 Policy에 따라서 Segment에 연결이 해보는 내용입니다.
Cloud WAN으로 다뤄야 할 내용이 많을 듯 하여 몇 번에 나눠서 포스팅을 할 예정이며, Cloud WAN에 대한 개론에 대해서도 별도 포스팅으로 다룰 예정입니다.
아래의 Cloud WAN에 대한 아키텍처는 오늘 다뤄지는 구성은 아니며,
segment에 각각 Attachment를 저런 식으로 연결 할 수 있다는 예시 그림으로 보시면 되겠습니다.
각 segment 내의 Attachment 간에는 기본적으로 라우팅이 전파되어 통신이 가능하며,
segment 간에는 기본적으로 상호 간의 통신이 되지 않는 구조입니다.
개념적으로 기존의 Transit Gateway 내에서 라우팅 테이블을 분리하는 것과 유사하다고 볼 수 있습니다.
오늘의 테스트를 위해서 Core Network 생성 시, 함께 만든 기본 Segment였던 zigiseg1 이외에
추가로 zigiseg2라는 신규 Segment를 생성합니다.
Edge Location은 zigiseg1과 동일하게 Virginia아 singapore로 설정합니다.
추가된 Segment를 확인하고, 신규 Core Network Policy 버전을 적용합니다.
이제 Attachment를 연결하는 Policy 확인을 위해서 새로운 Attachment policy를 설정합니다.
기존에 100번 Rule이 any로 설정되어 있기 때문에, 100번 Rule보다 빠른 90번으로 Rule을 생성합니다.
90번 Rule의 Policy는 Attachment의 Tag에 AttachSeg라는 Key에 seg2라는 Value가 설정된 경우에
zigiseg2 Segment에 Attachment가 할당되도록 설정했습니다.
새로운 Attachment Policy 90번 Rule이 정상적으로 들어갔는지 확인을 하고,
Core Network Policy를 적용합니다.
이제 새로운 Attachment Policy가 정상적으로 동작하는지 확인하기 위해서 Attachment를 생성합니다.
Virginia의 VPC에 대한 Attahcment를 ZIGI-VIRG-VPC2-Attach라는 이름으로 추가하고 있습니다.
Attachment 생성 시,
Tag에 Key와 Value를 Attachment Policy에서 지정했던 AttachSeg(Key), seg2(Value)로 설정하고, Attachment를 생성합니다.
신규로 생성되는 ZIGI-VIRG-VPC2-Attach가 Attachment Policy 90의 조건에 해당되어서,
zigiseg2 Segment로 할당된 것을 볼 수 있습니다.
별도의 Tag를 지정하지 않거나, 다른 Tag 값으로 신규 Attachment를 추가로 생성해보면
90번 Attachment Policy 조건에 해당하지 않기 때문에 기존과 동일한 100번 조건에 따라 zigiseg1 Segment로 할당됩니다.
아래에 ZIGI-SING-VPC2-Attach가 그러한 예시입니다.
90번 Policy 추가 이후 생성하였지만 조건에 만족하지 않아서 zigiseg1 Segment에 할당된 것을 볼 수 있습니다.
다른 Attachment Policy 테스트를 위해서
방금 전에 만든 ZIGI-VIRG-VPC1-Attach, ZIGI-SING-VPC2-Attach를 삭제하고 그 다음을 진행합니다.
그리고, zigiseg3 이라는 새로운 Segment도 미리 만들어 두고 진행합니다.
이제 다시 새로운 Attachment Policy를 만들어 봅니다.
이번에는 Attachment Type이 VPC인 경우에 zigiseg3이라는 Segment로 연결되도록 95번 Rule을 만듭니다.
다시 새로운 Attachment를 만들겠습니다.
ZIGI-VIRG-VPC2-Attach라는 이름의 VPC Attachment를 생성합니다.
이번에는 별도의 Tag를 지정하지 않았기 때문에 90번 Rule에는 적용 받지 않아야 합니다.
새롭게 생성한, ZIGI-VIRG-VPC2-Attach가 95번 Attachment Policy에 적용되어, zigiseg3 Segment로 연결되었습니다.
이처럼 정상적으로 새로운 95번 Attachment Policy가 적용되어 동작하는 것을 볼 수 있었지만,
한가지 유의 해야 할 점은, 이렇게 적용되는 Attachment Policy는 신규 추가되는 Attachment에만 적용되는 것이 아니라,
기존에 생성되어 있는 Attachment도 해당 조건에 맞는 경우에 함께 전체 적용되어 Segment 연결이 바뀌게 됩니다.
아래 전체 Attachments를 살펴보면, zigiseg1에 연결되어 있던 ZIGI-VIRG-VPC1-Attach와 ZIGI-SING-VPC1-Attach 모두
VPC Type이기 때문에 zigiseg3으로 변경된 것을 볼 수 있습니다.
다음 Attachment Policy 테스트를 위해서 모든 Attachment를 삭제 후, 다음을 진행합니다.
이번 Attachment Policy는 Attachment를 Segment에 연결하기 위한 옵션으로
기존의 Segment name 대신에 Attachment tag value를 사용해서 연결합니다.
AttachTag라는 key가 있는 경우 해당 key의 Value에 설정된 이름의 segment로 연결합니다.
즉, Attachment policy 생성 시에 연결된 segment를 정하는 게 아니라,
Attachment 생성 시에 설정한 Tag 값에 따라 연결될 Segment가 결정됩니다.
현재 설정된 Attachment Policy입니다.
ZIGI-VIRG-VPC2-Attach라는 이름으로 새로운 Attachment를 만듭니다.
Attachment 생성 시에, Tag를 설정하는 게 앞선 만든 Policy에 적용되도록
Tag Key를 'AttachTag'로 설정하고, Value를 zigiseg2 로 설정합니다.
여기서 설정하는 Value는 이 Attachment가 연결될 segment이기 때문에 현재 존재하는 segment 이름으로 해야 합니다.
'AttachTag' Tag Key에 대한 테스트를 위해서 ZIGI-VIRG-VPC-Attach라는 이름으로 Attachment를 추가로 만듭니다.
이번에는 Tag key는 'AttachTag'로 설정하지만, Value에는 현재 없는 임의의 Segment 이름으로 설정합니다.
방금 전에 만든 2개의 Attachment가 어떻게 생성되는지 살펴보면,
Tag Value에 정상적인 segment 이름을 넣은 ZIGI-VIRG-VPC2-Attach는 93번 Policy에 적용되어, zigiseg2 Segment에 연결되었고,
Tag Value에 임의의 값을 넣은 ZIGI-VIRG-VPC1-Attach는 정상적으로 연결이 되지 않는 것을 볼 수 있습니다.
이제 Attachment Policy의 마지막 테스트를 위해서 ZIGI-VIRG-VPC1-Attach Attachment를 삭제합니다.
추가로 ZIGI-SING-VPC2-Attach라는 Attachment를 생성하는 데, 생성 시에 별도의 Tag 설정 없이 생성하면,
Attachment Type이 VPC인 경우에 해당하는 95번 Policy를 적용 받아 zigiseg3 Segment에 연결됩니다.
여기까지 Attachment에 대한 준비가 끝났습니다.
새로운 Attachment Policy를 만듭니다.
이번 Attachment Policy는 Conditions을 2개로 설정하고, And 조건으로 설정합니다.
Attachment Type이 VPC이면서, Region이 us-east-1(Virginia)인 경우에 zigiseg1 Segment에 할당합니다.
또 다른 Attachment Policy를 만듭니다.
이번 Attachment Policy는 Conditions은 다시 1개로 설정합니다.
Region의 이름이 'ap'로 시작하는 경우에 zigiseg2 Segment로 연결하는 Policy입니다.
그리고, 기존에 만들었던, 90, 93, 95 Attachment Policy 삭제합니다.
이제 새로 만든 80번, 85번의 2개 Policy와 제일 처음에 설정했던 기본 Policy인 100번만 남아 있습니다.
80번의 Policy의 경우 And 조건으로 2개의 조건을 설정 했었는 데,
Attachment policies에서 보면, And로 설정한 각 조건이 한 줄씩 따로 보이는 것을 볼 수 있습니다.
자 이제, 새롭게 변경한 Attachment Policy가 적용되도록 Core Network Policy를 적용합니다.
새로운 Core Network Policy가 적용되고 나면,
기존의 Attachment 2개가 새로운 Attachment Policy로 다시 적용되어 새로운 Segement로 재 할당 된 것을 볼 수 있습니다.