AWS - RDS
0. 서론
어제오늘을 거쳐서 AWS RDS를 사용하는 법을 어느정도 감을 잡은 것 같아 지금 작성하게 된다.
왜 서비스 하나 이용하는 걸 유난떠나 싶기도 하지만 사실 옛날에 사용했던 AWS계정을 삭제한 줄 알았지만 살아 있었고 그런 김에 예전에 왜 요금이 나왔는가 싶어서 봤더니 대부분 요금이 RDS부분 이었다.
아마 국내에 하나, 해외에 하나 이런식으로 EC2,RDS를 생성하였고 거기에 탄력적 IP라는 고정된 IPv4까지 사용하면서 실습한 것 같은데 그래서인지 잠깐 이용했더라도 비용이 나온 것 같았다.
여튼 잡설이 길었지만 어제 잠깐 사용했음에도 비용 0.03달러가 부과가 되기까지 해서 RDS 실제로 기피하고 싶기도 하지만 어쩌겠는가
백엔드 개발을 하면 데이터베이스를 뗄래야 뗄 수 없는 관계인데 이러한 DB를 제공하는 RDS한번 만져봐야 하지 않겠는가
1. RDS 세팅
1-1. RDS 생성
RDS를 생성하기 위해서는 당연히 AWS RDS에 들어가서 [데이터베이스 생성]하면 생성하기 위한 설정 페이지로 넘어갈 것이다.
그럼 자신이 사용하고 싶은 데이터베이스 유형,비용, 아이디, 비밀번호 등 설정하면 된다.
여기서 이제 무료로 사용할거면 중요한 부분인데 어제 내가사용한 RDS부분에서 비용이 든 이유는 24년 2월쯤에 모든 퍼블릭 IPv4 주소에 대해 시간당 요금을 부과하기 시작하였다고 한다.
그래도 EC2용 프리티어에서는 요금을 부과하지 않는다고 하니 설정하는 방법을 설명하고 이유는 밑에 서술하겠다.
- 스토리지
- 스토리지 자동 조정 활성화 : OFF
- 연결
- 퍼블릭 엑세스 : OFF (어제 요금이 나온 이유)
- EC2컴퓨팅 리소스에 연결 : ON
- vpc 보안 그룹 : 자신이 사용하고 있는 EC2 보안그룹 추가
- 추가 구성
- 자동 백업 활성화 : OFF
- 유지관리/ 마이너 버전 자동 업그레이드 사용 : OFF
해줘야 할 설정이 많은 것 같지만 왠지 비용이 부과될 것 같은 기능들을 그냥 없이 하는 것이 마음이 편할 것 같아 설정을 이렇게 세팅하였다.
설정을 다하고 아래에 있는 생성 버튼을 누르고 어느정도 시간을 기다리면 정상적으로 RDS가 생성이 될 것이다.
1-2. RDS 파라미터 설정
RDS은 해외 서비스이기 때문에 한국 기준으로 설정을 더 해줘야 할 부분이 있다.
먼저 파라미터 그룹에 들어가 그룹을 생성한다.
RDS의 타임존은 기본적으로 UTC로 설정되어 있으니 검색창에 time_zone을 검색해 찾아서 값에 Asia/Seoul로 교체해 준다.
다음으로 우리는 한글을 사용할 것이기 때문에 문제가 없도록 UTF-8으로 세팅하기 위해서 밑의 있는 파리미터를 수정해주자
- character_set_client
- character_set_connection
- character_set_database
- character_set_filesystem
- character_set_results
- character_set_server
여기까지 진행하였으면 기본적으로RDS의 설정을 끝마쳤다.
2. EC2와 RDS 연결
위에 적은 것처럼 이제 AWS는 EC2를 제외한 퍼블릭 IPv4에 대해서 요금을 부과하니 EC2를 이용하여 RDS를 외부에 이용해볼 것이다.
2-1. EC2에 MySQL 설치
우선 EC2서버를 실행시켜 다음 명령어를 입력해 설치할 것이다.
참고로 나는 Amazon Linux 2이용하고 있으니 다른 버전이나 OS를 사용하고 있다면 명령어가 공식문서를 참고하도록 하자.
1
sudo yum install mariadb
MySQL가 제대로 설치되었는지 확인하려면 다음 명령을 실행해 확인하면 된다.
1
mysql --version
2-2. RDS 연결
RDS를 설정할 때 기본적으로 생성된 것으로 기억하고 있지만 보안 그룹에 3306포트가 허용되어 있는지 인지는 하고 있어야 한다.
설치가 완료되었다면 계정,비밀번호, 호스트 주소를 사용해 RDS에 접속한다.
1
mysql -u 계정 -p -h Host주소
3. 인텔리제이(db navigator 플러그인)에서 RDS 연결
이제 IDE에서 RDS를 연결하기 하기 위해서 기본적으로 db navigator플러그인이 설치되었다고 가정하고 설명하겠다.(플러그인을 쓰는 이유는 인텔리제이 커뮤니케이션버전은 플러그인을 설치해야 db연결이 가능하기 때문)
왼쪽의 [DB Browser] 탭으로 이동한 다음 new Connection버튼을 눌러 설정 창으로 가자
[Database] 탭에서 Host 칸에 RDS 엔드포인트, User, Password 칸에는 RDS 아이디, 비밀번호를 입력하면 된다.
[SSH Tunnel] 탭에서 Host 칸에 EC2 퍼블릭 DNS, User 칸에는 EC2 아이디, Auth type은 Key Pair로 전환해서 EC2를 생성할 때 내려받은 보안 키 pem파일을 경로로 지정하여 연결 테스트하면 정상적으로 연결이 될 것이다.
RDS에서 time_zone을 설정했으니 확인을 하기 위해 인텔리제이에서 SQL Console실행시켜 테스트를 해보자.
1
select @@time_zone;
그럼 한국시간으로 설정한 것이 출력이 될 것이다.