AWS에서 인프라를 구성하면 일반적으로 RDS는 private subnet에 두게 된다. 그러면 RDS 접속은 내부 VPC에 있는 리소들에게만 허락되며, 로컬에서 RDS에 접속해서 테이블을 확인하는 것은 어렵다.
이때, VPN 클라이언트를 활용하면 로컬 네트워크가 AWS VPC 내부에 있는 것처럼 동작하여 내부 리소스에 대한 접근할 수 있다. 이때 보안그룹 설정을 통해, 비단 RDS뿐만 아니라 EC2(SSH, RDP, HTTP), ElasticCache, VPC에 연결된 Lambda 등의 리소스에 대한 접근을 허용할 수 있다.
또한, 여러 명의 개발자가 동시에 접근해야 할 경우, 로컬 포트를 특정 사용자에게만 여는SSH 포트포워딩보다 VPN을 사용하는 것이 훨씬 유리하다.
VPN
Private Network
프라이빗 네트워크는 외부 인터넷과 격리되어 사설 IP 대역을 사용하는 로컬 네트워크(LAN)를 의미한다. AWS VPC가 프라이빗 네트워크라고 할 수 있다.
VPN 작동 원리
VPN은 Virtual Private Network의 약어로, 가상의 프라이빗 네트워크를 의미한다. 네트워크 외부에서 접속을 하지만 마치 네트워크 내부에 있는 것처럼 통신할 수 있는 것이다.
이는 VPN Client를 통해 외부 기기가 사설 네트워크의 IP를 할당받기 때문에 가능하다. 이렇게 연결이 된 상태를 ‘VPN 터널링이 뚫렸다’고 표현한다. 비유를 하자면 물리적인 랜선이 연결된 상황과 흡사하다.
OpenVPN
OpenVPN은 앞서 언급한 VPN Client 중 하나다. 2명까지 무료로 접속할 수 있기 때문에 선택했다.
설치에 대한 설명을 공식문서에 듀토리얼 영상으로 잘 나와 있다. 순서대로 따라만 하면 된다. 다만, 주의할 점은 퍼블릭 서브넷에 EC2를 생성하더라도 서브넷에서 “퍼블릭 IP 자동 할당” 설정이 되어 있지 않을 경우, 마켓플레이스에서 만든 EC2에는 퍼블릭 아이피가 할당되지 않는다는 것이다. 그래서 EC2 생성 시 AMI를 선택하고, 퍼블릭 아이피 설정을 해주는 것으로 진행했다.
OpenVPN EC2 만들기
1. EC2를 만들 때, AMI에서 openvpn을 찾아서 BYOL을 선택한다.
이때, BYOL(Bring Your Own License)은 라이선스를 직접 가져와서 사용하겠다는 말이다. 즉, AWS는 설치된 프로그램이 아닌 EC2에 대한 사용료만 청구한다.
2. 인스턴스 유형은 프리티어에서 가능한 옵션 t2.micro를 선택한다.
3. 키페어를 생성하고 새로 적용한다.
4. 네트워크 편집을 해서 vpc, 서브넷을 설정한다. 보안 그룹은 AMI를 선택하며 생성된 것으로 그냥 둔다.
이때, RDS와 연결을 원한다면 두 리소스 모두 ap-northeast-2a에 놓아야 한다. 같은 가용영역에 있어야 하고, ap-northeast-2b로 설정하면 프리티어 유형을 지원하지 않는다.
5. 퍼블릭 IP 자동 할당을 활성화한다.
VPN 접속은 외부에서 EC2로의 접속이다. PC → 인터넷 → EC2의 연결이 가능하려면 EC2에서 퍼블릭 IP를 가지고 있어야 한다.
보안 그룹 설정하기
RDS에서 “EC2 연결 설정”으로 OpenVPN EC2를 연결하면 RDS, EC2 각각 보안그룹이 생성 및 적용된다.
1. ec2-rds-1
아웃바운드 규칙만 설정되어 있다. 규칙의 대상은 RDS의 보안그룹이다. 즉, EC2에서 해당 보안그룹이 적용된 리소스(RDS)로의 MySQL 요청이 허용된다(나갈 수 있다)는 말이다.
2. rds-ec2-1
rds의 보안그룹에는 인바운드 규칙만 설정되어 있다. 규칙의 소스는 EC2의 보안그룹이다. 즉, RDS로 들어올 수 있는 것은 해당 보안그룹이 적용된 리소스(EC2)로 한정된다는 말이다.
아웃바운드 규칙에서는 어디로 가는지를 나타내기 때문에 "대상", 인바운드 규칙에서는 어디에서 오는 것을 허용하는지를 나타내기 때문에 "소스"라고 표현한다.
EC2 접속하기
- 팸키 권한을 설정한다.
$ chmod 400 {팸키} - 접속한다.
이때 ubuntu, ec2-user 가 아니고 openvpnas임을 주의하자.
$ ssh -i {팸키} openvpnas@{ec2-public-ip) - 처음 권한 관련 yes를 클릭 후 모두 엔터를 눌러서 디폴트로 설정한다.
- 마지막에서 비밀번호를 설정한다.
- https://{ec2-public-ip}:943/admin/ 로 로그인한다.
아이디는 “openvpn”, 비밀번호는 방금 설정한 비밀번호로 로그인한다. - 노트북에 openVPN 프로그램을 다운받고, 프로필을 추가한다.
주소는 https를 붙인 주소다.
7. openvpn, 비밀번호 입력 후 별칭을 설정한다.
8. VPN을 활성화하면 RDS에 접속할 수 있게 된다.
참고자료
'Dev > 인프라' 카테고리의 다른 글
아임웹과 AWS를 연결해서 사용하기 & Route53 이관 (0) | 2025.04.25 |
---|---|
DNS 이해하기 (0) | 2025.04.23 |
[네트워크 이해하기 Part 3] 네트워크 통신 디테일 살펴보기 (0) | 2024.12.01 |
[네트워크 이해하기 Part 2] 네트워크에서 데이터 흐름 살펴보기 (0) | 2024.11.30 |
[네트워크 이해하기 Part 1] 네트워크 기본 개념 (0) | 2024.11.30 |