Amazon Keyspaces
Apache Cassandra 互換のフルマネージドデータベースで、CQL (Cassandra Query Language) をそのまま使用しつつサーバーレスのスケーラビリティと可用性を提供する
概要
Amazon Keyspaces (for Apache Cassandra) は、Apache Cassandra 互換の CQL API を提供するフルマネージドデータベースサービスです。既存の Cassandra ドライバーとツールをそのまま使用でき、Cassandra クラスターの運用 (ノード管理、パッチ適用、バックアップ、スケーリング) から解放されます。ストレージは 3 つの AZ に自動レプリケーションされ、99.999% の可用性 SLA を提供します。オンデマンドキャパシティモードとプロビジョンドキャパシティモードの 2 つの課金モデルがあります。
Cassandra との互換性と非互換の境界
Keyspaces は CQL (Cassandra Query Language) の大部分をサポートしていますが、Cassandra のすべての機能が利用できるわけではありません。サポートされる機能には、テーブルの CRUD 操作、TTL (Time to Live)、静的列、カウンター、ユーザー定義型 (UDT)、軽量トランザクション (LWT)、ログ付きとログなしのバッチなどがあります。非サポートの機能として、セカンダリインデックス (CREATE INDEX)、マテリアライズドビュー、ユーザー定義関数 (UDF)、ユーザー定義集約 (UDA)、トリガー、TRUNCATE などがあります。移行前に cqlsh で既存のスキーマとクエリを Keyspaces に対して実行し、互換性を確かめます。Cassandra からのデータの移行には、cqlsh や DSBulk による読み込み、AWS Glue を使うオフライン移行、CQLReplicator によるほぼリアルタイムの複製などの方法があります。移行中はソースの Cassandra クラスターと Keyspaces の両方に書き込むデュアルライト方式で、ダウンタイムを最小化できます。Keyspaces は CQL 3.11 の API と互換で、2.x とも後方互換です (2026 年 10 月時点)。新しいバージョン固有の機能に依存する場合は、対応状況を確認した上で採否を判断してください。
DynamoDB との選択基準
Keyspaces と DynamoDB はどちらもフルマネージドの NoSQL データベースですが、データモデルとクエリの柔軟性が異なります。DynamoDB はキーバリューとドキュメントのデータモデルに対応し、パーティションキーとソートキーによるアクセスパターンを事前に設計する必要があります。GSI (グローバルセカンダリインデックス) で追加のアクセスパターンに対応できますが、インデックスごとに追加コストが発生します。Keyspaces はワイドカラム型で、パーティションキーとクラスタリング列による柔軟なデータモデリングが可能です。CQL では範囲クエリ、IN 句、ORDER BY などを書きます (IN 句は SELECT 文だけで、IN 句と ORDER BY を組み合わせた時の並べ替えはページの中だけという制約があります)。選定の目安として、新規プロジェクトで AWS ネイティブに設計するなら DynamoDB、既存の Cassandra ワークロードを移行するなら Keyspaces が適しています。DynamoDB には AWS エコシステムとの統合 (Streams、DAX、Global Tables、PartiQL) があり、Lambda トリガーや EventBridge Pipes とも連携します。Keyspaces は Cassandra エコシステム (ドライバー、ORM、ツール) との互換性が特徴で、マルチクラウドやハイブリッド環境でのポータビリティを重視する場合の選択肢になります。
キャパシティモードの選択とコスト最適化
Keyspaces のキャパシティモードは DynamoDB と同様に、オンデマンドとプロビジョンドの 2 種類があります。オンデマンドモードはリクエスト数に応じた完全従量課金で、トラフィックパターンが予測しにくいワークロードや開発環境に適しています。プロビジョンドモードは読み取り/書き込みキャパシティユニットを事前に設定します。Auto Scaling を有効にすれば、トラフィックの変動に応じてキャパシティが自動調整されます。コスト最適化のポイントとして、TTL による期限切れデータの自動削除があります。ログデータやセッションデータなど、一定期間後に不要になるデータに TTL を設定すれば、ストレージコストの増加を抑制できます。ポイントインタイムリカバリ (PITR) を有効にすると、有効にした時点以降の、直近 35 日以内の任意の秒にテーブルを復元できます。保管時の暗号化のキーは、既定の AWS 所有キー (追加料金なし) と AWS KMS のカスタマーマネージドキーの 2 つから選び、コンプライアンス要件に応じて使い分けます。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。