Amazon Aurora
Aurora のユーザーガイド (API バージョン 2014-10-31)

Aurora サーバーレスの仕組み

Aurora サーバーレスなしで Amazon Aurora を使用する場合、DB インスタンスクラスのサイズを選択し、Aurora レプリカを作成して読み取りスループットを増やすことができます。ワークロードが変動した場合は、DB インスタンスクラスのサイズを変更して、Aurora レプリカの数を変更できます。このモデルは、データベースのワークロードが予測可能な場合に有効です。予測されたワークロードに基づいて手動でキャパシティーを調整できるためです。

ただし、状況によっては、ワークロードが断続的で予測不可能な場合があります。ワークロードの集中が数分または数時間しか続かない場合やアクティビティが低下したり完全になくなったりする期間が長く続く場合があります。たとえば、散発的にセールスキャンペーンを行う小売ウェブサイト、必要なときにレポートを生成するレポートデータベース、開発やテスト環境、要件が確定していない新規アプリケーションなどが該当します。このような場合、正しいキャパシティーを適時に設定することは容易でありません。また、キャパシティーの不使用分に支払うことでコストが高くなる場合もあります。

Aurora サーバーレスでは、DB インスタンスクラスのサイズを指定せずにデータベースエンドポイントを作成できます。最小と最大のキャパシティーを設定します。Aurora サーバーレスでは、データベースエンドポイントがプロキシフリートに接続されます。このプロキシフリートでは、ワークロードをルーティングする先のリソースのフリートがオートスケーリングされます。プロキシフリートを使用すると、最小と最大のキャパシティー仕様に基づいて Aurora サーバーレスがリソースを自動的にスケールするため、接続が途切れることはありません。プロキシフリートを使用するためにデータベースクライアントアプリケーションを変更する必要はありません。Aurora サーバーレスは自動的に接続を管理します。スケーリングは、常にサービスリクエストに備えている「ウォーム」リソースのプールを使用するため、迅速に行われます。ストレージと処理が分離されているため、処理をゼロまでスケールして、ストレージ料金のみ支払うこともできます。

Aurora サーバーレスでは Aurora DB クラスター用の新しい serverless DB エンジンモードが導入されました。サーバーレス以外の DB クラスターは、provisioned DB エンジンモードを使用します。

Aurora サーバーレスアーキテクチャ

Aurora サーバーレスアーキテクチャの概要を次のイメージに示します。


                  Aurora サーバーレスアーキテクチャ

デーベースサーバーをプロビジョニングして管理する代わりに、Aurora キャパシティーユニット (ACU) を指定します。各 ACU は処理キャパシティーとメモリキャパシティーの組み合わせです。データベースストレージは 10 GiB から 64 TiB に自動的にスケールします (標準 Aurora DB クラスターのストレージと同じです)。

最小と最大の ACU を指定できます。Aurora の最小キャパシティーユニットは、DB クラスターをスケールダウンできる最小の ACU です。Aurora の最大キャパシティーユニットは、DB クラスターをスケールアップできる最大の ACU です。設定に応じて、Aurora サーバーレスは、CPU 使用率、接続、および使用可能メモリの各しきい値に関するスケーリングルールを自動的に作成します。

Aurora サーバーレスは、スケーリング時間を最小限に短縮するために、AWS リージョンのリソースのウォームプールを管理します。Aurora サーバーレスは、Aurora DB クラスターに新しいリソースを追加するときに、プロキシフリートを使用してアクティブなクライアント接続を新しいリソースに切り替えます。いつの時点においても、Aurora DB クラスターで実際に使用している ACU 分のみ課金されます。

Aurora サーバーレスのオートスケーリング

Aurora サーバーレス DB クラスターに割り当てられたキャパシティーは、クライアントアプリケーションで生成される負荷 (CPU 使用率と接続数) に基づいてシームレスにスケールアップ/ダウンされます。また、接続が 5 分間ない場合は、キャパシティーがゼロまでスケールされます。

Aurora サーバーレス DB クラスターは、以下の条件のいずれかが満たされた場合にスケールアップします。

  • CPU 使用率が 70% 超過

  • 接続の使用が 90% 超過

Aurora サーバーレス DB クラスターは、以下の条件のすべてが満たされた場合にのみスケールダウンします。

  • CPU 使用率が 30% 未満

  • 接続の使用が 40% 未満

スケールアップのクールダウン期間は、前回のスケーリングオペレーションから 3 分です。スケールダウンのクールダウン期間は、前回のスケーリングオペレーションから 15 分です。

