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) です。非サポートの機能として、マテリアライズドビュー、SASI インデックス、ユーザー定義関数 (UDF)、ユーザー定義集約 (UDA)、バッチログ、Thrift API があります。移行前に cqlsh で既存のスキーマとクエリを Keyspaces に対して実行し、互換性を検証することが必須です。Cassandra からの移行には AWS DMS を使用でき、フルロードと CDC (Change Data Capture) による継続的レプリケーションに対応しています。移行中はソースの Cassandra クラスターと Keyspaces の両方に書き込むデュアルライト方式で、ダウンタイムを最小化できます。Cassandra 3.11 の CQL 仕様に準拠しているため、Cassandra 4.x 以降の新機能は利用できません。

DynamoDB との選択基準

Keyspaces と DynamoDB はどちらもフルマネージドの NoSQL データベースですが、データモデルとクエリの柔軟性が異なります。DynamoDB はキーバリュー/ワイドカラム型で、パーティションキーとソートキーによるアクセスパターンを事前に設計する必要があります。GSI (グローバルセカンダリインデックス) で追加のアクセスパターンに対応できますが、インデックスごとに追加コストが発生します。Keyspaces はワイドカラム型で、パーティションキーとクラスタリング列による柔軟なデータモデリングが可能です。CQL の表現力は DynamoDB の PartiQL より高く、範囲クエリ、IN 句、ORDER BY、ALLOW FILTERING などの操作が自然に記述できます。選定の目安として、新規プロジェクトで AWS ネイティブに設計するなら DynamoDB、既存の Cassandra ワークロードを移行するなら Keyspaces が適しています。DynamoDB は AWS エコシステムとの統合 (Streams、DAX、Global Tables、PartiQL) が圧倒的に充実しており、Lambda トリガーや EventBridge Pipes との連携も容易です。Keyspaces は Cassandra エコシステム (ドライバー、ORM、ツール) との互換性が強みで、マルチクラウドやハイブリッド環境でのポータビリティを重視する場合に有利です。

キャパシティモードの選択とコスト最適化

Keyspaces のキャパシティモードは DynamoDB と同様に、オンデマンドとプロビジョンドの 2 種類があります。オンデマンドモードはリクエスト数に応じた完全従量課金で、トラフィックパターンが予測しにくいワークロードや開発環境に適しています。プロビジョンドモードは読み取り/書き込みキャパシティユニットを事前に設定し、オンデマンドより約 20-30% 安価です。Auto Scaling を有効にすれば、トラフィックの変動に応じてキャパシティが自動調整されます。コスト最適化のポイントとして、TTL を活用した自動データ削除が効果的です。ログデータやセッションデータなど、一定期間後に不要になるデータに TTL を設定すれば、ストレージコストの増加を抑制できます。ポイントインタイムリカバリ (PITR) は有効化するとストレージ料金の約 20% が追加されますが、誤操作によるデータ損失からの復旧に不可欠なため、本番環境では必ず有効にすべきです。暗号化は AWS 所有キー (無料)、AWS マネージドキー、カスタマーマネージドキー (KMS) の 3 つから選択でき、コンプライアンス要件に応じて使い分けます。

共有するXB!