ApsaraDB RDS for PostgreSQL サーバーレスインスタンスは、変化するビジネスニーズに対応するためにリアルタイムの弾力的スケーリングを提供します。これにより、データベースリソースをビジネスワークロードの急激な変化に適応させ、リソースの無駄を防ぎ、データベースの運用保守コストを抑制できます。このドキュメントでは、コスト削減と運用効率の向上に役立つ、サーバーレスインスタンスの特徴、アーキテクチャ、および使用方法について説明します。
概要
ApsaraDB RDS for PostgreSQL サーバーレスインスタンスは、CPU とメモリのリアルタイムな弾力的スケーリングを提供します。これらは、クラウドディスクアーキテクチャ上に構築された新しいタイプの ApsaraDB RDS for PostgreSQL インスタンスです。これらのインスタンスは、ネットワークリソース、名前空間、およびストレージ領域に対して垂直的なリソース分離を提供します。また、計算リソースに対しては従量課金制の課金方式を提供します。サーバーレスインスタンスは、コスト効率が高く、使いやすく、柔軟性があります。トラフィックのピークとオフピークに応じて、計算リソースを迅速かつ独立してスケールアップまたはスケールダウンできます。これにより、ビジネスの変化に迅速に対応し、コストを最適化し、効率を向上させることができます。
-
ApsaraDB RDS for PostgreSQL サーバーレスインスタンスの計算リソースは、RDS キャパシティユニット (RCU) で測定されます。1 RCU は約 1 vCPU と 2 GB のメモリに相当します。インスタンスの計算リソースは、指定した RCU の範囲内で自動的にスケーリングされます。
-
ApsaraDB RDS for PostgreSQL サーバーレスインスタンスの最大接続数は 2,400 に固定されています。この値は固定であり、RCU によって変動しません。
以下の図は、ワークロードが変動するシナリオにおける、通常のインスタンスとサーバーレスインスタンスのリソース使用量と仕様を比較したものです。
図に示すように、ワークロードが変動するシナリオでは、次のようになります。
-
通常のインスタンス:オフピーク時にはリソースを浪費し、ピーク時にはリソースが不足するため、ビジネスに悪影響を及ぼす可能性があります。
-
サーバーレスインスタンス:
-
計算リソースはビジネスの需要に応じて調整されます。これにより、リソースの無駄が削減され、リソース使用率が向上し、コストが削減されます。
-
ピーク時でもビジネスの需要を満たします。これにより、業務継続性が確保され、システムの安定性が向上します。
-
リソースがワークロードに動的に一致する従量課金モデルを使用します。これにより、固定リソースのサブスクリプションモデルと比較して、大幅なコスト削減が可能です。
-
手動でのスケーリングが不要になります。これにより、運用担当者と開発者の両方にとって、運用保守の効率が向上し、運用保守コストが削減されます。
-
自動起動・停止をサポートします。アクティブな接続がない場合、インスタンスは自動的に一時停止し、計算リソースを解放してコストを節約します。新しい接続が確立されると、インスタンスは自動的に再開します。
-
高スループットの書き込みシナリオや高い同時実行性が求められるサービスに最適化されています。その弾力的スケーリングにより、データ量が多く、典型的なトラフィックのピークとオフピークがあるシナリオに適しています。
-
メリット
-
低コスト:スタートアップ企業にとって、ApsaraDB RDS for PostgreSQL サーバーレスインスタンスは、他のインフラストラクチャや関連サービスに依存することなくすぐに使用できます。安定かつ効率的なデータアクセスを提供し、使用したリソース分のみを支払います。
-
より大きなストレージ領域:ストレージ領域は最大 32 TB まで拡張でき、インスタンスのデータ量に基づいて自動的に拡張されます。これにより、ストレージリソースの不足によるサービス中断を効果的に防ぎます。
-
計算リソースの自動弾力的スケーリング:読み取りおよび書き込み操作のための計算リソースは弾力的にスケーリングできます。これにより、運用保守コストとシステムの脅威が大幅に削減されます。
-
フルマネージド:システムのデプロイメント、スケーリング、アラート対応などのすべての運用保守タスクは、Alibaba Cloud の専門チームによって処理されます。これらのタスクは、ビジネスに影響を与えることなく透過的に実行され、継続的なサービス可用性を確保します。
利用シーン
-
開発環境やステージング環境など、データベースの使用頻度が低いシナリオ。
-
中小企業向けのウェブサイト構築サービスなど、SaaS アプリケーションのシナリオ。
-
個人の開発者。
-
学校教育や学生の実験など、教育関連のシナリオ。
-
モノのインターネット (IoT) やエッジコンピューティングなど、ワークロードが予測不可能なシナリオ。
-
フルマネージドサービスを希望するユーザー。
-
ワークロードが変動する、または予測不可能なユーザー。
-
断続的な定期タスクがあるビジネスシナリオ。
課金に関する説明
使用方法
-
ビジネスニーズに基づいてリソース構成を最適化するために、最小 RCU と最大 RCU を含む、サーバーレスインスタンスの計算リソースのスケーリング範囲を調整できます。
-
特定の期間に対して厳格な安定性要件がある場合は、定期タスクを使用してサーバーレスインスタンスの RCU を事前に構成できます。これにより、それらの期間中のインスタンスの安定性が確保されます。
-
サーバーレスインスタンスのスケーリングポリシーについては、潜在的なサービス中断を防ぐためにデフォルトの非強制ポリシーを選択できます。あるいは、継続的な可用性よりもパフォーマンス要件が重要な場合は、強制ポリシーを選択できます。
-
自動起動・停止を有効にすると、インスタンスへのアクティブな接続が 10 分間ない場合、インスタンスは自動的に一時停止します。一時停止状態では、RCU は 0 になり、計算リソースに対する課金は発生しません。一時停止中のインスタンスに新しい接続が行われると、自動的に再開し、計算リソースに対する課金が開始されます。
よくある質問
Q:サーバーレスインスタンスの CPU、メモリ、その他のメトリックに関する Cloud Monitor アラートを受信するのはなぜですか?
A:これは通常、事前に構成されたグローバルアラートルールが原因で発生します。すべての ApsaraDB RDS for PostgreSQL インスタンス (または特定のリソースグループ) に対して CPU やメモリなどのメトリックに関するアラートルールが既に存在する場合、新しく作成されたサーバーレスインスタンスはこれらのルールを自動的に継承します。サーバーレスインスタンスは自動的にスケーリングできますが、リソース使用量が一時的にアラートのしきい値に達すると、システムはアラートをトリガーして通知を送信します。
これらのアラートを管理するには、Cloud Monitor コンソールにログインします。 ページで、高度なフィルター機能を使用して、対象のサーバーレスインスタンスで有効になっているアラートルールを表示し、管理できます。
Q:高負荷時にインスタンスがタイムリーにスケールアウト (RCU の増加) せず、サービスが応答しなくなったのはなぜですか?
A:高負荷時にインスタンスがタイムリーにスケールアウトしない理由は、次の 2 つのいずれかです。
-
RCU の上限に達した:インスタンスの計算リソースが指定された最大 RCU 値までスケーリングされており、それ以上スケールアウトできません。この場合、ピーク時のビジネス要件を評価し、必要に応じて最大 RCU の上限を引き上げる必要があります。
-
スケーリングのレイテンシーが瞬間的なトラフィックに追いつかない:サーバーレスインスタンスの弾力的スケーリングメカニズムには、レスポンスレイテンシーがあります。スケーリングは通常、CPU またはメモリ使用率が 80% を超えたときにトリガーされ、プロセスには約 5 秒かかります。サービストラフィックが 5 秒未満などの非常に短い期間で急激に増加した場合、インスタンスはスケーリングプロセスをトリガーして完了する前にリソースが枯渇し、応答しなくなる可能性があります。瞬間的な超高同時実行性を処理する必要があるビジネスシナリオでは、サービスの安定性を確保するために、プロビジョニングされたリソースを持つ通常のインスタンスを使用することを推奨します。
Q:ビジネスの負荷が減少した後、インスタンスが自動的にスケールイン (RCU の減少) しないのはなぜですか?
A:サーバーレスインスタンスは、CPU 使用率が 50% 未満かつメモリ使用率が 50% 未満の両方の条件が満たされた場合にのみスケールインします。
インスタンスがスケールインしない一般的な理由は、データベースのページキャッシュが大量のメモリを占有しているためです。ビジネスの負荷が減少しても、PostgreSQL は後続のクエリを最適化するためにデータをメモリ内に保持することがあります。これにより、メモリ使用率が 50% を下回らなくなり、スケールインの条件が満たされません。すぐにスケールインをトリガーするには、インスタンスを再起動してページキャッシュを強制的に解放し、メモリ使用量を減らすことができます。
Q:一時停止していて接続がないインスタンスを起動するにはどうすればよいですか?
A:コンソールでインスタンスの自動起動・停止機能を無効にすることができます。そうすると、インスタンスは自動的に起動します。