RDS Auroraの種類と選定について

データベース技術

AWS RDS Auroraでデータベースを構築する際、色々な種類がありどれを使えばよいか迷うことがありました。当時は想定されるリクエスト数や負荷な面で大規模なシステム開発ではなかったため、可用性や性能よりもコスト面で優位(コスパ重視)な選択をする決断となりました。

システムにより要件は異なりますが、参考となればと思います。
また、金額や仕様は2023年1月時点の情報をもとに書いております。

下記3種類で選定していきます、まずはその特徴やコストを把握します。

  • Provisioned
    スペックをインスタンスタイプ(例: t3.medium)で設定
  • Serverless v1
    スペックを最大・最小ACUで設定(1ACU = 2GBメモリ)
  • Serverless v2
    同上

それぞれの特徴とコスト

Provisioned

Multi AZ設定可能
Single AZ構成で
そのAZで障害発生した場合
障害復旧を待つ、または
別の AZ に新しい DB インスタンスを手動で作成する必要があります。
リザーブドインスタンス適用できる
コスト例:
t3.medium(4GBメモリ)の場合、約94ドル/月
RI適用時は約78ドル/月(1年, no upfront)
オートスケールアップできない
その他自動スケールアップはされないため
アクセスが増え負荷が増えてきた場合
上位のインスタンスタイプに手動で変更するか
リードレプリカを追加して負荷分散させる必要がある

Serverless v1

Multi AZ設定はできないが、複数インスタンスの場合はMulti AZ配置される
Single AZ構成で
そのAZで障害発生した場合
以下公式からの引用
クラスターが Aurora Serverless v1 を使用する場合、Aurora は別の AZ に新しい DB インスタンスを自動的に作成します。ただし、このプロセスにはホストの交換が必要であるため、フェイルオーバーよりも時間がかかります。
おそらく30分程度
リザーブドインスタンス適用できない
コスト1ACUあたり約75ドル/月(2GBメモリ)
オートスケールアップ最小: 1 ACU最大: 256 ACU
その他最新のMySQL(v8.0)が使えない
利用可能な最新バージョンはMySQL5.7(2.07.1)(2023/01時点)
接続がないがないと自動で容量ゼロ (0 ACU) にスケールダウン、復帰に数分かかる、ただしアプリ側(例:ECS)のヘルスチェックで定期的にDBアクセスすれば止まらないよう運用可能
Serverless v1を選択する方法は、インスタンス作成時「Aurora(MySQL5.7)2.07.1」を選んで、DB インスタンスクラスにServerless v1を選択する

参考URL:Amazon Aurora Serverless v1 の使用

Serverless v2

Multi AZ設定可能
Single AZ構成で
そのAZで障害発生した場合
以下引用
プロビジョン済みまたは Aurora Serverless v2 クラスターに 1 つの DB インスタンスしか含まれていない場合、またはプライマリインスタンスとすべてのリーダーインスタンスが同じ AZ にある場合は、別の AZ に 1 つまたは複数の新しい DB インスタンスを手動で作成する必要があります。
リザーブドインスタンス適用できない
コスト1ACUあたり約150ドル/月 (2GBメモリ)
※負荷が低い場合0.5ACUで運用でき半額となる
オートスケールアップ最小: 0.5 ACU最大: 128 ACU
その他インスタンス作成時「Performance Insights」を無効にしないと最低スペック(0.5ACU)までスケールダウンされないことに注意
これはデフォルトでオンになっている最新のMySQL (v8.0)しか使えない
(2023/01時点)

参考URL:Aurora Serverless v2 を使用する

所感

Serverless v1は最新のMySQL 8が使えない時点で基本的には選択肢からは外れるかなと思います。

あとはオートスケールアップ/ダウンが必要かどうかとコストでServerless v2かProvisionedかを選択すればいいかと思います。

オートスケールアウト/インについてはインスタンスを立ち上げた後、クラスタに対して「Auto Scaling」設定をすればCPU使用率か接続数によってリードレプリカを自動増減させることが可能です。

ただしこれを設定するにはプライマリインスタンスと、1つ以上のリードレプリカが必要となります。



オフショア開発ならCRAID!

オフショア開発とは、システム開発業務などを海外の開発会社や海外子会社に委託することです。

CRAIDは東証プライム上場のフリービット株式会社の子会社です。CRAIDのオフショア開発拠点「フルスピードテクノロジーズ」は、当初は月間3000億ものリクエスト処理にも対応できる自社システム開発を行うためのオフショア開発部門として始まりました。各グループ会社の開発やクライアント様の受託開発やラボ型開発も多く手掛けております。

CRAIDやオフショア開発に関して、お気軽にお問い合わせください。

この記事を書いた人

社内経歴としては、社内システムの開発・保守から始まり、セブ開発拠点の立ち上げメンバーとしてフィリピン駐在、その後日本に帰国し受託開発やオフショア開発事業に参画し、様々な開発プロジェクトに参加しております。

taroshinをフォローする
データベース技術
CRAID オフショア開発ブログ
タイトルとURLをコピーしました