Amazon Web Services ブログ

Amazon Aurora Serverless v2 の一般提供開始

2022 年 4 月 21 日(米国時間)、Aurora PostgreSQL と MySQL 向けの Amazon Aurora Serverless v2 の一般提供が開始されました。Aurora Serverless はアプリケーションのニーズに基づいてデータベースの容量を拡大または縮小することのできる Amazon Aurora 用のオンデマンドの自動スケーリング設定です。

Amazon Aurora は、クラウド用に構築された MySQL および PostgreSQL 互換のリレーショナルデータベースです。これは Amazon Relational Database Service (RDS) によって完全に管理され、ハードウェアのプロビジョニング、データベースのセットアップ、パッチ、バックアップなど、時間のかかる管理タスクを自動化します。

Amazon Aurora の主要な機能の 1 つにコンピューティングとストレージの分離があります。その結果、これらは独立してスケールします。Amazon Aurora ストレージは、データベース内のデータ量が増えると自動的にスケールします。例えば、大量のデータを格納できる状態でほとんどのデータを削除すると、プロビジョニングされたストレージが調整されます。

Amazon Aurora の仕組み - コンピューティングとストレージの分離
しかし、ほとんどのデータベースワークロードでは一定量のコンピューティングは必要ないので、多くのお客様は Amazon Aurora のコンピューティングレイヤーにも同じ柔軟性が必要だと考えています。ワークロードは、一定期間にスパイクが発生すること、まれに発生すること、または予測可能なスパイクが発生することがあります。

このような種類のワークロードに対応するには、データベースで必要とされるピーク時の容量に備えてプロビジョニングする必要があります。しかし、データベースワークロードがピーク容量で実行されることはほとんどないため、このアプローチには非常に高いコストが必要になります。適切な量のコンピューティングをプロビジョニングするには、データベースの容量消費を継続的に監視し、消費量が多い場合はリソースをスケールアップする必要があります。しかし、これには専門知識が必要である上にダウンタイムが発生することもあります。

この問題を解決するために、2018 年に Amazon Aurora サーバーレスの最初のバージョンがリリースされました。この発表以来、Amazon Aurora Serverless は、低頻度、断続的、そして予測不可能なワークロードに対するコスト効果の高いオプションとして多くのお客様が使用しています。

2022 年 4 月 21 日(米国時間)、Amazon Aurora Serverless の次期バージョンの一般提供を開始します。お客様は、瞬時で無停止のスケーリング、きめ細かい容量調整に加えて、リードレプリカ、マルチ AZ 配置、Amazon Aurora Global Database などの追加機能を使用して、最も需要の高いワークロードでもサーバーレスで実行できます。

Aurora Serverless v2 は、Amazon Aurora で利用可能な最新のメジャーバージョンでリリースされます。サポートされるバージョンは、PostgreSQL 13 の Aurora PostgreSQL 互換エディションと MySQL 8.0 の Aurora MySQL 互換エディションです。

Aurora Serverless v2 の主な機能
Aurora Serverless v2 では、1 秒あたり数十万件のトランザクションにデータベースをスケールし、最も要求の厳しいワークロードをコスト効率よく管理できます。接続やトランザクションを中断することなく、ワークロードのニーズに一致するようにデータベース容量をきめ細かくスケールします。また、請求は使用した容量に対してのみ発生するので、ピーク時のロードに対するプロビジョニングに比べて最大 90% 節約できます。

既存の Amazon Aurora クラスターがある場合は、同じクラスター内に Aurora Serverless v2 インスタンスを作成できます。これにより、プロビジョニングされたインスタンスと Aurora Serverless v2 インスタンスの両方が同じクラスター内で共存できる混在設定クラスターが作成されます。

この場合、Amazon Aurora のすべてのメリットがサポートされます。例えば、複数のアベイラビリティーゾーンにデプロイされた Amazon Aurora リードレプリカを最大 15 個作成できます。これらのリードレプリカは任意の数だけ Aurora Serverless v2 インスタンスにすることができ、高可用性や読み取りオペレーションのスケーリングの目的でフェイルオーバーターゲットとして使用できます。

