AWS 관련 서비스의 이전을 완료하고 유지보수를 진행하면서 비용관련 부분을 확인하던 중 눈에띄는 점이 있어 자세히 들여다 보았습니다.
전체 AWS 에서 발생하는 비용 중 53% 이상의 비율이 RDS(Relation Database Service) 에서 발생하고 있었고, 서비스 관련 비용을 줄일 수 있는 방법을 생각해보았습니다.
방안 1. 테스트 데이터 정리
첫번째로 가지고 있는 테스트 데이터를 정리하는 방법을 생각했습니다.
RDS 는 인스턴스 비용 뿐만아니라 매달 보유한 데이터의 양만큼 금액을 부과한다고 생각하였고, 개발 RDS 의 개발 데이터를 삭제하는 방법을 진행하기로 하였습니다.
총 데이터 확인
개발 데이터를 정리하기에 앞서 현재 개발 RDS에 누적된 개발 데이터의 양이 어느정도인지를 확인해 보았습니다.
-- MariaDB DB 별 데이터 크기 확인 쿼리
SELECT
table_schema AS database_name,
SUM(data_length + index_length)/1024/1024/1024 AS total_size
FROM
information_schema.tables
GROUP BY
table_schema;
총 3GB의 개발 데이터가 존재하였고, 해당 데이터들을 정리했을때 유의미한 비용절감효과가 나타나지 않는것으로 확인되었습니다.
17GB의 잔여 용량은 분명히 비용적인 부분에서 RDS의 최소 스토리지 크기인 10GB 보다 나올것이 분명했지만, 스토리지 크기를 줄이는 작업은 새로운 개발 RDS를 생성해야했기에 시간이 생각외로 소요될것이라 생각되었습니다.
또한 RDS의 데이터 관련 비용은 총 스토리지 볼륨에 기반하여 부과되므로 현재 누적된 데이터의 양은 중요하지 않았습니다.
마지막으로 현재 AWS 프리티어 혜택을 받아 개발 RDS는 무료로 사용중이기 때문에 개발 RDS 관련 작업을 진행하는것은 적어도 프리티어 기간중에는 큰 의미가 있지는 않다고 판단되어 운영 RDS 를 좀더 자세히 보기로 생각하였습니다.
방안 2. RDS 인스턴스 스케일다운
운영 RDS를 확인해보니 현재 RDS에서 발생하는 금액에 대한 부분은 모두 운영 RDS에서 발생하고 있었습니다.
따라서 해당 RDS를 좀 더 파헤쳐 보았고, 현재 사용하는 RDS 인스턴스가 오버스펙이라는 부분을 확인할 수 있었습니다.
아래는 위와같이 판단한 근거를 정리해 보았습니다.
파란 그래프가 운영 주황 그래프가 개발 RDS 입니다.
BinLogDistUsage?
MySQL 및 MariaDB 데이터베이스의 경우, 이진 로그 파일이 사용하는 디스크 공간을 바이트 단위로 표시
운영 그 파일이 디스크 공간(50GB)에서 적은 공간을 차지하고 있어 상대적으로 매우 적은 크기임을 확인했습니다.
또한 절대적인 크기 또한 1GB 가 기준이 된다고하니, 해당 사항을 참고하면 좋을 것 같습니다.
CPUCreditBalance?
인스턴스가 사용한 CPU 크레딧의 양
CPUCreditUsage?
CPU 크레딧의 사용량
인스턴스에서 사용하는 크레딧의 사용량과 밸런스또한 매우 적은 양을 사용하는걸로 확인되었습니다.
DiskQueueDepth?
디스크 I/O가 처리되기를 기다리는 요청의 수
디스크에서 처리되기를 기다리를 요청의 수도 높지 않은것을 확인하였습니다.
개발의 경우 프리티어이기 때문에 가장 성능이 낮은 인스턴스를 사용하는데도 6e-4(=0.0006) 수준이 최고점으로 매우 낮은 수준임을 볼 수 있습니다.
이왁 같은 수치들로 운영 RDS의 인스턴스가 오버스펙임을 확인하였고, 인스턴스를 다운그레이드하기로 결정하였습니다.
스케일다운
RDS 의 스케일다운 작업을 시간소요도 적고 난이도도 매우 낮은 작업이었습니다
1. 수정하려는 RDS를 선택 후 수정버튼을 클릭합니다.
2. 인스턴스 구성에서 변경하려는 인스턴스를 선택 후 아래 계속 버튼을 클릭합니다.
3. 즉시 적용하고싶다면 '즉시적용'을, 예약된 시간에 적용하고 싶다면 예약을 '다음 유지관리기간에 적용'을 선택 후 DB 인스턴스 수정버튼을 클릭합니다.
4. 즉시적용을 선택했다면 RDS 의 상태가 수정중으로 표시되고, 3~5분 후에 수정이 완료됩니다. 수정이 진행되는 중에는 RDS를 이용불가하니 운영중인 서비스를 즉시 수정할때는 신중히 선택하는것을 권장합니다.
이렇게 운영 RDS의 스케일다운을 완료하였습니다.
'DevOps' 카테고리의 다른 글
[우당탕탕 AWS] 느린녀석은 필요없어 (2) : AWS CloudFront 를 이용한 CDN 구축 (3) | 2024.12.25 |
---|---|
[우당탕탕 AWS] 신규 개발 및 운영환경 구성 (12) (3) | 2024.10.17 |
[우당탕탕 AWS] EC2, ELB, Route53 을 이용한 운영환경 구성 (11) (1) | 2024.10.15 |
[우당탕탕 AWS]AWS SES에 이메일 연동 및 메일 전송하기 (9) (0) | 2024.09.25 |
[우당탕탕 AWS] S3 CORS Error 해결하기: 버킷 정책 수정 방법 (7) (1) | 2024.09.23 |