Amazon Keyspaces で運用する Apache Cassandra 互換データベース - サーバーレスで始める広域分散DB
Amazon Keyspaces の Cassandra 互換性、オンデマンドとプロビジョンドのキャパシティ選定、パーティションキー設計を解説します。
Keyspaces の特徴と Cassandra との違い
Keyspaces は Apache Cassandra 互換のマネージドデータベースサービスです。CQL を使用してテーブルの作成、データの読み書きを行い、既存の Cassandra ドライバー (DataStax Java Driver など) をそのまま使用できます。Cassandra クラスタの運用で必要なノード管理、パッチ適用、リペア処理、コンパクション調整が不要になります。ただし、Cassandra の全機能がサポートされているわけではなく、Lightweight Transactions (LWT) の一部、ユーザー定義関数、マテリアライズドビューなどは未サポートです。移行前に互換性マトリクスを確認し、アプリケーションが使用する CQL 機能がサポートされているか検証する必要があります。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
キャパシティモードとパーティション設計
オンデマンドモードはリクエスト量に応じて自動スケールし、事前のキャパシティ計画が不要です。トラフィックパターンが予測困難な場合や、開発・テスト環境に適しています。プロビジョンドモードは読み取り/書き込みキャパシティユニットを事前に指定し、Auto Scaling で自動調整できます。トラフィックが安定している本番環境ではプロビジョンドモードの方がコスト効率が高くなります。パーティションキーの設計は Cassandra と同様に重要で、カーディナリティが高く、アクセスが均等に分散するキーを選択します。ホットパーティションが発生するとスロットリングの原因になるため、時系列データではタイムスタンプだけでなくバケット ID を組み合わせるなどの工夫が必要です。
セキュリティとバックアップ
Keyspaces は保存時の暗号化がデフォルトで有効で、AWS マネージドキーまたはカスタマーマネージドキー (KMS) を選択できます。転送中のデータは TLS で暗号化されます。アクセス制御は IAM ポリシーで管理し、テーブルレベルの細かい権限設定が可能です。ポイントインタイムリカバリ (PITR) を有効にすると、過去 35 日間の任意の秒単位にテーブルを復元できます。誤ったデータ削除やアプリケーションのバグによるデータ破損からの復旧に有効です。PITR は追加料金が発生しますが、本番環境では有効化を強く推奨します。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Keyspaces は Cassandra 互換の CQL でアクセスできるサーバーレスデータベースです。クラスタ管理の負荷を排除し、オンデマンドキャパシティで使った分だけ課金されます。既存の Cassandra ワークロードの AWS 移行や、Cassandra のデータモデルが適したワークロードの新規構築に有効です。
AWS の優位点
- CQL (Cassandra Query Language) 互換で、既存の Cassandra ドライバーとツールをそのまま使用できる
- サーバーレスでクラスタ管理が不要、テーブル単位のオンデマンドキャパシティで使った分だけ課金される
- 3 つの AZ にデータを自動複製し、99.999% の可用性 SLA を提供する
- AWS KMS による保存時暗号化がデフォルトで有効、転送中は TLS で暗号化される
- ポイントインタイムリカバリ (PITR) で過去 35 日間の任意の秒単位にテーブルを復元できる