【レポート】スパイクにもすぐにオートスケールするようになったAmazon Aurora Serverless v2のDeep Dive #reinvent #EMB023

Amazon Aurora Serverless v2 はAuroraと同等の機能を持ち、ワークロードに応じてキャパシティがスケーリングします。 手離れ良く、低コストなエンタープライズDB、Aurora Serverless の New Launchセッションです。
2020.12.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Auroraは商用データベースと同等のパフォーマンスと可用性を低コストで実現するRDBです。

2018年から自動的にキャパシティがスケーリングする Aurora Serverless が提供されていましたが、今年の re:invent でその進化版「 Aurora Serverless v2」がプレビュー公開されました。

Aurora Serverless v2 のポイントは次の2点です。

  • ワークロードに対してより滑らかにスケーリングするようになった
  • Aurora の様々な高機能に対応

本レポートはその v2 の NEW LAUNCH セッションです。

セッション概要

  • タイトル : [NEW LAUNCH!] Amazon Aurora Serverless v2: Instant scaling for demanding workloads
  • スピーカー :
    • Murali Brahmadesam @ AWS
    • Chayan Biswas @ AWS
  • セッションID : EMB023

セッションはこちらをご確認ください

概要

Amazon Aurora Serverlessは、Amazon Auroraのオンデマンドの自動スケーリング構成であり、アプリケーションの需要に基づいてデータベース容量を自動的に調整します。 Amazon Aurora Serverless v2を使用すると、データベースのワークロードを1秒あたり数百から数十万のトランザクションに瞬時にスケーリングし、容量をきめ細かく調整して、適切な量のデータベースリソースを提供できるようになりました。このセッションでは、Aurora Serverless v2について詳しく説明し、最も要求の厳しいデータベースワークロードでも安心して運用できるようにする方法を示します。(Google Translateによる翻訳)

Amazon Aurora Serverless is an on-demand, auto scaling configuration of Amazon Aurora that automatically adjusts database capacity based on application demand. With Amazon Aurora Serverless v2, you can now scale database workloads instantly from hundreds to hundreds of thousands of transactions per second and adjust capacity in fine-grained increments to provide just the right amount of database resources. This session dives deep into Aurora Serverless v2 and shows how it can help you operate even the most demanding database workloads worry-free.

アジェンダ

セッションは以下の流れです。

  • Amazon Aurora の機能紹介
  • Aurora Serverlessスケーリングについて
  • Aurora Serverless のデモ
  • まとめ

本レポートでは、 Aurora Serverless v2のスケーリング周りに限定して触れます。

Aurora Serverelss はなぜ必要なのか?

Aurora Serverless の特徴は、ワークロードに応じて自動的にキャパシティが変動することです。

  • ピークに合わせてプロビジョンするとランニングは高価
  • サブピークにプロビジョニングすると、ピーク時に負荷に耐えられない
  • ワークロードに応じてスケーリングするシステムを実装・運用するのは大変

DBA をキャパシティとランニングコストの悩みから開放すべく生まれたのが、 Aurora Serverless です。 ワークロードに対してキャパシティがいい感じにスケーリングします。

Aurora Serverless v2 の特徴

  • スパイキーなワークロードにもすぐにスケール(v1はスケールが遅かった)
  • 細かい粒度でインクレメンタルにスケール(v1はインスタンスタイプと同じく2のべき乗でスペックが上がる。v2は0.5単位)
  • Amazon Aurora のマルチAZ、グローバルデータベースなど様々な機能を利用可能に(v1はAuroraの高機能を利用できず)
  • ピークロードに合わせてAmazon Aurora Clusterをプロビジョンした場合より90%程度低コストに(v1もほぼ同じ)

writer のスケーリング

  • Aurora Serverless は Aurora Capacity Unit(ACU)という単位でキャパシティを表現
  • v1時代(セッションでは解説無し)
    • RDSインスタンスタイプと同じく、2のべき乗でスケールアップ(2xlarge→4xlarge→8xlarge ...)
    • トランザクションが途切れるスケーリングポイントを見つけ、DBインスタンスごと入れ替えてスケーリングしていたため
  • v2時代
    • インスタンス入れ替え方式では無くなった
    • スケーリングは即座に0.5 ACU の粒度で行われる
    • スケーリングに応じてメモリなどのキャパシティもシームレスに変動し、バッファプールなどは維持される
    • スケールアップは即座に行われるが、スケールダウン時は進行中の処理に影響を与えないよう、メモリの開放などはゆっくり

スケールダウンの挙動はドキュメントにも記載があります。

When the demand starts to decline from its peak, the scale down from the maximum ACU occurs more slowly, as memory is more gradually released (than CPU). This is a deliberate architectural choice. Aurora Serverless v2 (preview) releases memory more gradually as demand lessens to avoid affecting the workload.

How Aurora Serverless v2 (preview) works - Amazon Aurora

Reader のスケーリング

リーダーは15ノードまでオートスケール。

AuroraクラスターとAurora Serverlessの混在が可能

AuroraクラスターとAurora サーバーレスを混在できます。 セッション内では、読み取り系を Aurora Serverless で管理する構成が紹介されていました。

スケーリングのデモ

ブルーが注文で、オレンジがAurora Serverlessのキャパシティです。

メトリクスからAurora Serverless の以下の特徴が読み取れます。

  • 注文(ブルー)が増え、キャパシティ(オレンジ)が足りなくなると、細かい粒度でスパイクにも連動してキャパシティがスケーリングしていること
  • スケールダウン時はキャパシティ(オレンジ)の低下が緩やかであること

補足:v1 と v2 のスケーリングの違い

Aurora Serverless v1を知っている人向けに、Amazon Aurora Serverless の料金ページ にある v1 と v2 の違いを記載します。

バージョン v1 v2
$/ACU Hour(N. Virginia) 0.06 0.12
スケールアップレイテンシー 5 〜 50 秒 数十万トランザクション/秒に即座にスケール
スケールダウンレイテンシー 〜 15分 v1より最大15倍速い (〜1分)
初期キャパシティー 1 ACU 0.5 ACU
キャパシティーの粒度 2のべき乗 0.5 ACU単位

v2 はACUのレートがv1の倍かかるものの、その他は圧倒的に優れています。

利用費

Aurora Serverless v2 を利用すると Aurora Provisioned Clusterに比べて90%程度安くなるそうです。

また、v2のACUレートはv1の倍かかるものの、キャパシティーの細かい粒度とスケールダウンの速さから、多くのユースケースにおいて v1 よりも安くなるそうです。

感想

Aurora Serverless v1 時代はトランザクションが途切れるスケーリングポイントを探しながら DB インスタンスを付け替えてスケーリングしていました。 v2では 0.5 ACU 単位で滑らかに無駄なくスケーリングするようになりました。

Aurora Serverless v2ではAmazon AuroraのマルチAZ(=高速フェイルオーバー)、バックトラッキングなどの機能も提供される予定で、Aurora Clusterとの混在構成も可能です。

Aurora Serverless v2はv1とは別製品と呼んでも良いくらいに大幅に進化しています。

Aurora Provisioned クラスターと同等の機能が90%安く利用でき、v1よりも高機能でさらに安いとなると、検討しない手は無いですね。

Aurora Serverless v2はプレビュー受付中!

現在、Aurora Serverless v2 はプレビューを受け付けています。

ガンガン使ってフィードバックしましょう!

プレビュー申し込み URL

AWS re:Invent 2020 は現在絶賛開催中です!

参加がまだの方は、この機会に是非こちらのリンクからレジストレーションして豊富なコンテンツを楽しみましょう!

AWS re:Invent | Amazon Web Services

参考