Cloud/AWS

Amazon VPC 한 번쯤 궁금한 이야기 2 : Blackfoot Edge Device

지기(ZIGI) 2023. 1. 15. 19:04
Today Keys :   mapping, service, blackfoot, edge, hyperplane, vpc, aws, nlb, private, endpoint, link, nat, gateway
 

Amazon VPC를 사용하면서 굳이 몰라도 되지만, 한 번쯤 궁금할 수 있는 이야기를 몇 가지 다뤄보려고 합니다.
이번 포스팅은 그 두 번째 이야기는 'Blackfoot Edge Device' 입니다. 
 
지난 포스팅에서 얘기한 것처럼 이번 시리즈에서 다루게 될 주제들에 대해서는 정확한 자료가 오픈 된 것은 아니기 때문에 기존 re:Invent에서 발표된 내용과 동일 주제들도 내용을 다뤘던 글들을 토대로 작성된 내용이라서 제가 다룬 내용이 실제와 다를 수 있습니다. (사실 다를 거라고 생각하긴 합니다. )
그럼에도 불구하고 포스팅에서 다뤄보려는 것은 한 3년전쯤 본 주제를 다뤄보려다가 정보의 제한과 두뇌의 제한으로 정리를 하다가 멈췄는 데, 그래도 한 번쯤은 다뤄보고 싶었던 주제라 사실과 조금 다른 점이 있더라도 제가 이해하려고 노력한 부분과 그 안에서 나름의 정리를 해보는 것도 가치가 있을 것 같아서 입니다.
다시 한 번, 얘기 드리지만 상세한 Spec. 기준의 문서 기반이 아니기 때문에 내용의 기술적인 사실성은 실제와 다를 수 있다는 것을 염두해두시고 전체적인 흐름 관점에서 보시면 좋을 것 같습니다.

Amazon VPC 한 번쯤 궁금한 이야기
 
첫 번째 이야기 : Mapping Service (바로가기)
두 번째 이야기 : Blackfoot Edge Device
세 번째 이야기 : Hyperplane (바로가기)

AWS 내의 두 물리 호스트 간에 존재하는 VPC의 Instance 간 통신을 위해
VPC 경로와 물리 호스트  간의 정보를 Mapping하여 정보를 알 수 있도록 'Mapping Service'를 사용합니다.
 
이번에는 VPC와 VPC가 아닌 대상으로 라우팅하기 위해서 사용되는 Blackfoot Edge Device에 대해서 알아봅니다.

 

VPC 내의 Instance와 같은 서비스가 인터넷과 통신하기 위해서는 Public IP 주소를 갖고 Internet Gateway를 통해서 통신합니다. 물론 Private Subnet에서 별도의 Public IP 주소를 갖지 않고, NAT Gateway를 통해서 Outbound로 인터넷과 통신할 수 있지만, NAT Gateway는 인터넷을 가기 위한 중간 서비스이며, NAT Gateway를 거친 트래픽은 다시 NAT Gateway가 갖고 있는 Public IP 주소를 갖고, Internet Gateway를 통하게 됩니다.
 
 
 
앞서 얘기했지만, 인터넷과 통신하기 위해서는 Public IP 주소를 갖고 있어야 합니다.
그래서, EC2 Instance와 같은 서비스가 외부와 통신하기 위해 AWS를 통해서 자동 할당 받은 공인 IP 주소를 사용하거나  EIP(Elastic IP)와 같은 공인 IP 주소를 사용합니다.
 
예를 들어서, ZIGI-VM1에 52.X.X.61이라는 EIP를 연결하고 Instance 정보를 보면 아래와 같이 Instance의 Public IP 주소와 Private IP 주소가 모두 있는 것을 볼 수 있습니다.
 
 
 
하지만, 실제 ZIGI-VM1 Instance에 들어가서 직접 확인해 보면, 아래와 같이 Private IP(10.0.0.148) 주소만 보이는 걸 확인 할 수 있습니다.
실제 인터넷과 통신 시에는 Public IP 주소인 '52.X.X.61'로 통신하는 것을 볼 수 있습니다.
 
 
 
Amazon VPC는 Private IP 주소를 사용하여 구성된 사설 네트워크이기 때문에  VPC 내의 서비스가 직접 Public IP 주소를 갖지 못하고, VPC 내부의 사설 IP 주소를 인터넷과 통신이 가능한 Public IP 주소로 상호 간에 전환해주는 NAT 역할이 필요하며, 
이 역할을 Internet Gateway가 수행합니다.
이렇게 Internet Gateway처럼 VPC와 외부와 통신을 연계해주는 서비스가 동작하는 곳이 Blackfoot Edge Device입니다.
Blackfoot Edge Device를 사용하는 서비스는 Internet Gateway외에, Virtual Private Gateway(VPN/DX),  S3/DynamoDB Endpoint(Gateway)가 있습니다.
 
AWS re:Invent Slide.
 

 

다음은 Blackfoot Edge Device 서비스 중에 하나인 Internet Gateway를 통해 외부와 통신하는 Flow를 그려 본 것입니다.
※ Flow 상의 흐름 자체는 실제와 크게 차이가 없을 것으로 생각되나, 실제 Encapsulation Decap되는 모습은 실제와 차이가 있을 수 있기 때문에 이 부분을 염두해두시고 봐주시면 되겠습니다.
 
 
 
ZIGI-VPC1 의 ZIGI-VM1(10.1.0.5)는 8.8.8.8과 통신을 하려고 합니다.
출발지(Source ) IP 주소는 10.1.0.5가 되고, 목적지(Destination) IP 주소는 8.8.8.8이 됩니다.
라우팅 테이블을 확인해 보면, 해당 목적지는 Internet Gateway로 가도록 되어 있습니다.
목적지로 가기 위해서 IGW에 대한 정보를 Mapping Service를 통해서 확인하고,
Internet Gateay와 통신하기 위한 Encap 정보를 추가합니다.
Internet Gateway의 경우 실제 확인 가능한 Network Interface나 VPC 내의 IP를 사용하지 않는기 때문에 Resource ID로 Encap을 하지 않을까 생각됩니다.
물론 보이지 않는 뒷단에서는 별도의 ENI를 사용 할 수도 있겠지만, 개념적으로는 비슷하지 않을까 싶습니다.
Encapsulation 된 정보를 통해서 Internet Gateway가 동작하는 Blackfoot edge Device로 전달된 후, VPC 정보에 대한 Decapsulation을 합니다.
이후 Internet Gateway에서는 인터넷과 통신하기 위해 VPC의 Private  IP 주소인 10.0.0.5를 Public IP 주소(52.0.0.9)로 NAT하여 인터넷으로 보내게 됩니다.
 
응답은 요청 절차의 반대 Flow로 통신하게 됩니다.
 
Blackfoot Edge Device는 이처럼 VPC 외부와 통신하기 위해서 사용이 되기 때문에 VPC Encapsulation 정보를 Decapsulation 해서 외부로 전달하는 역할을 갖고 있습니다. 
이 부분은 re:Invent 영상에서도
'Blackfoot device will strip the VPC encapsuation ~' 이라고 얘기하는 것으로 확인 할 수 있었습니다. 
 
VPC 정보를 Decapsulation 한 이후에는 Blackfoot Edge Device 서비스 종류에 따라서 아래와 같이  다르게 처리됩니다.
 

 

각각 전달되는 서비스 경로에 따라서 기존 네트워크에서 사용하는 프로토콜의 모습으로 전환하기 때문입니다. 

 

이상으로 'Amazon VPC 한 번쯤 궁금한 이야기' 두 번째 였던, Blackfoot Edge Device를 마칩니다.