AWS와 온프레미스를 IPsec으로 1:1로 연결하는 Site-to-Site VPN 설정을 순서대로 정리한 내용이다. VPC·게이트웨이·라우팅부터 인스턴스까지 단계별로 따라 할 수 있도록 구성하였다.
1. VPC 생성
인스턴스가 연결될 네트워크가 되어야 하므로, 먼저 VPC를 하나 생성한다. 생성 시 해당 VPC용 기본 서브넷도 함께 만들어진다.
2. 서브넷 수정
VPC 생성 시 만들어진 기본 서브넷을 사용하거나, 필요 시 CIDR·가용 영역에 맞춰 수정·추가한다.
3. 인터넷 게이트웨이(IGW) 생성 후 VPC 연결
인터넷 게이트웨이를 생성한 뒤, 위에서 만든 VPC에 연결한다. 이 단계를 해야 퍼블릭 라우팅에서 0.0.0.0/0을 IGW로 보낼 수 있다.
4. 퍼블릭 라우팅 테이블 생성
새 라우팅 테이블을 만들고 같은 VPC에 연결한다. 이어서 (1) 라우팅 편집에서 0.0.0.0/0 대상을 3번에서 만든 IGW로 추가해 인터넷 나가는 경로를 잡고, (2) 2번에서 사용하는 서브넷을 이 라우팅 테이블에 연결한다. 이렇게 하면 해당 서브넷의 인스턴스가 인터넷을 사용할 수 있고, 이후 VPN 경로도 이 테이블에 추가하게 된다.
5. 고객 게이트웨이(CGW) 생성
연결할 온프레미스 쪽 장비(라우터·방화벽 등)의 공인 IP를 고객 게이트웨이로 등록한다. AWS 콘솔에서 고객 게이트웨이 생성 시 해당 IP를 입력하면 된다.
6. 가상 프라이빗 게이트웨이(VGW) 생성 후 VPC 연결
가상 프라이빗 게이트웨이는 AWS 쪽 VPN 종단 역할을 한다. VGW를 생성한 뒤 1번에서 만든 VPC에 연결한다. 연결한 VPC는 이후 변경이 어려우므로, 처음부터 VPN에 사용할 VPC를 선택해 두는 것이 좋다.
7. 사이트 간 VPN 연결(Site-to-Site VPN) 생성
5번 CGW와 6번 VGW를 선택해 Site-to-Site VPN 연결을 만든다. 이때 라우팅 방식 선택이 중요하다.
정적 라우팅
VPN 너머로 보내야 할 목적지 네트워크(온프레미스 대역)를 하나씩 등록하는 방식이다. 고정 IP 접두사만 알면 되고, 온프레미스에서 BGP를 쓰지 않아도 된다. 연결 생성 후 "정적 경로 추가"에서 온프레미스 쪽 목적지 CIDR을 넣으면, 해당 경로가 라우팅 테이블에 자동으로 반영된다.
동적 라우팅(BGP)
온프레미스 장비가 BGP를 지원하더라도, 실제로 해당 쪽에서 BGP 설정이 되어 있지 않으면 동적 라우팅은 동작하지 않는다. 사용하려면 온프레미스 담당자에게 BGP AS 번호·세션 설정을 확인받아 맞춰야 한다. 터널은 UP인데 라우팅이 되지 않을 때 BGP 미설정인 경우가 있으며, 이때는 정적 라우팅으로 전환하면 해결할 수 있다.
정적 라우팅을 쓰는 경우 VPN 연결 생성 이후 AWS 콘솔에서 정적 경로를 추가한다. "이 VPN을 통해 가야 할 목적지 IP(대역)"를 입력하면, 연결에 붙어 있는 라우팅 테이블에 자동으로 반영된다. 온프레미스 장비 쪽 설정(대역·정적 라우트 등)은 장비 벤더·운영 담당자와 맞춘다.
8. 인스턴스 생성 시 확인 사항
VPN을 사용하려면 인스턴스가 1번에서 만든 VPC에 있어야 한다. 기본(default) VPC로 만들면 VPN 경로가 연결되지 않아 접속이 되지 않는다. 인스턴스 생성 시 네트워크를 해당 VPC·서브넷으로 지정하고, 서브넷이 4번 라우팅 테이블에 연결되어 있는지 확인한 뒤 생성한다. 보안 그룹에서는 VPN으로 들어오는 트래픽(온프레미스 대역 등)을 허용해야 한다. "모든 트래픽"으로 열어 둘 수 있으나, 보안 정책에 맞게 필요한 포트만 열어 두는 것이 좋다.
인스턴스 기동 후에는 VPN 터널을 통해 도달할 목적지 IP·포트로 통신 테스트를 한다. telnet 또는 nc로 확인할 수 있다.
# VPN 너머 목적지 IP, 포트로 연결 테스트 (예: 10.0.1.100, 22)
telnet 10.0.1.100 22
# 또는
nc -zv 10.0.1.100 22
9. 주의 사항
- 인스턴스 생성 시 VPC — 한 번 만들면 VPC를 변경할 수 없다. VPN에 쓸 VPC를 처음부터 선택해야 한다.
- 터널 상태 — VPN 연결이 정상이면 터널 상태가 UP으로 표시되고, DOWN이면 온프레미스 장비·라우팅·IPsec 설정을 확인해야 한다.
- 태그 정리 — VPC·서브넷·라우팅 테이블·CGW·VGW·VPN 연결이 많아 혼동하기 쉬우므로, 이름·태그를 붙여 두면 관리가 수월하다.
10. 자주 발생하는 문제와 대처
인스턴스에서 VPN 너머 IP로 ping·telnet이 되지 않을 때
인스턴스가 기본 VPC에 있거나, VPN 연결이 붙은 라우팅 테이블과 연결되지 않은 서브넷에 있으면 패킷이 VPN으로 나가지 않는다. 인스턴스를 VPN에 사용하는 VPC로 새로 띄우면 해결된다. 보안 그룹에서 인바운드를 막고 있을 수도 있으므로, 테스트할 포트를 열어 두고 확인한다.
터널이 DOWN일 때
온프레미스 쪽 IP·방화벽·NAT, AWS CGW에 입력한 IP가 실제 장비 공인 IP와 일치하는지, 그리고 양쪽 IPsec 설정(Phase1·Phase2)이 맞는지 확인해야 한다. 보통 온프레미스 담당자와 맞춰 보면 된다. CGW에 넣은 IP가 장비 공인 IP와 다르면 터널이 올라오지 않으며, IP를 맞추면 UP으로 전환된다.
터널은 UP인데 라우팅이 되지 않을 때
정적 라우팅을 썼다면 VPN 연결에 "목적지 CIDR"이 제대로 추가되어 있는지, 해당 경로가 인스턴스가 사용하는 라우팅 테이블에 전파되어 있는지 확인한다. 동적 라우팅이라면 BGP가 실제로 맞춰져 있는지 확인한다. 정적 경로가 하나 빠져 있는 경우 추가하면 통신이 가능해진다.
한 줄 요약
VPC → 서브넷 → IGW 생성·VPC 연결 → 퍼블릭 라우팅 테이블(0.0.0.0/0 → IGW, 서브넷 연결) → CGW(온프레미스 IP) → VGW 생성·VPC 연결 → Site-to-Site VPN(CGW·VGW, 정적/동적 라우팅)·정적 경로 추가 → 인스턴스는 반드시 해당 VPC·서브넷·보안그룹으로 생성 후 telnet/nc로 통신 확인. 인스턴스는 기본 VPC가 아닌 VPN용 VPC에 두고, 터널 DOWN이면 CGW IP·IPsec, 라우팅이 안 되면 정적 경로·라우팅 테이블을 확인한다.
댓글 0