コンテンツにスキップ

Keyspaces

1. サービス概要

Amazon Keyspaces (for Apache Cassandra) は、AWS が提供するフルマネージドのデータベースサービスで、Apache Cassandra との互換性がある。
このサービスを利用することで、Cassandra のデータモデルと CQL(Cassandra Query Language)をそのまま利用でき、スケーラブルで可用性の高いデータベースを容易に構築できる。
Keyspaces は、インフラの管理に煩わされることなく、アプリケーションの開発に集中できる環境を提供する。

主なユースケースとして、

  • IoT データの格納
  • リアルタイム分析
  • モバイルアプリケーションのバックエンド
  • 大規模な分散アプリケーションのデータストア

などが挙げられる。

2. 主な特徴と機能

2.1 Apache Cassandra 互換性

Amazon Keyspaces は、Apache Cassandra のワイヤプロトコル、API、ドライバーをサポートしており、既存の Cassandra アプリケーションを大幅な変更なしに移行できる。
これにより、開発者は Cassandra の知識をそのまま活用できる。

2.2 フルマネージドサービス

インフラのプロビジョニング、スケーリング、パッチ適用、バックアップなどの運用管理は AWS が自動で行う。
これにより、開発者はデータベースの運用管理に煩わされることなく、アプリケーション開発に集中できる。

2.3 スケーラビリティとパフォーマンス

Keyspaces は、ストレージとコンピューティングリソースを個別にスケールできるため、アプリケーションの需要に合わせて柔軟にリソースを調整できる。
高いスループットと低いレイテンシを実現し、大規模なアプリケーションにも対応できる。

2.4 高い可用性と耐久性

Keyspaces は、複数のアベイラビリティーゾーンにデータを分散して保存し、自動的にフェイルオーバーを処理する。
これにより、高い可用性と耐久性を実現し、データの損失を防ぐ。

2.5 スキーマレスデータモデル

Keyspaces は、柔軟なスキーマレスデータモデルをサポートしており、データの変更に柔軟に対応できる。
テーブル定義を変更せずに、新しいカラムを追加できる。

2.6 CQL (Cassandra Query Language) サポート

Keyspaces は、Apache Cassandra で使用される CQL をサポートしている。
これにより、既存の Cassandra アプリケーションのクエリをそのまま実行できる。

2.7 セキュリティ

Keyspaces は、データの暗号化、アクセス制御、ネットワーク分離などのセキュリティ機能を提供する。
IAM によるアクセス制御、転送中のデータ暗号化、保存中のデータ暗号化、VPC 内でのプライベート接続をサポートしている。

  • IAM 連携: AWS IAM を使用してアクセス制御と権限管理。
  • データ暗号化: 転送中および保存中のデータを暗号化。
  • VPC サポート: Amazon VPC 内でのプライベート接続。

2.8 統合性

Keyspaces は、AWS の他のサービス(Amazon S3, AWS Lambda, Amazon Kinesis など)と統合されており、様々なアプリケーションアーキテクチャに対応できる。
AWS Glue と連携してデータの ETL 処理を行うことができる。

3. アーキテクチャおよび技術要素

  1. クライアントアプリケーションは、Apache Cassandra 互換のドライバーを使用して Keyspaces に接続。
  2. Keyspaces は、複数のアベイラビリティーゾーンにデータを分散して保存。
  3. クライアントからの読み取り/書き込みリクエストを処理。
  4. ストレージとコンピューティングリソースは、必要に応じて個別にスケーリング。
  5. 自動バックアップ機能により、データを安全に保護。

Keyspaces は、フルマネージドサービスとして提供され、高い可用性、スケーラビリティ、耐久性を内包している。
Apache Cassandra の互換性により、既存の Cassandra アプリケーションを容易に移行できる。

4. セキュリティと認証・認可

セキュリティは Keyspaces の重要な要素である:

  • IAM によるアクセス制御: AWS IAM を利用して、Keyspaces リソースへのアクセスを制御し、権限を管理。
  • データ暗号化: 転送中および保存中のデータを暗号化し、データの機密性を保護。
  • VPC サポート: Amazon VPC 内で Keyspaces を使用する場合、プライベート接続を確立。
  • 監査ログ: AWS CloudTrail を利用して、API 呼び出しやリソース変更を記録。

これにより、データの安全性とコンプライアンスを確保できる。

5. 料金形態

