AWS RDS, EC2 가격 조금이라도 낮추기. 예약 인스턴스 사용
- Study/IT 실전 지식
- 2022. 11. 10. 17:09
사이드 프로젝트로 사용 중인 AWS에 RDS의 요금이 갑자기 우상향 되는 모습을 발견했습니다. 아마도 사용자가 많아지면서 DB connection이 증가하니까 그만큼 비용이 증가하는 것 같은데, 최근 환율도 올라서 비용이 매우 비싸요 ㅋㅋㅋ
실제로 다른 애들 요금은 그대로인데 RDS만 2달 사이 30불이 올랐습니다. ㅎㄷㄷㄷ
뭔가 요금을 낮추려고 이것저것 찾아보다가, 어짜피 계속 띄워놓을 거 예약 인스턴스를 사용하자~!라고 생각했습니다.
예약 인스턴스가 뭐냐면, 원래 AWS에 있는 리소스(쉽게 생각하면 PC) 들은 사용자가 점유하고 사용하는 게 아닙니다. 즉 제가 EC2를 이용한다고 해서 저한테 EC2를 위한 컴퓨터 한 대가 할당되는 것이 아닌, 놀고 있는 컴퓨터중에 한대가 할당대는 것이고, 제가 EC2를 재시작하거나 껐다 켜면, 예전에 내가 사용하던 컴퓨터가 꺼졌다가 켜져서 다시 사용하는 것이 아니라, 놀고 있는 컴퓨터들 중에 새로운 컴퓨터가 할당되는 방식입니다.
그럼 예약 인스턴스는 뭐냐? 바로 나는 특정 기간동안 이 리소스를 계속 사용하겠다!라고 AWS에 말하고 고정된 컴퓨터 한 대를 할당받아 사용하는 것입니다. AWS입장에서는 사용자가 이 자원을 특정 기간 동안 사용하겠다고 말했으니, 그 기간 동안 요금을 받고 해당 리소스를 계속 가동하게 되면 에너지 효율이 좋게 나오게 됩니다. 사용자가 막 사용했다가 안 했다가 하면 그 사용자를 위해 컴퓨터를 계속 켜 두는 것은 낭비니까요.
이렇게 예약 인스턴스를 사용하면 AWS입장에서는 사용자가 사용할 리소스를 계산해서 운영하기에 좋고, 사용자 입장에서는 할인된 가격으로 해당 리소스를 사용할 수 있어서 좋은, 윈-윈 서비스입니다. 물론 잠깐 쓰고 말 거면 예약 인스턴스를 사용하면 안 되죠. 실제로 예약인 스턴스는 최소 1년을 기준으로 합니다.
사용법
구글링해보니 생각보다 옛날 문서들이 나오거나, AWS공식 문서들이 나오는데 번역이 이상해서 그런지 이해하기 쉽지 않습니다. 그냥 원문으로 보는 게 더 나을 정도.. 하지만 한번 해보면 정말 쉬운데요, 일단 예약 인스턴스를 사용하고 싶은 AWS 서비스 콘솔 페이지로 이동합니다.
그럼 왼쪽에 메뉴가 있는데, 예약 인스턴스라는 메뉴가 있습니다. 이건 예약 인스턴스를 제공하는 서비스 콘솔 화면에 다 있는 메뉴이니 사용하고자 하는 서비스에 가서 누르면 됩니다. 그전에, 내가 사용중인 인스턴스의 크기를 꼭 확인해야합니다. 저는 RDS로 t3.small을 사용하고 있습니다.
예약 인스턴스 화면에 가면 위처럼 화면이 뜨는데요, 오른쪽 위에 예약 인스턴스 구매를 눌러줍니다.
그럼 뭔가 조건을 넣는 화면이 나오는데, 내가 사용 중인 인스턴스에 정보를 넣으면 됩니다. 저는 aurora-mysql, t3.small 인스턴스를 사용하고 있습니다. 아래 배포 옵션은 만약 다중 AZ를 사용하고 있다면 체크하면 되고요. 기간은 1년~3년 이상을 선택할 수 있습니다. 그리고 중요한 게 오퍼링 유형이란 게 있는데, 3가지 유형이 있습니다.
Partial Upfront : 부분 선결제
All Upfront : 전액 선결제
No Upfront : 선결제 X
유형별로 요금 할인율이 차이가 나는데 전액 선결제를 할 경우 선택한 기간만큼의 인스턴스 사용료를 선불로 전부 내고, 그냥 무료로 사용하면 되는 요금제입니다. 부분 선결제는 전액이 아니라 어느 정도만 내고, 후불로 나머지를 내는 방법이고, 마지막으로 No Upfront는 선결제 없이 그냥 후불로 내는 방식(기존과 동일)입니다.
서비스마다 다르긴 한데 전액 선결제를 할 경우 약 30~40%의 가격 할인이 들어가고, 선결제를 안 할 경우 20~25%의 할인율이 들어갑니다. 1년 치 선결제가 조금 부담스럽기도 하니 그냥 No Upfront를 선택하겠습니다.
이렇게 다 선택하면 아래 사용요금이 어떻게 찍히는지 계산되어서 나옵니다. 제출을 누르게 되면 예약 인스턴스가 할당되는데요, 여기서 할당된다고 해서 바로 사용되는 건 아닙니다. 출하고 다시 밖에 화면으로 나오면 예약 인스턴스가 하나 생기긴 하는데 상태가 payment-pending입니다.
이 말은 예약 인스턴스를 신청했지만 아직 활성화가 되지 않은 겁니다. 근데 어디를 찾아도 활성화나 시작하는 버튼이 없습니다.
예약 인스턴스의 실행 조건은 처음 인스턴스를 생성할 때 예약 인스턴스를 걸고 생성하는 방법이 있고, 기존에 실행 중인 인스턴스를 예약 인스턴스로 변경하려면 그냥 조건만 맞게 구매하시면 됩니다. 제가 아까 사용하는 RDS가 aurora mysql에 t3.small이었기 때문에 가만히 있으면 얘가 알아서 적용해줍니다. (시간이 좀 걸립니다.)
한 1~2분 후에 새로고침을 하면 active상태인 것을 확인할 수 있습니다. 이제 다음 달부터 할인된 가격을 지불할 수 있겠네요.
이런 식으로 EC2도 예약 인스턴스로 바꿔주었습니다.
EC2는 두 개 인스턴스를 신청해서 구매했습니다. EC2의 경우 OS를 선택해서 구매하는 방식인데, ubuntu인 경우 linux를 선택하면 됩니다.
예약 인스턴스를 적용했으니, 다음 달에 얼마나 할인되는지 한번 확인해보도록 하겠습니다.
AWS를 꾸준히 사용해야 한다면 이 예약 인스턴스를 사용하고 있는지 확인하시고, 할인 이점을 꼭 챙기세요~! 물론 회사에서는 AWS 벤더업체(메가존같은..)에서 다 해주겠지만요 ^^
'Study > IT 실전 지식' 카테고리의 다른 글
사용자가 늘어나면서 서비스 구조는 어떻게 바뀌게 되는가? / 대규모 트래픽을 받기위해 서버를 어떻게 구성해야하는가? / feat. 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (2) | 2024.01.07 |
---|---|
주식앱 실행하면 왜이렇게 오래걸릴까?, 로딩이 왜케 김? - 개발자가 말해드림 (2) | 2023.02.06 |
ls 명령어 이쁘게 출력해보자 pls (1) | 2022.08.11 |
UI/UX light-mode, dark-mode를 넘어선 Gen-z 모드ㅋㅋㅋㅋ (2) | 2022.03.17 |
CI에서 db 속도 향상. mysql tmpfs 사용하기 (1) | 2022.03.11 |