mcpField
A
alibabacloud-tair-devtoolset

alibabacloud-tair-devtoolset

github.com/aliyunデータ・データベース281162 回インストール1 日前に更新
リポジトリ

alibabacloud-tair-devtoolset について

Redis OSS互換のAlibaba Cloud Tairを対象とする開発・運用スキルです。開発者や運用担当者向けに、アーキテクチャとデータ構造の選定、aliyun CLIによるインスタンス管理、障害調査、バックアップと復元を支援します。

主な機能

  1. 01Tairのアーキテクチャとエディション選定
  2. 02RedisおよびTairのデータ構造設計
  3. 03aliyun CLIによるインスタンス作成
  4. 04接続設定とパフォーマンス診断
  5. 05障害調査、バックアップ、復元

活用シーン

  1. 01アプリケーションに適した構成とデータ構造の選定
  2. 02インスタンス作成とネットワークアクセス設定
  3. 03接続、クラスター、メモリの問題調査
  4. 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.md
cli-installation-guide.md
ram-policies.md
related-commands.md
verification-method.md
references/architecture-selection/
arch-compare-oss-redis.md
arch-selection.md
references/backup-and-recovery/
backup-recovery.md
references/connection-management/
connect-cluster.md
connect-standalone-or-proxy.md
connect-with-tls.md
references/data-structure-design/
data-structure-design.md
references/error-troubleshooting/
errors-troubleshooting.md
references/instance-creation/
connect-create-instance.md
references/performance-monitoring/
perf-monitoring.md
scripts/
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 を参照してください。

【必須】権限エラーへの対応: 権限エラーによりコマンドが失敗した場合:

  1. references/ram-policies.md を読み、必要な権限の一覧を確認します
  2. ram-permission-diagnose スキルを使用して、権限の申請をユーザーに案内します
  3. 必要な権限が付与されたことをユーザーが確認するまで、処理を一時停止して待ちます

3. パラメーター確認ルール

コマンドまたは API 呼び出しを実行する前に、ユーザーが変更できるすべてのパラメーター(例:RegionId、インスタンス名、パスワード、リソース仕様)を必ずユーザーに確認してください。ユーザーの明示的な承認なしに、値を推測したりデフォルト値を使用したりしてはいけません。


第 II 部 — 機能

4. アーキテクチャの選定

データ量、スループット要件、読み取りと書き込みの比率に基づいて、適切な Tair アーキテクチャを選択します。

使用する場面
  • Standard と Cluster のアーキテクチャを選択する場合
  • 読み取り/書き込みの分離が必要かどうかを判断する場合
  • エディションの種類(メモリ最適化、永続メモリ、ディスクベース)を選択する場合
  • 新しいプロジェクトで Tair とオープンソース Redis を比較評価する場合
主なガイダンス

主な概念:

コンポーネント説明
ノード最小単位で、Redis 互換プロセスを実行します
シャードデータの一部を保存するノードのグループです
マスターノード書き込み操作を処理します
レプリカノードマスターのコピーで、フェイルオーバーを提供します
読み取り専用ノード読み取りトラフィックのみを処理します(読み取り/書き込みの分離)
プロキシノードリクエストを適切なノードにルーティングします

アーキテクチャの比較:

項目StandardCluster
構成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
参考資料

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 / TairSearchES のような全文検索、複数列インデックス、トークン化
TS / TairTs(TimeSeries)リアルタイム監視、IoT データ、2 段階のタイムライン集約
Bloom / TairBloom確率的なメンバーシップ判定、重複排除、URL フィルタリング
Cpc / TairCpc圧縮カーディナリティ推定、ストリーミング分析
Roaring / TairRoaring(Bitmap の拡張)ユーザーセグメンテーション、オーディエンスターゲティング、複数 Bitmap の演算
Vector / TairVectorベクトル類似検索、LLM チャットボット、マルチモーダル検索
参考資料

6. インスタンスの作成

Alibaba Cloud で Tair インスタンスを作成および設定します。ホワイトリストの設定やパブリックエンドポイントの割り当ても行います。

