AWS 과금 정책의 변화
비교적 최근 IPv4의 고갈 문제로 인해 AWS에서 IPv6사용을 권장함에 따라 2개 이상의 IPv4 할당에 대해 과금을 시작했습니다.
이에 따라 1년가량 운영 중이던 저희 서버에도 과금이 진행됐는데요.
이번에 AWS 계정간에 서버를 이전하며 과금 문제를 해결한 방법에 대해서 말씀드리도록 하겠습니다.
2개의 IPv4를 할당받는다면 위와 같이 달에 4달러가량이 지출되게 됩니다.
과금이 되는 원리
대부분의 사이드 프로젝트에서 2개의 IP는 다음과 같이 할당받습니다.
1. EC2 인스턴스에 고정 IP를 할당하기 위해 등록한 탄력적 IP
2. RDS 인스턴스를 외부에서 접근할 수 있게 열어둔 퍼블릭 액세스 가능
이렇게 2개에 대해서 IPv4를 할당받는 경우가 대부분입니다.
해결법
이 문제를 해결하기 위해서는 둘 중 하나의 IP를 할당 해제해야 합니다.
저희는 RDS의 퍼블릭 액세스를 막는 방법으로 해결해보겠습니다.
기존의 RDS에 퍼블릭 액세스가 열려있다면 인스턴스의 수정에 들어가서 위에 퍼블릭 액세스 불가능으로 바꿔주고 같은 VPC(가상인터넷)에 있는 EC2 인스턴스에 바로 연결해 주면 됩니다.
하지만 RDS의 퍼블릭 액세스를 막는다면 저희 컴퓨터에서 MySQL 워크벤치를 이용하여 DB에 직접 접근할 수 없게 됩니다.
MySQL 워크벤치로 RDS 인스턴스 접근법
MySQL의 워크벤치가 엄청나게 편하기 때문에 웬만하면 사용하는 게 좋은데요.
워크벤치에 RDS 인스턴스와 연결된 EC2 인스턴스에 SSH 접속을 통해서 RDS에 접근할 수 있습니다.
우선 MySQL 워크벤치를 실행한 뒤, +버튼을 눌러 새로운 커넥션 생성창에 들어갑니다.
그 뒤 위와 같은 커넥션 생성창에서 Connection Method를 Standard TCP/IP over SSH로 설정한 뒤, 아래와 같이 값을 입력합니다.
SSH Hostname : RDS 인스턴스와 연결된 EC2 인스턴스의 퍼블릭 IP주소
SSH Username : EC2 인스턴스에 접속할 유저 이름 (ubuntu의 경우 default가 ubuntu)
SSH Password : 따로 설정이 없다면 그냥 두면 됩니다.
SSH KeyFile : EC2 인스턴스 생성 시에 SSH 접속을 위해 발급받은 .pem 키 파일! (중요)
MySQL Hostname : RDS인스턴스의 엔드포인트
MySQL Server Port : RDS인스턴스의 Port (따로 건들지 않았다면 3306)
Username : DB의 유저이름 (ex. root)
Password : DB 유저의 비밀번호
그 뒤, Test Connection을 눌러서 커넥션이 성공하는지 확인합니다.
커넥션 연결에 성공한다면 이후 해당 커넥션을 통해서 DB에 접근가능합니다.
'Develop(개발)' 카테고리의 다른 글
스프링 동시성 문제 해결법의 종류와 장단점 (3) | 2024.03.17 |
---|---|
스프링이 어떻게 여러 요청을 동시에 처리할 수 있을까? (0) | 2024.03.10 |
Github Action에서 간단한 테스트 자동화 하기! (4) | 2024.02.25 |
vscode 터미널에서 실행하는 환경변수 직접 설정하는 방법 (0) | 2023.10.03 |