일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- dns
- RDS
- route table
- S3
- CLI
- ncp
- CloudFront
- VPC
- 도메인
- AD
- lambda
- 테라폼
- Storage
- Windows
- 윈도우
- ALB
- FSX
- Python
- terraform
- security group
- Jenkins
- Subnet
- 네이버 클라우드 플랫폼
- storage gateway
- Linux
- EC2
- Dedup
- Athena
- NaCl
- AWS
- Today
- Total
끄적이는 보송
[AWS] Site-to-Site VPN 구성하기 본문
On-Premise와 Cloud를 연결하는 솔루션은 여러 가지가 있지만 본 포스팅은 그중 Site-to-Site VPN을 다뤄보려고 한다.
Site-to-Site VPN 이란?
Site-to-Site VPN 이란 IPSec 암호화 프로토콜을 사용해 AWS Cloud 환경과 On-Premise 환경을 연결해주는 서비스다. 하단의 이미지는 Site-to-Site VPN의 기본 구성이다.
AWS 클라우드와 On-Premise 데이터 센터가 있다. AWS에는 VGW(Virtual Private Gateway)가 있고 On-Premise에는 CGW(Customer Gateway)가 붙어있으며 이 둘 사이에 IPSec 프로토콜을 이용해 터널링을 만들어 줘 인터넷을 통해서 상호 간 통신이 가능하게끔 해주는 원리다.
AWS와 On-Premise와 보안성 있게 연결하기 위해서 사용하는 방법 중 하나는 위의 방법이 있고 또 다른 방법으로는 AWS Direct Connect 서비스(전용선)를 사용할 수 있다. 예산이 허용한다면 Direct Connect를 주로 사용하고 Site-to-Site VPN을 백업용으로 구성해 볼 수 있다. 하지만 여기서 DX는 다루지 않을 예정이다.
VGW? CGW?
VGW는 AWS Cloud VPC의 라우터라고 생각하면 된다. 하나의 VGW는 여러 On-Premise와 연결이 가능하지만 VGW 하나당 복수개의 VPC를 연결할 수 없다(VPC 하나에 VGW 한 개). VGW는 Site-to-Stie VPN과 Direct Connect 연결을 둘 다 지원하며 생성 시, BGP 라우팅에 필요한 ASN(Autonomous System Number)를 지정하게 되는데 On-Premise 쪽 라우터에도 ASN이 있다.
CGW?
CGW는 On-Premise의 라우터 값을 AWS에 제공해주는 서비스다. On-Premise 내부적으로 사용하는 Private IP주소 대역이 있을 텐데 VPN에 사용할 사설 IP대역을 CGW에 지정하고 VGW는 이 값을 참조해 연결하는 것이다. 헷갈릴 수 있는데 CGW는 AWS에서 구성되는 가상 게이트웨이이며 이를 위해 On-Premise 쪽에 별도의 VPN 장비를 준비해야 한다.
모든 준비가 완료되면, AWS 쪽에서 VPN 라우팅을 위한 구성 파일을 다운로드하여 On-Premise 쪽의 VPN 장비에 설치를 해줘야 비로소 통신이 연결된다.
Autonomous System?
위 설명에 AWS VPC를 위한 ASN이 있고 On-Premise 장비 쪽에도 ASN이 있다고 했다. 이 AS가 무엇이고 이 둘이 무엇을 하는 걸까. 다음 그림을 보면 왼쪽/오른쪽 두 네트워크 그룹이다.
각각의 네트워크 그룹은 Interior Gateway(OSPF etc... ) 프로토콜을 이용해 라우팅 테이블을 내부적으로 공유해 자기들끼리는 통신이 가능하다. 그리고 이 둘의 라우팅 테이블을 교환하기 위해서는 Interior Gateway가 아닌 Exterior Gateway(BGP) 프로토콜을 이용해 Peering을 해야 한다.
선 끝에 위치하고 있는 라우터 2개만 BGP Peering을 통해 서로의 라우팅 테이블을 교환하고 내부에 위치하고 있는 반투명 라우터들은 서로를 모르게 구성함으로써 데이터를 가볍게 교환할 수 있다. 이것을 Autonomous System이라고 부르며 각각을 식별하기 위해 ASN(Autonomous System Number)가 있다. 이것을 지정해 서로 통신을 하는 거다. 참고로 AWS의 디폴트 ASN은 64512다.
위 그림이 마치 AS1이 AWS고 AS2가 On-Premise로 보이지 않는가?
구성을 위한 순서
1. VGW 생성
2. CGW 생성
3. CGW에 라우팅 정보 입력
4. VPN 구성 파일 다운로드 및 전달
5. Site-to-Site VPN 구성 파일을 On-Premise 장비에 업데이트 (IDC 쪽 장비 사전 도입 필수)
6. IPSec 터널링 완성
Site-to-Site VPN 실습
설명이 길어졌다. 각설하고 바로 실습에 들어가 보자. 어디까지나 공부를 위한 것이니 입력되는 IP 및 기타 정보는 내가 임의로 찍어낸 값임을 참고하길 바란다.
1. CGW 생성한다. IP 주소는 그냥 내가 만든 랜덤 넘버다. CGW는 On-Premise의 장비를 VPN에 연결하기 위한 가상 게이트웨이 서비스다. 생성 경로는 'VPC > VPN > Customer Gateways'
2. VGW를 생성한다. VGW는 AWS를 VPN과 연결하기 위한 가상 게이트웨이 서비스다. 생성 경로는 'VPC > VPN > Virtual Private Gatways'
3. VGW를 VPC와 연결한다.
4. Site-to-Site VPN 연결 생성한다. 경로는 'VPC > VPN > Site-to-Site VPN Connections'
5. VPN 연결 생성을 위한 입력 값을 넣어준다. 위에도 설명했듯이 VPN은 특정 네트워크의 경로만을 허용하기에 설정은 정적으로 하는 것이 좋다.
6. VPN 연결 구성을 다운로드한다. VPN 장비도 여러 가지가 있는데 장비에 맞게 정보를 입력하고 파일을 다운로드한다.
7. 구성 파일내용이다. 여기까지 했으면 AWS에서 할 일은 끝난 것이다. On-Premise 쪽도 연결 구성을 위해 이 파일을 전달해주면 된다. 만약 상대 장비가 사용하는 소프트웨어가 여러 개라면 그 수에 맞게 구성을 다운로드하여 전달해준다.
'STUDY > AWS' 카테고리의 다른 글
[AWS] S3 pre-signed url 이란 (AWS CLI 명령어 사용) (0) | 2022.03.06 |
---|---|
[AWS] EIP 복원하기 (0) | 2022.03.01 |
[AWS] ALB Access Log 활성화 및 분석하기 (1) | 2022.03.01 |
[AWS] VPC Endpoint (Gateway Endpoint, Interface Endpoint 및 S3 연결) (1) | 2022.02.26 |
[AWS] Private EC2 인터넷 연결하기 (0) | 2022.02.23 |