alibabacloud-tair-devtoolset について
Redis OSS互換のAlibaba Cloud Tairを対象とする開発・運用スキルです。開発者や運用担当者向けに、アーキテクチャとデータ構造の選定、aliyun CLIによるインスタンス管理、障害調査、バックアップと復元を支援します。
主な機能
- 01Tairのアーキテクチャとエディション選定
- 02RedisおよびTairのデータ構造設計
- 03aliyun CLIによるインスタンス作成
- 04接続設定とパフォーマンス診断
- 05障害調査、バックアップ、復元
活用シーン
- 01アプリケーションに適した構成とデータ構造の選定
- 02インスタンス作成とネットワークアクセス設定
- 03接続、クラスター、メモリの問題調査
- 04バックアップポリシー設定とデータ復元
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-tair-devtoolsetインストール後、Claude Code で/alibabacloud-tair-devtoolsetを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdram-policies.mdrelated-commands.mdverification-method.mdreferences/architecture-selection/arch-compare-oss-redis.mdarch-selection.mdreferences/backup-and-recovery/backup-recovery.mdreferences/connection-management/connect-cluster.mdconnect-standalone-or-proxy.mdconnect-with-tls.mdreferences/data-structure-design/data-structure-design.mdreferences/error-troubleshooting/errors-troubleshooting.mdreferences/instance-creation/connect-create-instance.mdreferences/performance-monitoring/perf-monitoring.mdscripts/create-and-connect-test.sh詳細
Tair DevToolset — Tair 開発の全ライフサイクルを支援するアシスタント
このスキルは、Alibaba Cloud Tair(Redis OSS 互換) データベースの運用機能と開発ガイドラインを提供します。アーキテクチャの選定、データ構造の設計、インスタンスの作成、接続管理、パフォーマンス監視、エラーのトラブルシューティング、バックアップと復旧を対象とします。
注: このスキルは、aliyun CLI を使用して実際のクラウド操作を実行します。復元操作はリスクが高く、現在のデータを上書きします。使用前に、RAM アカウントに必要な権限があることを確認してください。
対応する機能
| 機能 | 説明 |
|---|---|
| アーキテクチャの選定 | 用途に適した Tair のアーキテクチャ(Standard と Cluster)とエディション(メモリ最適化、永続メモリ、ディスクベース)を選択します |
| データ構造の設計 | 用途に最適な Redis および Tair 拡張データ構造を選択します |
| インスタンスの作成 | aliyun CLI を使用して Tair インスタンスを作成、設定します |
| 接続管理 | TLS 対応のスタンドアロン/プロキシ/クラスターの各モードで接続します |
| パフォーマンス監視 | alibabacloud-tair-ai-assistant スキルを使用してインテリジェントな診断を行います |
| エラーのトラブルシューティング | Tair の接続、クラスター、メモリ、クライアントに関する一般的なエラーを診断し、解決します |
| バックアップと復旧 | バックアップポリシーを設定し、PITR を実行してデータを復元します |
第 I 部 — 共通事項
1. 前提条件
1.1 CLI のインストールとバージョン
Aliyun CLI 3.3.3 以降が必要です。 aliyun version を実行して確認してください。インストールされていない場合、またはバージョンが古い場合は、インストール手順について references/cli-installation-guide.md を参照してください。
# Enable automatic plugin installation (required for r-kvstore plugin)
aliyun configure set --auto-plugin-install true
# Update existing plugins to latest version
aliyun plugin update
# Verify jq is installed (required for JSON parsing in scripts)
jq --version
1.2 認証
すべての認証情報の設定には、既存の aliyun CLI 設定を使用します。
セキュリティルール:
- AK/SK の値を読み取ったり、エコーしたり、出力したりすることは絶対に禁止です(例:
echo $ALIBABA_CLOUD_ACCESS_KEY_IDは禁止) - 会話内またはコマンドラインで、AK/SK を直接入力するようユーザーに求めることは絶対に禁止です
- リテラルの認証情報を指定して
aliyun configure setを使用することは絶対に禁止です - 認証情報の状態確認には、
aliyun configure listのみを使用してください
aliyun configure list
有効なプロファイルが存在しない場合は、ここで停止してください。 このセッションの外で認証情報を設定してから、再開してください。
1.3 AI モードの設定
【必須】ワークフローの開始時に AI モードを有効にしてください(CLI を呼び出す前に実行します)。
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset"
【必須】すべての終了時点で AI モードを無効にしてください — 理由を問わず(成功、失敗、エラー、ユーザーによるキャンセルなど)、最終応答を返す前に実行します。スキルの実行停止後も AI モードを有効のままにしてはいけません。
aliyun configure ai-mode disable
2. セキュリティとコンプライアンス
2.1 User-Agent の要件
aliyun CLI コマンドを呼び出すたびに、次を含める必要があります。
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
2.2 RAM 権限
このスキルでは、インスタンス管理、バックアップ、復旧操作に R-KVStore RAM 権限が必要です。必要な権限の一覧とポリシードキュメントについては、references/ram-policies.md を参照してください。
【必須】権限エラーへの対応: 権限エラーによりコマンドが失敗した場合:
references/ram-policies.mdを読み、必要な権限の一覧を確認しますram-permission-diagnoseスキルを使用して、権限の申請をユーザーに案内します- 必要な権限が付与されたことをユーザーが確認するまで、処理を一時停止して待ちます
3. パラメーター確認ルール
コマンドまたは API 呼び出しを実行する前に、ユーザーが変更できるすべてのパラメーター(例:RegionId、インスタンス名、パスワード、リソース仕様)を必ずユーザーに確認してください。ユーザーの明示的な承認なしに、値を推測したりデフォルト値を使用したりしてはいけません。
第 II 部 — 機能
4. アーキテクチャの選定
データ量、スループット要件、読み取りと書き込みの比率に基づいて、適切な Tair アーキテクチャを選択します。
使用する場面
- Standard と Cluster のアーキテクチャを選択する場合
- 読み取り/書き込みの分離が必要かどうかを判断する場合
- エディションの種類(メモリ最適化、永続メモリ、ディスクベース)を選択する場合
- 新しいプロジェクトで Tair とオープンソース Redis を比較評価する場合
主なガイダンス
主な概念:
| コンポーネント | 説明 |
|---|---|
| ノード | 最小単位で、Redis 互換プロセスを実行します |
| シャード | データの一部を保存するノードのグループです |
| マスターノード | 書き込み操作を処理します |
| レプリカノード | マスターのコピーで、フェイルオーバーを提供します |
| 読み取り専用ノード | 読み取りトラフィックのみを処理します(読み取り/書き込みの分離) |
| プロキシノード | リクエストを適切なノードにルーティングします |
アーキテクチャの比較:
| 項目 | Standard | Cluster |
|---|---|---|
| 構成 | 1 つのマスター+レプリカ | 複数のシャード。それぞれにマスター+レプリカがあります |
| データの分割 | いいえ(単一シャード) | はい(複数のシャードに分散) |
| 最適な用途 | データ量が少なく、QPS が安定している場合 | データ量が多く、QPS が高い場合、スループット重視の場合 |
| 読み取り/書き込みの分離 | 対応 | 対応 |
選択の判断フロー:
Data volume > single-node capacity?
├── Yes → Cluster architecture
│ └── Read-heavy? → Enable read/write splitting
└── No → Standard architecture
└── Read-heavy? → Enable read/write splitting
参考資料
- references/architecture-selection/arch-selection.md — アーキテクチャ選択の判断ガイド
- references/architecture-selection/arch-compare-oss-redis.md — Tair とオープンソース Redis の比較、およびエディションの選択
5. データ構造の設計
アクセスパターンとビジネス要件に基づいて、適切なデータ構造を選択します。
使用する場面
- 新しい機能やアプリケーション向けのデータ構造を選択する場合
- Redis ネイティブと Tair 拡張データ構造のどちらを選ぶか検討する場合
- データモデルを移行し、データ構造の代替案を評価する場合
主なガイダンス
Redis データ構造:
| 名前 | 使用例 |
|---|---|
| String | キャッシュ、カウンター、分散ロック、セッション保存、レート制限 |
| Hash | オブジェクトの保存(ユーザープロファイル、商品情報)、フィールドと値のグループ化 |
| List | メッセージキュー、最新フィード、タスクキュー、スタック/キュー操作 |
| Set | 一意な要素のコレクション、タグ付け、ソーシャルグラフ(フォロワー/友達)、集合演算 |
| Sorted Set | リーダーボード、ランキングシステム、優先度キュー、スコアによる範囲検索 |
| Stream | イベントソーシング、ログストリーミング、コンシューマーグループを使用するメッセージキュー |
| Bitmap | 機能フラグ、オンライン状態の追跡、日次アクティブユーザー数のカウント |
| Bitfield | コンパクトなカウンター、固定幅整数のエンコード、アトミックなインクリメント |
| Geospatial | 位置情報ベースのサービス、近傍検索、ジオフェンシング |
| HyperLogLog | ユニーク訪問者数のカウント、最小限のメモリでのカーディナリティ推定 |
Tair データ構造:
| 名前 | 使用例 |
|---|---|
| exString / TairString(String の拡張) | バージョン付き文字列、上限付き INCRBY、分散ロック用の CAS/CAD |
| exHash / TairHash(Hash の拡張) | フィールド単位の TTL、フィールドのバージョン管理、複数デバイスのログイン管理 |
| exZset / TairZset(Zset の拡張) | 多次元スコアリング(256 次元)、複数条件によるランキング |
| GIS / TairGis(Geospatial の拡張) | 点/線/ポリゴンの検索、空間的関係の判定 |
| Doc / TairDoc(JSON) | バイナリツリーインデックスによる JSON、高速なサブ要素アクセス |
| Search / TairSearch | ES のような全文検索、複数列インデックス、トークン化 |
| TS / TairTs(TimeSeries) | リアルタイム監視、IoT データ、2 段階のタイムライン集約 |
| Bloom / TairBloom | 確率的なメンバーシップ判定、重複排除、URL フィルタリング |
| Cpc / TairCpc | 圧縮カーディナリティ推定、ストリーミング分析 |
| Roaring / TairRoaring(Bitmap の拡張) | ユーザーセグメンテーション、オーディエンスターゲティング、複数 Bitmap の演算 |
| Vector / TairVector | ベクトル類似検索、LLM チャットボット、マルチモーダル検索 |
参考資料
- references/data-structure-design/data-structure-design.md — データ構造のユースケースに関する詳細な説明
- Redis Data Types
- Tair Extended Data Structures
6. インスタンスの作成
Alibaba Cloud で Tair インスタンスを作成および設定します。ホワイトリストの設定やパブリックエンドポイントの割り当ても行います。
使用する場面
- テスト、開発、本番環境用の新しい Tair インスタンスを作成する場合
- インスタンスのネットワークアクセス(ホワイトリスト、パブリックエンドポイント)を設定する場合
- Tair のベンチマーク環境または PoC 環境を構築する場合
6.1 インスタンス仕様の選択
必須パラメーター:
| パラメーター | 説明 | 例 |
|---|---|---|
| VPC_ID | VPC ID | vpc-bp1xxx |
| VSWITCH_ID | VSwitch ID | vsw-bp1xxx |
任意のパラメーター(デフォルト値あり):
| パラメーター | デフォルト値 | 説明 |
|---|---|---|
| REGION_ID | cn-hangzhou | リージョン ID |
| ZONE_ID | cn-hangzhou-h | ゾーン ID |
| INSTANCE_TYPE | tair_rdb | インスタンスシリーズ:tair_rdb(DRAM)、tair_scm(永続メモリー)、tair_essd(ESSD ディスク) |
| INSTANCE_CLASS | tair.rdb.1g | インスタンス仕様(下表を参照) |
| INSTANCE_NAME | tair-benchmark-<timestamp> | インスタンス名 |
| CHARGE_TYPE | PostPaid | 課金方法:PostPaid(従量課金)、PrePaid(サブスクリプション) |
一般的な仕様(標準アーキテクチャ):
| InstanceClass | メモリー | 帯域幅 | 最大接続数 | QPS の参考値 |
|---|---|---|---|---|
| tair.rdb.1g | 1 GB | 768 Mbps | 30,000 | 300,000 |
| tair.rdb.2g | 2 GB | 768 Mbps | 30,000 | 300,000 |
| tair.rdb.4g | 4 GB | 768 Mbps | 40,000 | 300,000 |
| tair.rdb.8g | 8 GB | 768 Mbps | 40,000 | 300,000 |
| tair.rdb.16g | 16 GB | 768 Mbps | 40,000 | 300,000 |
| tair.rdb.24g | 24 GB | 768 Mbps | 50,000 | 300,000 |
| tair.rdb.32g | 32 GB | 768 Mbps | 50,000 | 300,000 |
| tair.rdb.64g | 64 GB | 768 Mbps | 50,000 | 300,000 |
6.2 自動化ワークフロー(スクリプト)
パブリックネットワークアクセスを備えたインスタンスを迅速にエンドツーエンドで作成するには、すべての処理をまとめたスクリプトを使用します。
実行時の制約:
- このワークフローでは、
scripts/create-and-connect-test.shを必ず使用してください。スクリプトを回避して、個別のaliyun r-kvstoreコマンドを直接呼び出してはいけません。- スクリプトの機能を置き換えるために、aliyun CLI コマンドを記述したり連結したりしてはいけません。
- モデルの役割:パラメーターを収集 → 環境変数を設定 → スクリプトを実行
export VPC_ID="<user-confirmed VPC_ID>"
export VSWITCH_ID="<user-confirmed VSWITCH_ID>"
# Optional parameters
export REGION_ID="cn-hangzhou"
export ZONE_ID="cn-hangzhou-h"
export INSTANCE_TYPE="tair_rdb"
export INSTANCE_CLASS="tair.rdb.1g"
# For NAT environment, manually set public IP
# export MY_PUBLIC_IP="your-public-ip"
bash scripts/create-and-connect-test.sh
スクリプトは、インスタンスの作成 → 準備完了まで待機 → ホワイトリストの設定 → パブリックエンドポイントの割り当て → パブリック接続情報の取得を自動的に完了します。
6.3 手動 CLI の手順
カスタム要件(PrePaid サブスクリプション、パブリックエンドポイントなし、カスタムセキュリティグループなど)がある場合は、手動 CLI の手順を使用します。
手順 1 — インスタンスの作成:
aliyun r-kvstore create-tair-instance \
--biz-region-id "$REGION_ID" --zone-id "$ZONE_ID" \
--vpc-id "$VPC_ID" --vswitch-id "$VSWITCH_ID" \
--instance-type "$INSTANCE_TYPE" --instance-class "$INSTANCE_CLASS" \
--password "$PASSWORD" --charge-type "$CHARGE_TYPE" \
--shard-type "MASTER_SLAVE" \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
手順 2 — インスタンスが準備完了になるまで待機(InstanceStatus が Normal になるまでポーリング):
aliyun r-kvstore describe-instance-attribute \
--instance-id "$INSTANCE_ID" \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
手順 3 — ホワイトリストの設定:
aliyun r-kvstore modify-security-ips \
--instance-id "$INSTANCE_ID" --security-ips "$MY_PUBLIC_IP" \
--security-ip-group-name "default" \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
手順 4 — パブリックエンドポイントの割り当て:
aliyun r-kvstore allocate-instance-public-connection \
--instance-id "$INSTANCE_ID" \
--connection-string-prefix "${INSTANCE_ID}pub" --port "6379" \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
6.4 成功の確認
aliyun r-kvstore describe-instance-attribute \
--instance-id "$INSTANCE_ID" \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset
InstanceStatus が Normal であり、パブリックエンドポイントが割り当てられていることを確認します。3 段階の完全な確認(インスタンスの状態、ホワイトリスト、パブリックエンドポイント)については、references/verification-method.md を参照してください。
参考資料
- references/instance-creation/connect-create-instance.md —
redis-cliの例を含む、インスタンスの作成と接続に関する一連のガイド - references/related-commands.md — CLI コマンドとパラメーターの完全なリファレンス
- references/verification-method.md — 成功を確認するための詳細な手順
- references/acceptance-criteria.md — CLI コマンドの正確性に関する基準
7. 接続の管理
スタンドアロン、プロキシ、クラスター、TLS の各モードで、Redis 互換クライアントを使用して Tair インスタンスに接続します。
使用する状況
- アプリケーションコードから Tair インスタンスに接続する場合
- 適切なクライアントライブラリと接続モードを選択する場合
- 安全な接続のために TLS/SSL 暗号化を設定する場合
- 接続の問題をトラブルシューティングする場合
主なガイダンス
接続モード:
| モード | アーキテクチャ | 説明 |
|---|---|---|
| スタンドアロン/プロキシ | 標準またはクラスター(プロキシモード) | プロキシノード経由で接続します。クロススロットの複数キー操作を含む、すべての Redis コマンドをサポートします |
| クラスター直接接続 | クラスター(直接接続モード) | データノードに直接接続します。クラスター対応クライアントが必要です。クロススロットの複数キーコマンドはサポートされません |
| TLS | 任意(オーバーレイ) | TLS/SSL で接続を暗号化します。プロキシモードと直接接続モードの両方をサポートします |
認証形式:
- デフォルトアカウント:パスワードのみ
- カスタムアカウント:
<user>:<password> - redis-cli:
REDISCLI_AUTH環境変数を使用します —export REDISCLI_AUTH='InstanceID:Password'
サポート対象クライアント: Jedis、Lettuce、Redisson(Java);redis-py(Python);Predis、phpredis(PHP);StackExchange.Redis(.NET);go-redis(Go);node-redis(Node.js);Spring Data Redis
参考資料
- references/connection-management/connect-standalone-or-proxy.md — Java、Python、PHP、.NET、Go、Spring Data Redis でのスタンドアロン/プロキシ接続の例
- references/connection-management/connect-cluster.md — クラスター接続の例(JedisCluster、RedisCluster、LettuceCluster、go-redis cluster、redis-cli)
- references/connection-management/connect-with-tls.md — すべてのクライアントタイプでの TLS/SSL 接続の例(プロキシ+直接接続)
8. パフォーマンスの監視
Tair AI Assistant(DAS API)を介した、インテリジェントなパフォーマンスの監視と診断です。
使用する状況
- 低速クエリやパフォーマンスの低下を診断する場合
- メモリ使用量を分析し、大きなキーやホットスポットキーを特定する場合
- インスタンスのパラメーターや接続設定を調整する場合
- インスタンスの正常性とリソース使用率を監視する場合
主なガイダンス
インテリジェントな診断を行うには、alibabacloud-tair-ai-assistant スキルをインストールして使用します。
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-tair-ai-assistant --agent <your-agent-platform>
AI Assistant は、インスタンス管理、パフォーマンス分析、低速クエリ、メモリ分析、大きなキー/ホットスポットキーの検出、パラメーターの調整、接続のトラブルシューティングを対象とした、自然言語ベースの診断を提供します。
参考資料
- references/performance-monitoring/perf-monitoring.md — パフォーマンス監視のリファレンス
- alibabacloud-tair-ai-assistant
9. エラーのトラブルシューティング
認証、接続、クラスター、メモリ、プロキシ、Lua/トランザクション、およびクライアント固有の問題に関する一般的な Tair エラーを診断して解決します。
使用する状況
- 認証エラーや接続エラーが発生した場合
- クラスター関連のエラー(クロススロット、moved、read-only)を解決する場合
- メモリ不足やコマンドエラーに対処する場合
- クライアント固有の問題(Jedis、Lettuce、Redisson、go-redis など)をデバッグする場合
主なガイダンス
一般的なエラーのカテゴリ:
| カテゴリ | エラーの例 | 一般的な原因 |
|---|---|---|
| 認証 | NOAUTH Authentication required、WRONGPASS | パスワードが指定されていない、パスワードが正しくない、または Lettuce の CLIENT SETINFO のバグ |
| 接続 | ERR illegal address、max number of clients reached | クライアント IP がホワイトリストに登録されていない、接続プールのリーク、DNS の失敗 |
| クラスター | CROSSSLOT Keys in request don't hash to the same slot、MOVED | スロットをまたぐ複数キーコマンド、キーが別のノードに移動した |
| メモリ/コマンド | OOM command not allowed、WRONGTYPE、ERR unknown command | メモリ超過、データ型の誤り、コマンドがサポートされていない |
| プロキシモード | client ip is not in whitelist、redis temporary failure | プロキシのホワイトリスト、サブインスタンスのタイムアウト、リクエストキューのオーバーフロー |
| Lua/トランザクション | BUSY Redis is busy running a script、NOSCRIPT | 実行時間の長い Lua スクリプト、スクリプトの SHA がキャッシュにない |
| クライアント固有 | Jedis の Could not get a resource from the pool、正しいパスワードでも発生する Lettuce の NOAUTH、go-redis のクラスター形式に関するパニック | プールの枯渇、バージョンの非互換性、RESP2/RESP3 の不一致 |
参考資料
- references/error-troubleshooting/errors-troubleshooting.md — すべてのエラーカテゴリとクライアントライブラリについて、原因と解決策を含むエラー一覧
- 一般的なエラーとトラブルシューティング
10. バックアップと復元
バックアップポリシーを設定し、手動バックアップを作成し、バックアップからデータを復元し、ポイントインタイムリカバリ(PITR)を実行します。
使用する場面
- 自動バックアップポリシーを設定する場合
- リスクの高い操作の前に手動バックアップを作成する場合
- バックアップセットからデータを復元する場合
- ポイントインタイムリカバリ(PITR)またはキーで絞り込んだ復元を実行する場合
主なガイダンス
永続化ポリシー:
| ポリシー | 仕組み | 主な特徴 |
|---|---|---|
| RDB | 定期的なスナップショット | ファイルが小さく、ノンブロッキングのバックアップ |
| AOF | すべての書き込み操作をログに記録 | デフォルトでは毎秒 Fsync を実行し、AOF の書き換えによりディスク使用量を削減 |
| Tair-Binlog | 増分 AOF アーカイブ(Enterprise DRAM のみ) | AOF の書き換えによる劣化を防ぎ、秒単位の精度で PITR を実現 |
主な CLI 操作:
modify-backup-policy— 自動バックアップのスケジュールを変更しますcreate-backup— 手動バックアップを作成しますdescribe-backups— 利用可能なバックアップセットを照会しますrestore-instance— バックアップセットまたは特定の時点から復元します- フルバックアップ:
--backup-id "$BACKUP_ID" - PITR:
--restore-type 1 --restore-time "2024-01-15T10:30:00Z" - キーで絞り込んだ PITR:
--filter-key "session:*,user:*"を追加します
- フルバックアップ:
⚠️ 高リスク操作 —
restore-instanceは現在のデータを上書きし、元に戻せません。 復元を実行する前に、必ず次のことを行ってください:
- 現在の書き込みトラフィックを確認する — インスタンスで書き込みが行われているか確認し、該当する場合はユーザーに通知します
- 最新のバックアップを作成する —
create-backupを実行し、現在のデータをロールバックポイントとして保持します- ユーザーに確認する — データが上書きされることを明確に伝え、確認を得ます
参考資料
- references/backup-and-recovery/backup-recovery.md — CLI の例とデータ保護の詳細を含む、バックアップと復元の完全ガイド
- データのバックアップおよび復元ポリシー