Amazon Keyspaces の料金は主に以下に基づく:

  • 読み取り/書き込みキャパシティ: 読み取り/書き込み操作に必要なキャパシティに応じた課金。
  • ストレージ: 保存されたデータ量に応じた課金。
  • データ転送: データ転送量に応じた課金。

6. よくあるアーキテクチャ・設計パターン

一般的なパターンは以下の通りである:

  • IoT データの格納: IoT デバイスから送信されるセンサーデータを格納し、リアルタイム分析に利用。
  • リアルタイム分析: リアルタイムデータを収集、格納し、高速なクエリで分析。
  • モバイルアプリケーションのバックエンド: モバイルアプリケーションのユーザーデータ、設定データ、コンテンツを格納。
  • 大規模な分散アプリケーション: 大規模な分散アプリケーションのデータストアとして利用。
  • セッション管理: ウェブアプリケーションのセッションデータを格納し、高可用性を実現。

7. 設定・デプロイ手順(ハンズオン例)

  1. AWS コンソールで Keyspaces のキースペースを作成。
  2. Keyspaces のテーブルを作成し、スキーマを定義。
  3. Apache Cassandra 互換のドライバーを使用して、Keyspaces に接続。
  4. CQL を使用して、データの挿入、更新、削除、クエリを実行。
  5. Keyspaces のパフォーマンスを監視。

8. 試験で問われやすいポイント

8.1 Apache Cassandra 互換性

  • ワイヤプロトコル: Apache Cassandra のワイヤプロトコルとの互換性について理解。
  • API: Apache Cassandra の API との互換性について理解。
  • ドライバー: Apache Cassandra のドライバーをそのまま利用できることを理解。

8.2 フルマネージドサービス

  • 運用管理: インフラのプロビジョニング、スケーリング、パッチ適用、バックアップなどの運用管理が AWS に自動化されていることを理解。
  • 開発への集中: 開発者がデータベース運用に煩わされることなく、アプリケーション開発に集中できることを理解。

8.3 スケーラビリティとパフォーマンス

  • リソーススケーリング: ストレージとコンピューティングリソースを個別にスケーリングできることを理解。
  • 高パフォーマンス: 高いスループットと低いレイテンシを実現できることを理解。

8.4 高い可用性と耐久性

  • マルチ AZ: 複数アベイラビリティーゾーンにデータを分散して保存することを理解。
  • 自動フェイルオーバー: 自動フェイルオーバー機能で高い可用性を実現することを理解。

8.5 スキーマレスデータモデル

  • 柔軟なスキーマ: スキーマレスであるため、データ構造の変更に柔軟に対応できることを理解。
  • カラムの追加: テーブル定義を変更せずにカラムを追加できることを理解。

8.6 CQL サポート

  • CQL: Apache Cassandra で使用される CQL をサポートしていることを理解。
  • 既存のクエリ: 既存の Cassandra アプリケーションのクエリをそのまま実行できることを理解。

8.7 セキュリティ

  • IAM: IAM によるアクセス制御と権限管理について理解。
  • データ暗号化: 転送中および保存中のデータを暗号化することについて理解。
  • VPC サポート: VPC 内でのプライベート接続について理解。

8.8 料金体系

  • キャパシティ料金: 読み取り/書き込みに必要なキャパシティに応じた課金について理解。
  • ストレージ料金: 保存されたデータ量による課金について理解。
  • データ転送: データ転送量に応じた課金について理解。

8.9 類似・関連サービスとの比較

  • Apache Cassandra: オープンソースの分散データベース。Keyspaces は Cassandra 互換のフルマネージドサービス。
  • Amazon DynamoDB: Key-Value 型データベース。Keyspaces はカラムナ型データベース。

8.10 試験で頻出となる具体的な問われ方と答え

  • Q: Amazon Keyspaces の主な用途は?
  • A: Apache Cassandra 互換のフルマネージドデータベースサービス。
  • Q: Keyspaces が互換性を持つデータベースは?
  • A: Apache Cassandra。
  • Q: Keyspaces のフルマネージドとは?
  • A: インフラ運用が AWS に自動化されていること。
  • Q: Keyspaces で利用できるクエリ言語は?
  • A: CQL (Cassandra Query Language)。
  • Q: Keyspaces のセキュリティ対策は?
  • A: IAM によるアクセス制御、データ暗号化、VPC サポートなど。
  • Q: Keyspaces の料金体系は?
  • A: 読み書きキャパシティ、ストレージ、データ転送に応じた課金。 -Q: Keyspaces と DynamoDB の違いは?
  • A: Keyspaces はカラムナ型、DynamoDB は Key-Value 型。