使用する場面
  • テスト、開発、本番環境用の新しい Tair インスタンスを作成する場合
  • インスタンスのネットワークアクセス(ホワイトリスト、パブリックエンドポイント)を設定する場合
  • Tair のベンチマーク環境または PoC 環境を構築する場合
6.1 インスタンス仕様の選択

必須パラメーター:

パラメーター説明例
VPC_IDVPC IDvpc-bp1xxx
VSWITCH_IDVSwitch IDvsw-bp1xxx

任意のパラメーター(デフォルト値あり):

パラメーターデフォルト値説明
REGION_IDcn-hangzhouリージョン ID
ZONE_IDcn-hangzhou-hゾーン ID
INSTANCE_TYPEtair_rdbインスタンスシリーズ:tair_rdb(DRAM)、tair_scm(永続メモリー)、tair_essd(ESSD ディスク)
INSTANCE_CLASStair.rdb.1gインスタンス仕様(下表を参照)
INSTANCE_NAMEtair-benchmark-<timestamp>インスタンス名
CHARGE_TYPEPostPaid課金方法:PostPaid(従量課金)、PrePaid(サブスクリプション)

一般的な仕様(標準アーキテクチャ):

InstanceClassメモリー帯域幅最大接続数QPS の参考値
tair.rdb.1g1 GB768 Mbps30,000300,000
tair.rdb.2g2 GB768 Mbps30,000300,000
tair.rdb.4g4 GB768 Mbps40,000300,000
tair.rdb.8g8 GB768 Mbps40,000300,000
tair.rdb.16g16 GB768 Mbps40,000300,000
tair.rdb.24g24 GB768 Mbps50,000300,000
tair.rdb.32g32 GB768 Mbps50,000300,000
tair.rdb.64g64 GB768 Mbps50,000300,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 を参照してください。

参考資料

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

参考資料

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 は、インスタンス管理、パフォーマンス分析、低速クエリ、メモリ分析、大きなキー/ホットスポットキーの検出、パラメーターの調整、接続のトラブルシューティングを対象とした、自然言語ベースの診断を提供します。

参考資料

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 の不一致
参考資料

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 は現在のデータを上書きし、元に戻せません。 復元を実行する前に、必ず次のことを行ってください:

  1. 現在の書き込みトラフィックを確認する — インスタンスで書き込みが行われているか確認し、該当する場合はユーザーに通知します
  2. 最新のバックアップを作成する — create-backup を実行し、現在のデータをロールバックポイントとして保持します
  3. ユーザーに確認する — データが上書きされることを明確に伝え、確認を得ます
参考資料

参考資料インデックス

参考資料説明範囲
references/cli-installation-guide.mdAliyun CLI のインストールおよび設定ガイド横断的
references/ram-policies.mdRAM 権限ポリシーのドキュメント横断的
references/acceptance-criteria.mdCLI コマンドの正確性基準横断的(QA)
references/related-commands.mdCLI コマンドおよびパラメーターの完全なリファレンスインスタンス作成
references/verification-method.md成功を確認する手順インスタンス作成
references/architecture-selection/arch-selection.mdアーキテクチャ選択の判断ガイドアーキテクチャ選択
references/architecture-selection/arch-compare-oss-redis.mdTair とオープンソースの Redis の比較アーキテクチャ選択
references/data-structure-design/data-structure-design.mdデータ構造の詳細なユースケースデータ構造設計
references/instance-creation/connect-create-instance.mdインスタンス作成から接続までのガイドインスタンス作成
references/connection-management/connect-standalone-or-proxy.mdスタンドアロン/プロキシ接続の例接続管理
references/connection-management/connect-cluster.mdクラスター接続の例接続管理
references/connection-management/connect-with-tls.mdTLS 接続の例(プロキシ+ダイレクト)接続管理
references/performance-monitoring/perf-monitoring.mdパフォーマンスの監視と診断パフォーマンス監視
references/error-troubleshooting/errors-troubleshooting.md原因と解決策を含む完全なエラー一覧エラーのトラブルシューティング
references/backup-and-recovery/backup-recovery.mdCLI の例を含むバックアップおよび復旧の方法バックアップと復旧

コメント