티스토리 뷰

728x90
반응형

AWS에서 제공하고 있는 RDS 엔진중에서 aurora 가 있습니다

 

Amazon Aurora는 클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 데이터베이스로, 기존 엔터프라이즈 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합하였습니다.

 

aurora는 클라우드 환경에 맞춰 aws에 최적화되어 구축되어있어서

 

읽기/쓰기 분산, 빠른 복제본 생성, 리전별 빠른 복제, 오토스케일링까지 많은 기능을 제공해줍니다

 

대표적으로 배달의 민족도 aurora를 사용하고 있다고 하죠

 

aurora는 mysql과 postgresql의 호환성을 유지하고 있어서

 

mysql 또는 postgresql을 사용하고 있다면 어플리케이션 코드를 전혀 변경할 필요 없이 바로 사용이 가능합니다

 

 

 

aurora는 프로비저닝과 서버리스 2가지 타입을 제공하는데요

 

프로비저닝은 우리가 쓰는 기존의 RDS 처럼 고정된 인스턴스를 갖는 타입이고

 

서버리스는 인스턴스 타입을 갖지 않고 자동으로 확장되는 타입입니다

 

 

 

Amazon Aurora Serverless는 Amazon Aurora의 온디맨드 Auto Scaling 구성입니다. 애플리케이션 요구 사항을 기반으로 자동으로 시작 및 종료하고 용량을 확장 또는 축소합니다. Aurora Serverless를 사용하면 데이터베이스 용량을 관리하지 않고도 클라우드에서 데이터베이스를 실행할 수 있습니다.

 

 

그러니깐 사용을 하지 않으면 인스턴스를 갖지 않고, 사용을 하게되면 자동으로 용량을 확장하는 형태인거죠

 

serverless는 한번더 v1과 v2로 나뉘어지는데요

 

"Amazon Aurora Serverless v1은 사용 빈도가 낮거나 간헐적이거나 예측할 수 없는 워크로드에 대한 간단하고 비용 효율적인 옵션입니다."

 

라고 AWS 소개에도 언급되어있습니다

 

v1은 추천되는 사용 예제 역시

 

"사용 빈도가 낮은 애플리케이션", "개발 및 테스트 데이터베이스" 라고 언급되어있는데요

 

즉 24시간 매일매일 풀타임으로 동작하지 않는 DB용으로 적합하다는 말입니다

 

 

그도 그럴것이 사용량이 24*356 계속 존재한다면 굳이 서버리스를 쓸 필요가 없고

 

정해진 인스턴스타입이 있는 인스턴스를 생성하는것이 오히려 비용 측면에서 저렴합니다

 

다만 배치, 워커용으로만 사용되어 사용빈도가 낮거나

 

개발 및 테스트용 테이터베이스라면 사용빈도가 낮을것이기 때문에

 

비용측면에서 고정된 인스턴스타입을 갖는것보다 저렴합니다

 

 

production 환경에서도 고가용성으로 가능한 aurora serverless v2가 새롭게 출시되었는데요

 

아쉽게도 아직은 서울리전을 지원하지 않고 있어요

 

 

 

aurora serverless를 만드는 방법은 매우 간단합니다

 

RDS 메뉴에 들어가 데이터베이스 생성을 클릭합니다

 

엔진 유형에서 Amazon Aurora를 선택하세요

 

그리고 mysql 호환 버전을 쓸지 postgresql 호환버전을 쓸지 선택해주시고

 

우리는 서버리스를 사용할것이기때문에 서버리스를 선택합니다

 

과거에는 aurora mysql이 5.6만 지원했지만 이제는 5.7까지 지원합니다

 

주저 없이 5.7을 선택합니다

 

 

우리가 프로비저닝됨을 선택했다면

 

인스턴스 타입을 선택하는 과정이 있었을텐데요

 

서버리스 타입을 선택했기때문에 해당 과정은 없고

 

대신에 최소 용량과 최대 용량을 지정할 수 있습니다

 

 

용량은 2GiB 메모리를 1ACU라고 부릅니다

 

최소로 실행될 용량부터 최대로 실행될 용량의 범위를 지정합니다

 

그리고 "추가 조정 구성" 항목을 클릭하면 "클러스터가 유휴 상태일 때 용량을 0 ACU로 확장"이라는 옵션이 있는데요

 

이 옵션을 선택해야지만 사용량이 없을때 용량이 0으로 설정이 됩니다

 

이 옵션을 선택하지 않으면 사용량이 없어도 최소의 용량이 기본적으로 세팅되기 때문에 비용이 청구됩니다

 

사용이 없어서 용량이 0으로 설정된후에 다시 시작이 될때 첫 연결 시 지연 시간이 일반적으로 약 25초입니다

 

즉 0상태의 용량이 첫 트래픽을 수신하여 콜드스타트하는데 25초 가량이 걸린다는의미입니다

 

물론 그 이후 트래픽부터는 용량이 확보되었기 때문에 원활히 됩니다

 

그래서 이 콜드스타트 25초를 고려해주셔야하고, 이것을 원치 않는 경우는 최소 용량이 0이 되지 않도록 체크를 비활성화하시면 됩니다

 

 

 

이렇게 나머지 항목(아이디, 비밀번호 등) 모든 세팅을 마치면 aurora db가 생성이 되며 생성된 endpoint를 복사하셔서 사용하시면 됩니다.

 

 

추가로  참고로 해야할것은 aurora serverless는

 

퍼블릭 엑세스를 활성화할 수 있는 옵션이 없습니다

 

그러니깐 외부에서 aurora serverless를 접속할수 없고 vpc 내부에서 접속해야한다는 뜻입니다

 

 

 

 

서버리스 그렇다면 얼마나 쌀까요?

 

v1의 서울리전 비용을 살펴봅시다

 

 

1ACU당 0.10 USD 입니다

 

다른 종류의 엔진과 비교를 해보겠습니다(단일 AZ, 서울리전 기준, 시간당)

  mysql maria aurora(프로비저닝됨) aurora serverless(1ACU)
db.t3.small (2vcpu, 2GiB) $0.052 $0.052 $0.063 $0.10

 

물론 aurora serverless는 인스턴스 타입을 갖지 않지만 가격 비교를 보기 쉽게 테이블로 만들어보았습니다

 

막상 이렇게 표를 보면 serverless가 2배 정도 비싸네? 하겠지만

 

이것은 serverless 1ACU 기준의 가격입니다

 

실제로 테스트용도로 활용을 해보면 1~8 유닛의 유동성을 갖습니다

 

serverless v1은 용량 증분이 2배씩 확장이 되는데

 

1 -> 2 -> 4 -> 8 이런식으로 트래픽에 따라 확장이됩니다

 

그렇기 때문에 4유닛을 보통 활용한다고 가정하면

 

시간당 $0.40이라는 고정 인스턴스 대비 6~8배정도의 가격이 나오는것이죠

 

그래서 하루에 고정적으로 3~4시간 사용하는 용도의 확장성이 필요 없는 DB라면

 

차라리 비용측에서는 고정된 인스턴스 db.t3.small를 이용하는 편이 낫습니다

 

다만 하루 1~2시간 쓸까말까한 경우에서는 절감이 있겠죠?

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함