スケーリングポイントは、データベースが安全にスケーリングオペレーションを開始できる時点です。以下の条件では Aurora サーバーレスがスケーリングポイントを見つけられない場合があります。

  • 長期実行クエリまたはトランザクションが進行中である

  • 一時テーブルまたはテーブルロックが使用中である

このような場合、Aurora サーバーレスは DB クラスターのスケーリングを 5 回試行します。5 回の試行が失敗すると、スケールオペレーションはキャンセルされます。

スケーリングイベントについては、AWS マネジメントコンソール の DB クラスターの詳細で確認できます。DB クラスターに割り当てられている現在のキャパシティーは、Amazon CloudWatch の ServerlessDatabaseCapacity メトリクスを使用してモニタリングすることもできます。

Aurora サーバーレスの自動的な一時停止と再開

アクティビティなしの状態が一定時間続いた場合、Aurora サーバーレス DB クラスターを一時停止できます。DB クラスターを一時停止するまでのアクティビティなしの時間を指定します。デフォルトは 5 分です。DB クラスターの一時停止を無効にすることもできます。

DB クラスターを一時停止すると、コンピューティングまたはメモリのアクティビティが完全に停止し、ストレージに対してのみ課金されます。Aurora サーバーレス DB クラスターを一時停止するときにデータベース接続がリクエストされた場合は、DB クラスターが自動的に再開して接続リクエストに対応します。

注記

DB クラスターを一時停止してから 7 日間を超えると、DB クラスターはスナップショットからバックアップされる場合があります。この場合、DB クラスターは接続リクエストがあった時点に復元されます。

Aurora サーバーレスおよび DB クラスターパラメータグループ

DB クラスターパラメータグループがプロビジョニングされた DB クラスターとサーバーレス DB クラスターで動作する場合ではいくつかの違いがあります。Aurora サーバーレス DB クラスターでは、以下のクラスターレベルのパラメータのみ変更できます。

  • character_set_server

  • collation_server

  • lc_time_names

  • lower_case_table_names

  • time_zone

他のクラスターレベルのパラメータを変更しても、変更は適用されません。Aurora サーバーレス DB クラスターは、これらのパラメータでデフォルト値を使用します。 describe-engine-default-cluster-parameters コマンド、または RDS API アクション DescribeEngineDefaultClusterParameters を実行すると、クラスターレベルのパラメータでサポートされているエンジンモードを表示できます。

注記

インスタンスレベルのパラメータは Aurora サーバーレスに適用されません。

Aurora サーバーレス DB クラスターに関連付けられている DB クラスターパラメータグループを変更すると、次のことが適用されます。

  • Aurora サーバーレスで変更可能なクラスターレベルパラメータを変更し、DB パラメータグループを保存する場合、以下の設定にかかわらず、変更は直ちに適用されます。

  • Aurora サーバーレスでは、[pending-reboot] の DB クラスターパラメータグループのステータスは無視されます。Aurora サーバーレス DB クラスターは、ダウンタイムなしですぐに DB クラスターパラメータグループに変更を適用します。

  • 変更を DB クラスターパラメータグループに適用するには、Aurora Serverless がアクティブな場合は現在の容量でシームレススケーリングを開始し、DB クラスターが一時停止している場合は再開します。

パラメータグループの詳細については、「DB パラメータグループおよび DB クラスターパラメータグループを使用する」を参照してください。

Aurora サーバーレスとフェイルオーバー

Aurora サーバーレス DB クラスターは、現在、単一のアベイラビリティーゾーン (AZ) 内に作成されています。アベイラビリティーゾーンが使用不可になった場合、 Aurora は別の AZ にクラスターを再作成します。

高速なフェイルオーバー用に構成された Aurora プロビジョニング済みクラスターは、約 60 秒で回復します。Aurora サーバーレスでは、高速なフェイルオーバーはサポートされていませんが、自動マルチ AZ フェイルオーバーがサポートされています。Aurora サーバーレスのフェイルオーバーは、Aurora プロビジョニング済みクラスターのフェイルオーバーよりも時間がかかります。Aurora サーバーレスのフェイルオーバー時間は、AWS リージョン内の他の AZ の需要やキャパシティーの可用性によって異なるため、現在定義されていません。

Aurora サーバーレスとスナップショット

Aurora サーバーレスクラスターのクラスターボリュームは常に暗号化されています。暗号化キーを選択することができますが、暗号化は無効にできません。したがって、暗号化されたスナップショットでは許可されていない操作は実行できません。たとえば、Aurora サーバーレスクラスターのスナップショットを別の AWS リージョンにコピーすることはできません。