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 ドル/月です。マルチリージョンレプリケーションは各リージョンのストレージとレプリケーション書き込みに追加料金が発生します。
サーバーレスがもたらす運用メリット
自前で Apache Cassandra を運用する場合、ノードの構築、クラスターの拡張、パッチ適用、障害対応といった運用負荷が常につきまといます。Keyspaces はこれらをマネージドに引き受け、サーバーレスで提供します。利用者はクラスターの存在を意識せず、テーブルの設計とデータの読み書きに集中できます。容量はアクセス量に応じて自動で調整されるため、ピークに備えた過剰なプロビジョニングも不要です。Cassandra の機能を使いたいが運用の手間は避けたい、という要件に対して、互換性と運用負荷ゼロを両立できる点が、Keyspaces の大きな価値になります。
マルチリージョンレプリケーションの設計
Keyspaces は、複数のリージョンにデータを複製する構成を取れます。各リージョンで読み書きができる構成にすれば、世界各地の利用者が近いリージョンへアクセスでき、レイテンシを抑えられます。あるリージョンに障害が起きても、別のリージョンで処理を継続できるため、可用性も高まります。複製にはわずかな遅延が伴うため、同じデータを複数リージョンで同時に更新する場合の整合性の扱いを理解して設計します。グローバルに展開するサービスで、低遅延と高可用性を両立したい場合に、マルチリージョン構成が有効な選択肢になります。
AWS サービスとの統合
Keyspaces は AWS のエコシステムと統合されており、運用がしやすくなっています。認証とアクセス制御は IAM で行い、テーブルや操作の単位で権限を制御できます。稼働状況は CloudWatch のメトリクスで監視し、スループットやスロットリングの状況を把握できます。継続的なバックアップにより、過去の任意の時点へ復元でき、誤操作や障害に備えられます。VPC エンドポイントを使えば、通信をインターネットに出さずに閉じた経路で行えます。AWS の標準的な仕組みで認証・監視・バックアップ・ネットワークを扱えるため、既存の運用に自然に組み込めます。
キャパシティとコストの最適化
Keyspaces は、オンデマンドとプロビジョンドの 2 つのキャパシティモードを選べます。オンデマンドは、アクセス量を予測せずに使え、トラフィックの変動が大きい、あるいは読みにくいワークロードに向きます。使った分だけ課金されるため、無駄が出にくい一方、安定して高負荷が続く場合は割高になることがあります。プロビジョンドは、想定する負荷をあらかじめ設定し、自動スケーリングと組み合わせて変動にも追従させられ、安定したワークロードでコストを抑えられます。アクセスパターンを把握し、適したモードを選ぶことが、性能とコストの最適化につながります。
まとめ
Amazon Keyspaces は Cassandra 互換のフルマネージドワイドカラムデータベースで、CQL による柔軟なクエリとサーバーレスの運用負荷ゼロを両立します。マルチリージョンレプリケーションによるアクティブ-アクティブ構成と PITR による復元機能で、高可用性とデータ保護を実現します。