同様に、Global Databaseを使用すると、任意のインスタンスを Aurora Serverless v2 に割り当て、アイドリング時に最小容量に対してのみ料金を支払うことができます。セカンダリリージョンのインスタンスは個別にスケールして、異なるリージョンにまたがるさまざまなワークロードをサポートすることもできます。機能の包括的なリストについては、Amazon Aurora ユーザーガイドを参照してください。

Aurora Serverless コンピューティングとストレージのスケーリング

Aurora Serverless v2 スケーリングのしくみ
Aurora Serverless v2 は、CPU リソースとメモリリソースを追加して、基盤となるインスタンスの容量を増大させることで瞬時に無停止でスケールします。この手法により、スケーリングのために新しいインスタンスにフェイルオーバーすることなく、基盤となるインスタンスの容量をインプレースで増減することができます。

スケールダウンの場合、Aurora Serverless v2 では、より保守的なアプローチが採用されていて、ワークロードに必要な容量に達するまで段階的にスケールダウンします。スケールダウンが速すぎると、キャッシュされたページを削除するタイミングが早すぎてバッファプールが減少し、パフォーマンスに影響する可能性があります。

Aurora Serverless の容量は Aurora capacity unit (ACU) で測定されます。各 ACU は、約 2 ギビバイト (GiB) のメモリ、対応する CPU、およびネットワークを組み合わせたものです。Aurora Serverless v2 では、開始時の容量は 0.5 ACU まで小さくすることができます。サポートされる最大容量は 128 ACU です。さらに、0.5 ACU という細かい増分がサポートされるので、データベース容量をワークロードのニーズに厳密に適合させることができます。

Aurora Serverless v2 スケーリングのデモ
Aurora Serverless v2 の動作を示すために、期間限定で割引を提供するフラッシュセールをシミュレートします。e コマースサイトを運営している場合を例に考えてみます。期間限定で商品を 50% 割引で購入できるマーケティングキャンペーンを実施するとします。フラッシュセールの期間中、サイトのトラフィックが急増することが予想されます。

従来のデータベースを使用した場合、このようなマーケティングキャンペーンを定期的に実施する場合は、予想されるピーク時の負荷に備えてプロビジョニングする必要があります。また、このようなキャンペーンを時々実行する場合は、セール中に予想されるトラフィックのピークに合わせてデータベースを再設定する必要があります。どちらの場合も、容量は想定した量に制限されます。予想以上の売り上げがあった場合はどうなるでしょうか? データベースが需要に追いつかない場合、サービスが低下する可能性があります。また、マーケティングキャンペーンで期待した売り上げが得られない可能性も考えられます。 その場合、必要のない容量に対して不必要な支払いが生じることになります。

このデモでは、Aurora Serverless v2 をトランザクションデータベースとして使用します。AWS Lambda 関数を使用して、e コマースサイトのセールイベント中にデータベースを呼び出して注文を処理します。Lambda 関数とデータベースは同じ Amazon Virtual Private Cloud (VPC) 内にあり、関数はデータベースに直接接続してすべてのオペレーションを実行します。

フラッシュセールのトラフィックをシミュレートするために、Artillery というオープンソースの負荷テストフレームワークを使用します。このフレームワークでは、複数の Lambda 関数を呼び出すことでさまざまな負荷を生成できます。例えば、小さな負荷から始めて、その負荷を急速に増加させることにより、ワークロードに基づいてデータベース容量がどのように調整されるかを観察できます。この Artillery 負荷テストは、同じ VPC 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されます。

アーキテクチャ図
以下に示す Amazon CloudWatch ダッシュボードは、注文数が増加したときのデータベース容量の変化を表しています。ダッシュボードには、各時点の注文 (青) とデータベース容量 (オレンジ) が表示されます。

セール開始時、Aurora Serverless v2 データベースは、設定された最小データベース容量である 5 ACU の容量で開始されます。最初の数分間、注文数は増えますが、データベースの容量はすぐには増えません。データベースは最初にプロビジョニングされた容量で負荷を処理できます。

