안녕하세요 아이들나라SRE 공병삼입니다. 이번에 경험한 아이들나라의 전용선(Direct Connect)구축 경험기를 소개 해드리려고 합니다.
아이들나라 서비스는 모든 인프라가 AWS 클라우드 위에 올라가 있지만, 결제 및 개인정보는 본사 Data Center에 보관되어 있습니다. 그에 따라, 이번에 AWS 신규 Account가 추가되면서 신규 Account와 DataCenter(On-premise)간 연동이 업무 목표였습니다.
그래서 AWS와 Data Center의 통신을 할 수 있는 방법을 생각을 해보았고 그 중 Direct Connect를 이용한 전용선을 구축하기로 하였습니다.
혹시 Direct Connect 구축을 고민하고 계신다면 이 글을 통해 좀 더 수월하게 진행하셨으면 좋겠습니다.
AWS 클라우드 통신에는 무엇이 있을까?
AWS 클라우드와 Data Center 간의 통신은 크게 3가지가 있습니다.
•
Public 통신
◦
간편한 설정
◦
저렴한 비용
◦
취약한 보안
•
VPN
◦
높은 보안
◦
적당한 비용
◦
Public망에 대한 네트워크 영향이 있음
•
전용선 통신 (Direct Connect)
◦
높은 보안
◦
비싼 비용
◦
Public망과 무관한 안정적인 네트워크
저희는 Public 통신은 암호화를 한다 해도 보안 이슈가 있어 제외했습니다. 그래서 VPN 통신과 전용선 통신 중에 결정을
VPN 통신과 전용선 통신 모두 장단점이 뚜렷했지만, 저희는 비싸더라도 안정적인 네트워크와 조금 더 보안성이 높은 전용선 통신(Direct Connect)을 선택하였습니다.
Direct Connect 사전 조사
Direct Connect 파트너
전용선을 구축하기 전, AWS와 데이터센터를 연결하기 위해서는 APN(AWS Partner Network)파트너를 조사 해야합니다.
Direct Connect 파트너에서 파트너사 목록을 확인할 수 있으며 데이터센터와의 전용선 금액을 참고하여 파트너를 선정 하시면 됩니다.
Direct Connect 할당량
구성 요소 | 할당량 |
AWS Direct Connect 전용 연결당 Private 또는 Public 가상 인터페이스 | 50 |
AWS Direct Connect 전용 연결당 전송 가상 인터페이스 | 1 |
Private, Public 또는 Transit 가상 인터페이스당 AWS Direct Connect 호스트된 연결 | 1 |
가상 Public 인터페이스의 경계 경로 프로토콜(BGP) 세션당 라우팅 | 1,000 |
AWS Direct Connect 게이트웨이당 가상 Private 게이트웨이 | 10 |
AWS Direct Connect 게이트웨이당 Transit 게이트웨이 | 3 |
가상 인터페이스 (Private 또는 Transit) 당AWS Direct Connect게이트웨이 | 30 |
AWS 가상 인터페이스에서 온프레미스로의 접두사 수 | 100 |
아이들나라 Network Architecture
현재 아이들나라의 Direct Connect 구축 전의 AWS Network Architecture입니다.
생략된 workload VPC들이 있지만, 기본적으로 모든 VPC의 Egress 트래픽은 Transit Gateway통해 INSPECTION-VPC의 Network Firewall을 들려 목적지로 가게 되어있습니다.
1.
workload에서 Transit Gateway로 전달
2.
Transit Gateway에서 Inpection VPC의 Network Firewall로 전달
3.
Inpection VPC에서 다시 Transit Gateway로 전달
4.
Transit Gateway에서 Egress VPC로 전달
5.
Egress VPC에서 Internet으로 전달
이와 같은 트래픽 흐름으로 Direct Connect는 Egress VPC에 subnet을 추가 구성한 뒤에 구축하려 했습니다.
하지만 Data Center 측에서 할당된 IP로만 Data Center와 통신할 수 있고 아이들나라에게 환경당 28 bits 3개의 IP대역을 할당 받았습니다.
여기서 2가지의 문제가 발생했습니다.
•
•
VPC내 사설IP 동시 사용 불가
◦
현재 사용 중인 IP대역은 10.x.x.x대역이며, 할당받은 대역은 172.x.x.x대역입니다.
위 두가지의 문제로 인하여 아래 세가지 방법을 이용하여 통신하는 Architecture로 변경 되었습니다.
•
신규 VPC를 생성하여 172.x.x.x대역과 100.64.x.x 대역을 사용
•
부족한 IP는 Private NAT를 이용한다.
•
Data Center에서 Ingress 트래픽은 NLB를 통한다.
신규 Architecture의 트래픽은 아래와 같은 경로로 통신이 됩니다.
1.
workload에서 Transit Gateway로 전달
2.
Transit Gateway에서 Inpection VPC의 Network Firewall로 전달
3.
Inpection VPC에서 다시 Transit Gateway로 전달
4.
Transit Gateway에서 DX VPC의 NAT Gateway로 전달
5.
DX VPC에서 vgw를 통해 Direct Location으로 전달
6.
Direct Location에서 전용선을 통해 Data Center로 전달
Direct Connect 구축
Connect 생성
Connect는 AWS의 Router와 Data Center의 Router와 연결할 수 있는 물리적인 포트라고 생각하시면 됩니다.
Dedicated 방식으로 구축하게 되면 LOA-CFA 파일을 다운로드 할 수 있는데 그 파일 안에 어느 데이터센터, 층수, 랙, 패치판넬, 속도 등 물리적인 위치가 나와 있습니다.
Direct Connect를 구축할 때는 Connect를 가장 먼저 생성해야 합니다. Connect가 생성되지 않았다면 이후를 진행할 수가 없습니다.
Connect 구축에는 2가지 방식이 있습니다.
•
Dedicated 방식
◦
속도 : 1 ~ 100Gbps
◦
사용자 장비와 AWS 장비와 직접 연결
◦
사용자측에서 직접 Connect 생성 후 APN에 전달
•
Hosted 방식
◦
속도 : 50M ~ 10Gbps지만, 각 APN 파트너사에 확인이 필요합니다.
◦
사용자 장비와 APN 파트너 장비 연결
◦
APN 파트너사에서 해당 Account에 Connect 생성
저희는 장비 운영을 최소화 및 On-Prem 네트워크는 본사의 지원을 받기 위해 Hosted 방식을 사용하였습니다.
Hosted 방식의 경우, 선택한 APN 파트너에게 회선속도와 Connect를 생성할 Account를 전달하면 아래와 같이 Connect를 생성합니다.
Direct Connect Gateway 생성
가상 인터페이스(VIF)와 가상 프라이빗 게이트웨이(VGW)를 연동하기 위해 Direct Connect Gateway를 먼저 구성합니다.
Gateway의 이름과 ASN만 입력만 하면 되므로 구성은 쉽습니다.
•
ASN(Autonomous System Number)은 향후 BGP 연동에서 Direct Connect Gateway와 On-premise 장비간 네트워크를 식별하고 라우팅 정보를 교환하는데 사용이 됩니다.
가상 인터페이스(VIF) 생성
가상 인터페이스는 Direct Connect Gateway와 Connect를 통해 AWS와 On-premise 네트워크와의 연결할 수 있습니다.
가상인터페이스는 크게 2가지로 나누어집니다.
•
Private VIF
◦
VPC 내 네트워크를 연동할 경우에 사용됩니다.
•
Public VIF
◦
S3, API Gateway, DynamoDB 등 AWS 서비스와 통신을합니다.
저희는 VPC와 연동이므로 Private VIF로 선택하였습니다.
가상 인터페이스를 생성 할 때는 연결할 Connect, Direct Connect Gateway, VLAN, BGP ASN 등 필요하며 가상 인터페이스 필수 조건 항목에서 확인 할 수 있습니다.
VLAN , BGP ASN, BGP Key, Serial IP는 물리적 네트워크 장비와 맞춰야 하므로 사전에 미리 Data Center 네트워크 담당자분과 맞춰야 합니다.
•
BGP ASN : On-Prem 장비의 BGP ASN
•
BGP 인증키 : AWS 와 On-premise 간 상호 BGP 연동을 위한 인증 Key
•
사용자의 라우터 피어 IP : On-premise 장비 Sireal IP
•
Amazone 라우터 피어 IP : AWS의 Sireal IP
처음 가상 인터페이스를 생성 시 피어링의 상태 표시만 available이며 BGP 나 일반구성의 상태는 Down 상태입니다.
구성이 완료되면 Data Center에서도 BGP 및 Serial IP를 맞추기 위한 작업을 해야하는데 ‘작업 → 샘플 구성 → 다운로드’ 에서 알맞는 네트워크 벤더의 Config를 다운로드하여 전달하면 됩니다.
상호 BGP연동이 완료되면 위 사진과 같이 BGP 상태가 up으로 변하게 됩니다.
가상 프라이빗 게이트웨이(VGW) 생성
VPC에서 IDC로 트래픽을 보내기 위해서는 Direct Connect 구간으로 보내야 하는데 그 구간으로 보내기 위해서 가상 프라이빗 게이트웨이(VGW)가 필요합니다.
가상 프라이빗 게이트웨이는 VPC 메뉴에서 생성을 한 뒤에 알맞은 VPC에 Attach를 합니다.
이후 가상 프라이빗 게이트웨이 메뉴에서 Direct Connect 게이트웨이 연결을 해줍니다.
여기서 허용되는 접두사는 상대편(On-premise)에 광고를 할 나의 IP대역을 입력하면 됩니다. 여기서 저희는 Data Center에서 할당받은 172.x.x.x/28 3개 대역을 작성하였습니다.
일정 시간이 지나면 available 상태가 되며 가상 인터페이스에도 항목이 보이게 됩니다.
이후에는 VPC에서 VGW로 라우팅을 설정하면됩니다.
장애 테스트
구축만 하고 마친다면 추후 운영에도 문제가 생길 수가 있으므로 Direct Connect에는 1가지 테스트를 할 수 있는 항목이 있습니다. 바로 BGP Failover입니다.
장애 테스트로 부족하긴 하지만, Direct Connect를 이중화 하였을때 Failover가 정상적으로 되는지 AWS 내에서는 간단히 장애테스트를 해볼 수 있습니다.
BGP Failover는 가상 인터페이스 메뉴에서 확인할 수 있습니다.
BGP 중단을 하였을때 미세하게 지연이 되긴 하지만 ping은 빠지지 않았습니다.
더 많은 장애테스트를 하면 좋겠지만 아쉽게도 AWS 콘솔에서는 BGP Failover만 가능합니다. 네트워크 장비단에서 테스트가 가능하다면 필수로 장애 테스트 진행하는게 좋습니다.
마치며
지금까지 AWS Direct Connect 구성 경험기를 작성하였습니다.
Direct Connect는 높은 보안성과 안정적인 네트워크 환경을 위해서는 좋은 서비스라고 생각합니다.
비록 몇 가지 제한사항으로 인하여 어려움이 있었지만 여러 테스트 및 삽질을 통해 최적의 Architecture를 찾아가는 과정이 재미있었고 부족한 AWS 네트워크 지식 및 기술을 익혔다는 것이 보람찼습니다.
이와 같이 각 환경 및 사정에 따라 도입에 제약이 있을 수 있으니 적절한 판단으로 통신 방법을 찾고 최적의 Architecture를 구성 하면 좋을 것 같습니다.
해당 글이 Direct Connect를 구축하시려는 분들에게 큰 도움이 되었으면 좋겠습니다.
감사합니다.