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. アーキテクチャおよび技術要素¶
- クライアントアプリケーションは、Apache Cassandra 互換のドライバーを使用して Keyspaces に接続。
- Keyspaces は、複数のアベイラビリティーゾーンにデータを分散して保存。
- クライアントからの読み取り/書き込みリクエストを処理。
- ストレージとコンピューティングリソースは、必要に応じて個別にスケーリング。
- 自動バックアップ機能により、データを安全に保護。
Keyspaces は、フルマネージドサービスとして提供され、高い可用性、スケーラビリティ、耐久性を内包している。
Apache Cassandra の互換性により、既存の Cassandra アプリケーションを容易に移行できる。
4. セキュリティと認証・認可¶
セキュリティは Keyspaces の重要な要素である:
- IAM によるアクセス制御: AWS IAM を利用して、Keyspaces リソースへのアクセスを制御し、権限を管理。
- データ暗号化: 転送中および保存中のデータを暗号化し、データの機密性を保護。
- VPC サポート: Amazon VPC 内で Keyspaces を使用する場合、プライベート接続を確立。
- 監査ログ: AWS CloudTrail を利用して、API 呼び出しやリソース変更を記録。
これにより、データの安全性とコンプライアンスを確保できる。
5. 料金形態¶
Amazon Keyspaces の料金は主に以下に基づく:
- 読み取り/書き込みキャパシティ: 読み取り/書き込み操作に必要なキャパシティに応じた課金。
- ストレージ: 保存されたデータ量に応じた課金。
- データ転送: データ転送量に応じた課金。
6. よくあるアーキテクチャ・設計パターン¶
一般的なパターンは以下の通りである:
- IoT データの格納: IoT デバイスから送信されるセンサーデータを格納し、リアルタイム分析に利用。
- リアルタイム分析: リアルタイムデータを収集、格納し、高速なクエリで分析。
- モバイルアプリケーションのバックエンド: モバイルアプリケーションのユーザーデータ、設定データ、コンテンツを格納。
- 大規模な分散アプリケーション: 大規模な分散アプリケーションのデータストアとして利用。
- セッション管理: ウェブアプリケーションのセッションデータを格納し、高可用性を実現。
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS コンソールで Keyspaces のキースペースを作成。
- Keyspaces のテーブルを作成し、スキーマを定義。
- Apache Cassandra 互換のドライバーを使用して、Keyspaces に接続。
- CQL を使用して、データの挿入、更新、削除、クエリを実行。
- 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 型。