Amazon Keyspaces で Cassandra ワークロードをマネージドに運用 - CQL 互換とサーバーレス

Apache Cassandra 互換の CQL API でワイドカラムデータを管理し、サーバーレスのオンデマンドキャパシティで運用負荷をゼロにする。プロビジョンドモードとの使い分けとマルチリージョンレプリケーションを解説します。

Keyspaces の概要

Amazon Keyspaces (for Apache Cassandra) は Apache Cassandra 互換のフルマネージドワイドカラムデータベースサービスです。CQL (Cassandra Query Language) をそのまま使用でき、既存の Cassandra ドライバーやツールで接続できます。サーバーレスアーキテクチャで、テーブルの作成後はキャパシティの管理が不要です。自前で Cassandra クラスターを運用する場合、ノードの追加・削除、コンパクション、修復、バックアップなどの運用タスクが発生しますが、Keyspaces ではこれらがすべて自動化されます。DynamoDB と同様のサーバーレスモデルですが、Keyspaces は CQL による柔軟なクエリと Cassandra エコシステムとの互換性を提供する点が異なります。

キャパシティモードとデータモデル

Keyspaces はオンデマンドモードとプロビジョンドモードの 2 つのキャパシティモードを提供します。オンデマンドモードはリクエスト数に応じた完全従量課金で、トラフィックパターンが予測しにくいワークロードに適しています。プロビジョンドモードは読み取り/書き込みキャパシティユニットを事前に設定し、予測可能なワークロードでコストを最適化します。Auto Scaling との組み合わせで、プロビジョンドモードでも負荷に応じた自動調整が可能です。データモデルは Cassandra と同じパーティションキーとクラスタリングキーの設計が必要で、パーティションキーの選択がパフォーマンスとスケーラビリティを左右します。静的カラム、TTL (Time to Live)、カウンターカラムなど Cassandra の主要なデータ型をサポートしています。

マルチリージョンと運用

マルチリージョンレプリケーションで、複数のリージョンにテーブルのレプリカを配置し、リージョン間のレイテンシを低減します。各リージョンで読み取りと書き込みの両方が可能なアクティブ-アクティブ構成で、リージョン障害時のフェイルオーバーも自動的に処理されます。ポイントインタイムリカバリ (PITR) で過去 35 日間の任意の時点にテーブルを復元でき、誤操作やデータ破損からの回復が可能です。暗号化は保存時 (AWS 所有キー、カスタマー管理キー) と転送時 (TLS) の両方がデフォルトで有効です。CloudWatch メトリクスでリクエスト数、レイテンシ、スロットリングイベントを監視し、キャパシティの調整に活用します。 Cassandra のデータモデリングについてはAmazon の関連書籍も参考になります。

Keyspaces の料金

Keyspaces の料金はキャパシティモードとストレージで構成されます。オンデマンドモードは書き込みリクエストユニット (WRU) あたり約 0.00000178 ドル、読み取りリクエストユニット (RRU) あたり約 0.000000356 ドルです。プロビジョンドモードは書き込みキャパシティユニット (WCU) あたり約 0.000742 ドル/時、読み取りキャパシティユニット (RCU) あたり約 0.0001484 ドル/時です。ストレージは GB あたり約 0.25 ドル/月です。マルチリージョンレプリケーションは各リージョンのストレージとレプリケーション書き込みに追加料金が発生します。

まとめ

Amazon Keyspaces は Cassandra 互換のフルマネージドワイドカラムデータベースで、CQL による柔軟なクエリとサーバーレスの運用負荷ゼロを両立します。マルチリージョンレプリケーションによるアクティブ-アクティブ構成と PITR による復元機能で、高可用性とデータ保護を実現します。