しかし、15:55 頃には注文数が12,000に急増します。その結果、データベースの容量は 14 ACU に増加します。データベースの容量はミリ秒単位で増加し、負荷に合わせて調整されます。

注文の数は数秒間にわたって増加しますが、その後 15:58 までに大幅に減少します。しかし、データベースの容量はトラフィックの減少に正確に合わせて調整されるわけではありません。代わりに、5 ACU に達するまで段階的に減少します。スケールダウンは控えめに実行され、キャッシュされたページを削除するタイミングが早すぎてパフォーマンスに影響が及ぶことが防止されます、これは、急増するワークロードに不要なレイテンシーが発生するのを防ぎ、キャッシュとバッファープールが積極的にパージされないようにするためです。

Cloudwatch ダッシュボード

既存の Amazon Aurora クラスターで Aurora サーバーレス v2 の使用を開始する
既に Amazon Aurora クラスターが存在し、Aurora Serverless v2 を試す場合、開始する最も早い方法は、サーバーレスインスタンスとプロビジョニング済みインスタンスの両方を含む混在構成クラスターを使用することです。まず、既存のクラスターに新しいリーダーを追加します。リーダーインスタンスのタイプを Serverless v2 に設定します。

サーバーレスリーダーを追加する

新しいサーバーレスインスタンスをワークロードでテストします。期待どおりに動作することが確認できたら、サーバーレスインスタンスへのフェイルオーバーを開始できます。フェイルオーバーが完了するまでの所要時間は 30 秒未満です。このオプションを使用すると、Aurora Serverless v2 の使用を開始する際のダウンタイムを最小限に抑えることができます。

サーバーレスインスタンスへのフェイルオーバー

新しい Aurora Serverless v2 データベースを作成する方法
Aurora Serverless v2 の使用を開始するには、RDS コンソールから新しいデータベースを作成します。最初のステップは、Amazon Aurora エンジンタイプを選択することです。 次に、互換性のあるデータベースエンジン (MySQL または PostgreSQL) を選択します。[Engine version] (エンジンのバージョン) でフィルターを開き、[Show versions that support Serverless v2] (Serverless v2 をサポートするバージョンを表示) フィルターを選択します。[Available versions] (利用可能なバージョン) ドロップダウンリストには、Aurora Serverless v2 でサポートされているオプションのみが表示されます。

エンジンオプション
次に、データベースを設定する必要があります。 データベースの管理者のユーザー名とパスワードを使用して、認証情報を設定します。

データベース設定
次に、データベース用のインスタンスを構成します。必要なインスタンスクラスの種類を選択する必要があります。これにより、データベースインスタンスにコンピューティング容量、ネットワーク容量、およびメモリ容量が割り当てられます。[Serverless] (サーバーレス) を選択します。

次に、容量の範囲を定義する必要があります。Aurora Serverless v2 の容量は、最小設定と最大設定の範囲内でスケールアップおよびスケールダウンします。ここでは、ワークロードの最小および最大データベース容量を指定できます。指定できる最小容量は 0.5 ACU で、最大容量は 128 ACU です。Aurora Serverless v2 の容量単位の詳細については、即時自動スケーリングに関するドキュメントを参照してください。

容量設定
次に、新しい VPC とセキュリティグループを作成して接続を設定するか、デフォルトを使用します。最後に、[Create database] (データベースの作成) を選択します。

接続設定

データベースの作成には数分かかります。ステータスが [Available] (使用可能) なると、データベースは準備完了です。

データベースリスト

データベースの接続の詳細は、データベースページに表示されます。新しい Aurora Serverless v2 データベースに接続するために必要なのは、管理者のユーザー名とパスワードに関連付けられたエンドポイントとポートだけです。

データベースの詳細ページ

今すぐ利用可能
Aurora Serverless v2 は、米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、欧州 (パリ)、欧州 (ストックホルム)、および南米 (サンパウロ) でご利用いただけます。

このリリースの詳細については、Amazon Aurora Serverless v2 のページをご覧ください。

Marcia

原文はこちらです。