フォーム読み込み中
この記事では、Alibaba Cloud ApsaraDB RDSサーバレスがHA対応したので紹介します。
高可用性なRDSが必要な場合はこちらを使う事を検討すると良いと思います。
クラウドサービスのRDS(Relational Database Service)はWebブラウザにてコンソール上のボタンを数回クリックするだけで起動・運用できるフルマネージドサービスのデータベースサービスです。お馴染みのMySQL、PostgreSQLらRDSがフルマネージドサービスとして展開しているため、ユーザ観点としては運用における労力が減るので非常に助かっています。一方、そのフルマネージドサービスよりユーザ観点でもっと楽になるのが、RDSサーバレスです。従来のRDSはクラウド上の仮想サーバ上でデータベースを起動、調整、運用する必要がありますが、RDSサーバレスはその必要性が無くなります。RDSサーバレスはユーザのワークロードやトラフィックに応じて自動的にコンピューティングリソースをスケーリングします。そのため、トラフィック増加に伴うパフォーマンス低下を回避しつつ、実際に使用したリソースのみに対して支払うため、クラウドサービス利用に伴う費用を必要最低限に抑えることができます。
こういったRDSサーバレスはデータベースサービスとして非常に優れているサービスですが、この度Alibaba Cloud ApsaraDB RDSサーバレスにてHA対応されたとのことなので、これがどういう機能か深堀しながら紹介します。
<参考>
Overview of serverless ApsaraDB RDS for MySQL instances
Serverless ApsaraDB RDS for PostgreSQL instances
FunctionComputeやServerless Application Engineなどサーバレスコンピューティングは、アプリケーションやサービスをクラウドへデプロイするだけで、ユーザのワークロードやアプリケーション・サービスの使用リソースなど需要に応じてリアルタイムに近い形でコンピューティングリソースが自動割り当てられるインフラストラクチャです。ユーザこと開発者から見ると「サーバレス」は、アプリケーション・サービスのスケールアップやダウン、起動、停止、障害検知と対処などのサーバ管理タスクがクラウドサービス提供者によって抽象化された状態と思います。このサーバレスの背後には、手動でのサーバ管理を最小限に抑え、アプリケーション・サービスの自動的なスケール、耐障害性、24/365 常時利用可能性、使用量に基づく課金方式があります。AWS、Azure、Google Cloudを含め、このサーバレスによるビジネスモデルが成長している理由は、開発者がサービス管理を好まないことと、クラウドによるサーバレスの恩恵が多くの人にとってかなりの恩恵をもたらしているためです。
では、サーバレスデータベースはどうでしょう。ApsaraDB RDSサーバレスことサーバレスデータベースはアプリケーションやサービスの需要に基づいてデータベースリソースをスケールアップ・ダウンしたり、リソース消費に基づいてユーザに課金するデータベースサービスです。ApsaraDB RDSサーバレスはサーバレスデータベースとして、ApsaraDB RDSインスタンスと比べて、オペレーションを排除し、アプリケーション・サービスによって使用されるトランザクション数やリソース消費と必要なストレージコストを削減することができます。
<参考>
ApsaraDB RDSサーバレスのPostgreSQLのみ、オプションで高可用性版(High-availability Edition)が付帯されています。これを説明する前に、ApsaraDB RDSサーバレス(通常版)としてのアーキテクチャ構成を説明します。
ApsaraDB RDSサーバレス(通常版)は、クラウドにおいて、ユーザにスケーリングと柔軟性を持たせるために、クラウドのコンピューティングとストレージを分離した構成です。ユーザのワークロードやアプリケーション・サービスの使用リソースなどの需要に応じて、コンピューティングがスケーリングしたいときはストレージを切り離しながらスケーリングします。仮にストレージをスケーリングしようとしても、リアルタイム処理しながら保存しているデータの整合性とデータの状態管理(ステートフル・ステートレス)が困難なので、ストレージはコンピューティングとは別にしながらスケーリングしない方がベストという経緯があります。またデータ量が多ければ処理に時間がかかるので尚更です。
このApsaraDB RDSサーバレスの構成だけでも十分な恩恵がありますが、いくつか弱点があります。まず、コンピューティングとストレージを最小限、つまりシンプルさを重視した設計なので、コストを重視してるためインスタンスの自動起動・停止やスケーリングポリシーをサポートしていないです。また、データベースを単純かつ低価格で利用するためにアクティブ/スタンバイ切り替えやデータレプリケーションといった大規模商用サービス向けには応じていないです。実際、ApsaraDB RDSサーバレス通常版のシナリオとして、開発テスト、中小企業向けなどを指しています。
それを解決するのが、ApsaraDB RDSサーバレス高可用性版です。ApsaraDB RDSサーバレス高可用性版であれば、ApsaraDB RDSサーバレス通常版の恩恵に加え、インスタンス自動停止と再起動、スケーリングポリシー、自動または手動のアクティブ/スタンバイ切り替え、データレプリケーションの照会と変更などをサポートしています。このApsaraDB RDSサーバレス高可用性版は2024年3月25日の時点で日本リージョンを含めほとんどのリージョンで展開されています。
上述通り、ApsaraDB RDSサーバレス通常版と高可用性版はアーキテクチャの考え方から、対応している機能、シナリオはもちろん、価格もかなり違ってきます。それを具現化すべく、マトリクスをまとめてみます。
項目 | RDSサーバレス通常版 | RDSサーバレス高可用性版 |
ノードら構成 | 単一構成 | メインとバックアップ構成 |
ノードの拡張性(読み取り専用) | ✖ | 〇 |
フェイルオーバー | ✖ | 〇 |
リソース拡大と縮小 | 〇 | 〇 |
インスタンス自動停止と再起動 | ✖ | 〇 |
スケーリングポリシー | ✖ | 〇 |
自動または手動でアクティブ/スタンバイ切り替え | ✖ | 〇 |
データレプリケーションの照会と変更 | ✖ | 〇 |
Database Autonomy Service(DAS)対応 | ✖ | 〇 |
推奨シナリオ | ・中小企業向け ・開発及びテスト環境向け | ・大手・中堅企業向け商用サービス ・ビジネストラフィックが激しい変動があるシナリオ |
この違いから、高可用性版のほうがRDSサーバレスとして軍配が上がってきましたね。
上記比較表から特に気になるのが料金です。基本的な考え方として、ApsaraDB RDSサーバレス(通常版、高可用性版)の料金は、使用するRDS Capacity Units(RCU)とストレージリソースに基づいています。料金は、RCUとストレージリソースの使用量に応じて、1時間ごとに請求されます。
RCU(RDS Capacity Unit):サーバレスRDSのコンピューティング能力。RCUサイズは0.5から14の範囲で、使用量に基づき時間単位で課金されます。
ストレージリソース:サーバレスRDSのデータ保存用のストレージ容量。ストレージは、選択した容量全体に基づいて時間単位で課金され、使用量に関わらず選択した容量分の料金が発生します。
ここでポイントとなるのが、ストレージ容量は、選択した容量に基づいて請求されます。例えば、100GBのストレージを選択した場合、実際には100GB未満を使用していても、100GB分の料金が発生します。ストレージ使用量が選択した容量を超えた場合、システムは自動的にストレージを拡張し、拡張後の新しい容量に基づいて料金が請求されます。ただし、ApsaraDB RDSサーバレスの仕様なのか、ApsaraDB RDSサーバレスとして拡張したストレージの自動縮小は行われないので、注意が必要です。
ApsaraDB RDSサーバレスの料金は以下の式で計算されます。
サーバレスRDSの料金 = {(RCU料金 +ストレージリソース料金) × データベースシステム内のRDSインスタンス数} + その他の料金
※その他の料金は、バックアップやDatabase Autonomy Service(DAS)などのオプションサービスのことを意味しており、実際の使用量に基づいて請求されます。
この考え方を基に、ApsaraDB RDSサーバレス通常版と高可用性版の違いとして、
ApsaraDB RDSサーバレス通常版はRDSインスタンスが1つの場合の料金が発生します。 一方、ApsaraDB RDSサーバレス高可用性版はRDSインスタンスが少なくとも2つ必要となるため、ApsaraDB RDSサーバレス通常版の2倍の料金が発生します。
計算例として、例えば日本リージョンでApsaraDB RDSサーバレス通常版を購入し、100GBのストレージ容量と1から8のRCU範囲を選択しアプリケーション・サービスを立ち上げます。そのアプリケーション・サービスで1日の間に合計150GBのストレージを消費し、1時間のピークで8RCUが消費され、残りの23時間で毎時1RCUが消費されたとします。この場合、RCUの単価がUSD 0.0497/RCU-時間、ストレージの単価がUSD 0.00024/GB-時間だった場合、ApsaraDB RDSサーバレス通常版の1日の料金は以下のように計算されます。
RCU料金: (0.0497 × 1 × 8) + (0.0497 × 23 × 1) = $1.5407 USD
ストレージリソース料金: 0.00024 × 24 × 150 = $0.864USD
合計して、ApsaraDB RDSサーバレス通常版の料金:$1.5407 USD
+ $0.864USD = $2.4047USD となります。
一方、ApsaraDB RDSサーバレス高可用性の料金は、上述通りRCU料金+ストレージ料金に基づいて課金されるため、RCU、ストレージともに最低2倍の料金が発生します。
RCU料金: 2 × { (0.0497 × 1 × 8) + (0.0497 × 23 × 1)} = $3.0814 USD
ストレージリソース料金: 2 × { 0.00024 × 24 × 150} = $1.728 USD
合計して、ApsaraDB RDSサーバレス高可用性版の料金:$3.0814 USD + $1.728USD = $4.8094USD となります。
ApsaraDB RDSサーバレス高可用性版はApsaraDB RDSサーバレス通常版と比べて割高となりますが、インスタンスの負荷状況に応じて、動的にリソースを割り当て、同時にリアルタイムで料金をかけます。そのため、ApsaraDB RDS 高可用性版と比べてコストを大幅に節約することができます。
ApsaraDB RDSサーバレス通常版と高可用性版の構造的な違いは上述通り説明しました。これを踏まえ、適用できるシナリオを想定しながら、以下のようにまとめてみます。
ApsaraDB RDSサーバレス通常版
・開発およびテスト環境:不定期にアクセスがあるデータベースなど、テストや開発目的で使用する環境。
・個人開発者:予算が限られている個人プロジェクトや小規模アプリケーション開発。
ApsaraDB RDSサーバレス高可用性版
・SaaS:小中規模の企業が運営するウェブサイト構築など、サービスとしてのソフトウェアを提供するシナリオ。
・IoT(Internet of Things)やエッジコンピューティング:不規則で予測不可能なワークロードを扱うIoTデバイスやエッジコンピューティング環境。
・変化または変化が予測不能なサービス:ビジネス要件や市場の需要が頻繁に変動するアプリケーション・サービス。
RDSサーバレスを利用したいけど、可用性に不安を覚える方は、ApsaraDB RDSサーバレス高可用性版を使用してみるのも手だと思いますので、その際は本記事を参考に頂ければ幸いです。
条件に該当するページがございません